获取值存在的列标题,Excel

时间:2018-02-20 21:26:38

标签: excel concatenation formula heading

我正在尝试根据使用excel公式在标题下的数据范围内的值的位置创建一个连接其他列的标题的列。我的表看起来像这样:

Enter Number:    Years Occurred 
    1234         2014,2015,2017

现在,此表包含大量具有值的行列表。

我想创建一个用户可以键入数字的单元格,它将返回与其相邻的单元格中的行标题。如果数字出现在多个列中,则使用逗号分隔符连接标题。即

dep code    salary     new-column
 abc          100            2
 bcd           90            1
 abc          110            2

规则:每列都有唯一编号列表。一列中不会出现任何数字。

我能找到的最好的例子就是这里,公式返回数据范围最大值的标题:

https://www.extendoffice.com/documents/excel/2547-excel-find-highest-value-in-a-row-and-return-column-title.html

由于

1 个答案:

答案 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会将{}放在公式周围。

enter image description here

注意:TEXTJOIN适用于Office 365 Excel而不是早期版本。

如果您没有Office 365 Excel,那么您将需要一些辅助列。

在第一个Helper单元格中放置:

 =IF(ISNUMBER(MATCH($F$4,A:A,0)),"," & A1,"")

然后复制与您的数据相同数量的列。

然后使用它来连接:

=MID(H4&I4&J4&K4,2,999)

为更多列添加单元格。

enter image description here