【问题标题】:Find second and third matching value in Excel在 Excel 中查找第二个和第三个匹配值
【发布时间】:2020-08-17 13:21:42
【问题描述】:

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

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

我需要 Header 2 作为输出和 Header 3。

第一次匹配很简单,我通过索引匹配函数的组合做到了。

如何提取 2-nd 和 3-d 匹配?

谢谢

【问题讨论】:

  • 是您在单个单元格中的输出,它们是水平的还是垂直的?或者,一个单元格中的输出是分隔的吗?另外,你用的是什么版本?
  • 输出确实应该在单个单元格中。我水平搜索匹配。我用的是 2013。谢谢!

标签: excel match


【解决方案1】:

你可以使用INDEX/AGGREGATE函数:

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

【讨论】:

  • 花了我一整天。它创造了奇迹。哇。谢谢
【解决方案2】:

我创建了一些虚拟数据:

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

然后我使用 Add Column>General>Index Column>From 1 添加基于 1 的索引。我将该索引重新定位到最左侧。这不是必需的,但对我有帮助。

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

然后我过滤 1 上的值列,然后右键单击值列并选择删除。这给我留下了这个:

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

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

【讨论】:

  • 创意。但不幸的是不符合我的目的。我每行都需要它:第一个 1 的标题和第二个 1 的标题。
【解决方案3】:

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

IFERROR() 当然是可选的。

对于多行只需更改布局:

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

【讨论】:

  • 我有很多行,每行重复都会很疯狂。但是谢谢))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多