我如何使用INDEX MATCH来返回多个值?

我有一个二进制值的二维matrix。 我想在一行中find所有的1,并在一个单元格中以数组或逗号分隔的string的forms返回它们各自的头。

我可以在VBA中做到这一点,但就我所知,我想知道在Excel中是否有方便的方法。

假设您的matrix位于B6:F12 (根据需要调整公式和参数中的范围)

G7input该FormulaArray并复制到最后一个logging(同时 按下 [Ctrl] + [Shift] + [Enter] 公式arrays,如果input正确,则在公式周围会看到{ }

 =TRIM(CONCATENATE( IF($B7:$B12,$B$6,""),CHAR(32), IF($C7:$C12,$C$6,""),CHAR(32), IF($D7:$D12,$D$6,""),CHAR(32), IF($E7:$E12,$E$6,""),CHAR(32), IF($F7:$F12,$F$6,""))) 

此公式连接由空格分隔的5个字段的结果。 您将不得不为每个附加字段添加一个参数。

在这里输入图像说明

这个标准的公式也将诀窍:

 =TRIM(SUBSTITUTE(CONCATENATE( IF($B7,", "&$B$6,""), IF($C7,", "&$C$6,""), IF($D7,", "&$D$6,""), IF($E7,", "&$E$6,""), IF($F7,", "&$F$6,"")),",","",1)) 

随着领域数量的增加,这两个公式肯定会变长,但是由于公式是相当重复的,所以可以使用Excel公式来构build它。