簡體   English   中英

表中標頭單元格范圍的索引/匹配計算列公式中的結構化引用

[英]Structured Reference in an Index/Match Calculated Column Formula for Header Cell Range in a Table

我在運行良好的計算列中有此公式:

=IFERROR(INDEX(Allocation_of_Funds[[#Headers],[End.Nursing]:[Unassigned14]],MATCH(TRUE,INDEX(Allocation_of_Funds[@[End.Nursing]:[Unassigned14]]>0,0),0)),"")

但是這個公式給我帶來麻煩,並且在下一個計算的列中表示我想要的(基於上面的上一列中的值),但是它返回了#REF! 錯誤:

=INDEX(INDIRECT("Allocation_of_Funds[[#Headers]"&"["&[@[SOURCE 1]]&"]"):[@Unassigned14],MATCH(TRUE,INDIRECT("Allocation_of_Funds[[#Headers]"&"["&[@[SOURCE 1]]&"]"):[@Unassigned14]>0,0),0)

如果有幫助,表格設置的詳細信息如下:

我有一個帶有一系列列的表,每個列代表一個不同類型的帳戶。 對於每一行,這些列的任何組合都可以包含值或空格,因此我要設置另一組列,以便為每個記錄的非空白列標識表列標題。

SOURCE1 | SOURCE2 | SOURCE3 | ACCT1 | ACCT2 | ACCT3 | ACCT4 | ACCT5
ACCT1   | ACCT2   | ACCT4   | 500   | 300   |       | 100   | 
ACCT2   | ACCT3   |         |       | 200   | 100   |       |       
ACCT3   |         |         |       |       | 500   |       | 
        |         |         |       |       |       |       | 
ACCT3   | ACCT4   | ACCT5   |       |       | 200   | 300   | 50
ACCT1   | ACCT3   | ACCT4   | 123   |       | 332   | 100   | 

因此,我需要SOURCE2列來使用SOURCE1列中的值來標識要查找具有值的下一個單元格的范圍的起點,從而將為該SOURCE2行值返回該值上方的列標題。 使用SOURCE2列的值來標識下一個范圍的開始,相同的公式將應用於SOURCE3列。

在此先感謝您動動腦筋!

-林賽

我使用以下公式提取標題並將其放置在源編號下:

=IFERROR(INDEX($D$1:$H$1,AGGREGATE(15,6,COLUMN($D2:$H2)/ISNUMBER($D2:$H2)-COLUMN($D$1)+1,RIGHT(A$1,1)*1)),"")

我假設您表的左上角在A1中,其中1是標題行,AC是您的源列,D到H是帳戶列。 上面的公式可以放在單元格A2中,並根據需要復制到右側和下方。

您似乎對IFERROR和INDEX函數有所了解,因此我將解釋AGGREGATE函數:

=AGGREGATE(15,6,COLUMN($D2:$H2)/ISNUMBER($D2:$H2)-COLUMN($D$1)+1,RIGHT(A$1,1)*1)

AGGREGATE函數是許多不同函數的混合體,可以忽略一些計算。 另一個附加功能是,某些內置函數無需數組即可執行數組計算。

在這種特殊情況下,我選擇了與SMALL函數相同的聚合函數15。 我還告訴聚合忽略使用“ 6”生成錯誤的計算。 對於數組計算,我已要求其將要使用的列號除以該列為數字的True或False結果:

COLUMN($D2:$H2)/ISNUMBER($D2:$H2)-COLUMN($D$1)+1

在excel數學中,True等於1,False等於0。每當單元格不是數字時,它將嘗試除以零,生成錯誤並被Aggregate函數忽略。 這基本上會生成一個列號列表,這些列表符合在其列中包含數字的條件。 D1減后跟+1是將確定的列號轉換為帳戶標題下的相對列。

集合函數的下一部分告訴SMALL操作需要返回按排序順序排列的數字。 我使用了源標題中的最后一個字符來確定要返回的列號。 對於SOURCE1,最后一個字符為1,因此我希望返回最小的列號。 對於SOURCE2,返回第二個最小的數字。 末尾的* 1會將字符轉換為數字,而不是1作為文本。

RIGHT(A$1,1)*1

如此,如果您想使用多達9個來源,則可以。 您也可以提供更多資源,但是您需要修改此公式,或者想出另一種方式來提供您要返回的小清單數量。 您可以將D2:H2參考擴展為所有帳戶,並調整D1:H1參考以覆蓋所有帳戶標頭。

概念證明

在此處輸入圖片說明

暫無
暫無

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

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