簡體   English   中英

如何在表[#Data](或類似)的結構化引用中排除列

[英]How to Exclude a Column(s) in a Structured Reference to Table[#Data] (or similar)

我想引用我的動態表中的所有數據,除了前兩列。 我的目標是返回非空白的第一列的 header,從第三列開始。 除了從第三列部分開始之外,我已經為所有內容計算出了公式。 有沒有一種簡單的方法可以做到這一點? 我在想我可能不得不做類似的事情

`=Table[#Data] 除非在前兩列的范圍內'

希望有一個更簡單的方法。

在此處輸入圖像描述

編輯:如果我的要求不夠明確,我正在尋找一個在這些情況下會產生以下確切情況的公式。 它必須在一個可以毫無問題地改變大小的表中工作,它必須忽略前兩列,它必須在移動到下一列之前從左到右掃描完整的數據列(我試過的大多數公式都會給出結果 Aug-21 here),它必須以基本上任何格式返回 header。

在此處輸入圖像描述

由於您沒有提供任何示例數據,我只能猜測。 那么這個公式怎么樣

=INDEX($A$1:$D$1,MATCH(TRUE,$A$1:$D$1<>"",0))

在此處輸入圖像描述

我沒有時間為此寫出完整的答案,但您應該使用數據功能區的“從表”按鈕“獲取和轉換”部分。

然后,在查詢編輯器 window 中,在主頁功能區中,單擊管理參考。要找到第一個非空白列的 position 將很難,需要學習 Power-Query 語言,可能類似於單擊高級編輯器並添加步驟

let
  Source = #"YourSourceQueryName",
  ColumnNames = Table.ColumnNames(Source),
  ColumnsToRemove = 2 + List.PositionOf( // PositionOf is zero-based, returning -1 if all are blank
    List.Transform(
      List.RemoveFirstN( // list of column names except the first two
        ColumnNames,
        2
      ),
      (columnName) => List.IsEmpty(List.RemoveNulls(Table.Column(myTable, columnName)))
    ),
    false
  ), // Power query is lazy, so this won't actually look at every column, it will stop when it finds the first column!
  ColumnNamesToKeep = List.RemoveFirstN(
    ColumnNames,
    ColumnsToRemove
  ),
  ReturnTable = if (ColumnsToRemove = 1) then
    "All columns were blank!" // PositionOf returned -1!
  else
    Table.SelectColumns(Source, ColumnsToKeep)
in
  ReturnTable

您現在可以在其他查詢中使用它,也可以將其加載到電子表格中。 不幸的是,電源查詢不會實時刷新,您必須明確刷新查詢或使用數據功能區中的“全部刷新”按鈕。

(我強調了“like”這個詞,因為我沒有調試。可能包含語法錯誤或其他問題供您調試。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM