我正在尝试根据使用excel公式在标题下的数据范围内的值的位置创建一个连接其他列的标题的列。我的表看起来像这样:
Enter Number: Years Occurred
1234 2014,2015,2017
现在,此表包含大量具有值的行列表。
我想创建一个用户可以键入数字的单元格,它将返回与其相邻的单元格中的行标题。如果数字出现在多个列中,则使用逗号分隔符连接标题。即
dep code salary new-column
abc 100 2
bcd 90 1
abc 110 2
规则:每列都有唯一编号列表。一列中不会出现任何数字。
我能找到的最好的例子就是这里,公式返回数据范围最大值的标题:
由于
答案 0 :(得分:2)
使用TEXTJOIN作为数组公式:
=TEXTJOIN(",",TRUE,INDEX(A1:D1,N(IF(1,MODE.MULT(AGGREGATE(15,6,COLUMN(A2:D4)/(A2:D4=F2),ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,COUNTIF(A2:D4,F2))))*{1,1})))))
作为数组公式,需要使用Ctrl-Shift-Enter确认,而不是在退出编辑模式时确认。如果操作正确,Excel会将{}
放在公式周围。
注意:TEXTJOIN适用于Office 365 Excel而不是早期版本。
如果您没有Office 365 Excel,那么您将需要一些辅助列。
在第一个Helper单元格中放置:
=IF(ISNUMBER(MATCH($F$4,A:A,0)),"," & A1,"")
然后复制与您的数据相同数量的列。
然后使用它来连接:
=MID(H4&I4&J4&K4,2,999)
为更多列添加单元格。