获取值存在的列 Headers,Excel

Get Column Headers where value exists, Excel

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

2014 | 2015 | 2016 | 2017
-------------------------
1234   4567   6547   1234
2583   3698   4567   3214
9874   1234   6664   5896

现在,这个 table 有一个包含值的行的扩展列表。

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

Enter Number:    Years Occurred 
    1234         2014,2015,2017

规则:每列都有一个唯一编号列表。没有数字在一列中出现超过一次。

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

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

谢谢

使用 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,那么您将需要一些帮助列。

在第一个辅助单元格中输入:

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

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

然后用这个来连接:

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

为更多列添加单元格。