在Excel中查找第二个和第三个匹配值

问题描述

我有一个包含35列的表格。单元格中的值只有零和一。我需要返回每行中每1个列的标题名称。

例如: 我有标题1,标题2和标题3。 标头1下的值为0,标头2下的值为1,标头3下的值为1。

我需要标题2作为输出和标题3。

第一次匹配很容易,我通过结合索引匹配函数来做到的。

如何提取2维和3维匹配?

谢谢

解决方法

您可以使用INDEX / AGGREGATE函数:

=IFERROR(INDEX($A$1:$J$1,1,AGGREGATE(15,6,(COLUMN($A2:$J2)/($A2:$J2=1)),COLUMN(A1))),"")

enter image description here

,

我的解决方案,但不是一个公式: enter image description here 首先,我打印一个的列号,然后执行偏移操作以获取标题。

IFERROR()是可选的。

对于多行,只需更改布局: enter image description here

  • 单元格K2:=IF(A2=1;COLUMN(A2);"")
  • 单元格U2:=OFFSET($A$1;0; SMALL($K2:$T2;U$1)-1)
,

我创建了一些虚拟数据:

enter image description here

然后将光标放在表中的任何位置,然后使用数据>获取和转换数据>来自表/范围。这将打开Power Query编辑器。

然后我使用“添加列”>“常规”>“索引列”>“从1开始”添加基于1的索引。我将该索引重新定位到最左边。那不是必须的,但对我有帮助。

然后我选择了索引列,并使用了Transform> Any Column> Unpivot Columns> Unpivot Other Columns。那给了我这个:

enter image description here

然后我将“值”列过滤为1,然后右键单击“值”列并选择“删除”。那给我留下了这个:

enter image description here

然后我使用Home> Close&Load将数据放回到工作簿中。索引是标头来自哪一行的指示符。

当然,随着源数据的更改,您可以右键单击结果表,然后选择“刷新”以重新运行转换。

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...