2017-04-26 48 views
0

我正在處理一個包含多個階段的項目的預算。有可能並不是所有的階段都會被處理,所以我添加了一些查找和SUMIF公式,以便我可以得到我包含和排除的努力和美元數量的摘要。這一切都很好。現在我想隱藏我的查找行(第1行),但仍然有一種方法可以確定項目的哪些階段已被包含,哪些被排除。很明顯,我可以手動將它們連接在一起,但是如果包含/排除的階段發生變化,那麼我需要記住更新這些公式(並且它不像在公式中那樣有趣)。這裏是我的表的樣子:基於查找的範圍內的連接值

Table Layout 的TEXTJOIN功能似乎像它應該工作(即=TEXTJOIN(CHAR(10), TRUE, C2:N2)),但我不能換我圍​​繞着如何使其應用範圍參數依賴於我查找的行頭。我使用類似=TEXTJOIN(CHAR(10), TRUE, INDEX(A2:M2,,(A1:M1="Yes")*COLUMN(A1:M1)))的東西玩弄INDEX,但沒有任何運氣。在一天結束時,我想有這樣的:

階段1
階段2
階段5

請注意,上面的數據都應該出現在同一個細胞 - 使用換行字符CHAR(10)作爲TEXTJOIN函數中的分隔符將使所有相位出現在單個單元格內的新行上。我不想通過多個單元填充公式。預先感謝您的幫助。

回答

0

enter image description here

請看看照片。我在過去類似的問題(並把它帶到StackOverflow的,在這一點上,我被@ScottCraner幫助,原帖在這裏: Doing an array formula lookup

基本上 1)你設置你正在尋找通過陣列 - 在我的情況下,它的$ A $ 2:$ A $ 6,在你的情況下它將是$ B $ 2:$ M $ 2。 2)然後在匹配函數中嵌套COUNTIFS函數。該功能執行以下操作: A)當複製/粘貼時,它檢查相位X的名稱是否已顯示在E列中 B)如果有,則轉到下一個 C)如果它沒有't,輸出 3)值得注意的是:這是一個數組公式,因此公式本身正在檢查每個單元格。所以它看起來在單元格A2;如果B2中的單元格爲「是」,並且「列1」不在列E中的範圍內,則放入第1階段。因爲它在那裏。然後它看起來在單元格A3;如果B3中的單元格爲「是」,則階段2的單元格也是相同的。然後它查看單元格A4;因爲B4是「否」,所以*(B2:B6 =「是」)會引發錯誤。等等 4)在函數週圍放置錯誤捕捉括號。

+0

我編輯了我的原始問題,以闡明我希望將所有結果連接在單個單元格內,而不是通過範圍填充公式。 – Cory

0

不太需要數據公式的優雅方式是使用輔助列的「是/否」作爲索引。這假設輔助列中的值是冗餘的,並重復主列的「是」或「否」。

在C1:=CONCATENATE(B1,COUNTIFS($A$1:B1,B1)) - 相對的E1,G1等 重複

某處分開(以下公式假定同一工作表的第1行),然後你可以使用:=IFERROR(INDEX($2:$2,MATCH(CONCATENATE("Yes",ROW()),$1:$1,0)-1),"")

要查找向上「是1」,返回「階段1」並向下自動填充。如果用完「是」結果,IFERROR在此用於返回空白。

+0

輔助列中的值不是多餘的 - 它們正在用於其他SUMIFS計算以及第3行中的標題,以將所有包含/排除的時間和金額相加。同樣,我希望將所有的值都放在一個單元格中,而不是填充表單。 – Cory