2017-04-26 47 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