获取与特定值关联的表中的多个列名(标题)到单元格中
我需要获取与特定值关联到一个单元格中的多个列名(标题)
正如我所解释的那样,我需要将对应于值“n”的标题名称添加到E列。
我用公式
=INDEX((A$1:D$1),MATCH("n",A2:D2,0))
这里。 但它只给出一个列名。
我也开放给vba脚本。 但我认为它不需要vba。 只是改善上面的公式,可能是。 我试过了,失败了。 任何帮助。 感谢你们
如果你真的打开vba,我将使用一个简单的UDF,如:
Function HeatherNames(rg As Range, rf As String) As String For Each cell In rg If cell = rf Then HeatherNames = HeatherNames & Cells(1, cell.Column).Value & "-" Next cell HeatherNames = Left(HeatherNames, Len(HeatherNames) - 1) End Function
你可以在列E'= HeatherNames(A2:D2;“n”)中使用它,现在你可以select参数arg.1(范围)和types(或引用另一个单元格)arg.2
假设你有Excel 2010或更高版本,在E2中:
=IF(COLUMNS($A:A)>COUNTIF($A2:$D2,"n"),"",INDEX($1:$1,AGGREGATE(15,6,COLUMN($A2:$D2)/($A2:$D2="n"),COLUMNS($A:A))))
根据需要向右和向下复制。
它实际上会更有效一些(当然,如果你的数据集实际上是相当大的),使得初始的IF
子句保持在它自己的单元格中,这样每个行只计算一次,而不是每个公式的实例在那一行。 所以在E2中更好的设置是:
=COUNTIF($A2:$D2,"n")
复制下来。 那么在F2中:
=IF(COLUMNS($A:A)>$E2,"",INDEX($1:$1,AGGREGATE(15,6,COLUMN($A2:$D2)/($A2:$D2="n"),COLUMNS($A:A))))
复制到右边再下来。
问候