【问题标题】:Returning Multiple Results with Match Function使用匹配函数返回多个结果
【发布时间】:2015-07-16 00:34:48
【问题描述】:

我正在寻找一个工作表的 E 列中的信息与第二个工作表的 E 列的匹配信息。

我用过: =MATCH(""&E1&"",'SHEET1'!E:E,0)

这会返回匹配在哪一行。

但是,我的搜索中有多个匹配项,但它只返回第一个匹配项的行。

有没有办法获取所有命中的列表,而不仅仅是第一次出现? 谢谢!

【问题讨论】:

  • 使用 .Find 和 .FindNext 循环遍历所有搜索结果...
  • =IF(""&E1&""='SHEET1'!E2:E100,ROW('SHEET1'!E2:E100))。如果您突出显示公式并按 F9,您可以看到所有返回的事件。这是第一步。下一步取决于你想从这里去哪里。另请注意,特别是在执行此公式时,请勿引用整列。

标签: excel excel-formula vba


【解决方案1】:

Sheet1 就像:

在另一张纸上,单元格 E1

中有一个 12

然后选择一个单元格并输入数组公式

=IFERROR(SMALL(IF(Sheet1!E:E=$E$1,ROW(Sheet1!E:E)-MIN(ROW(Sheet1!E:E))+1,""),ROW(A1)),"")

并复制下来显示:

数组公式 必须使用 Ctrl + Shift + Enter 而不仅仅是 Enter 键。

注意:这种 数组公式 可能会非常缓慢! 就个人而言,我会将所有 E:E 替换为 $E$1:$E$999999 提高速度。

【讨论】:

  • 用这种类型的公式引用整个 E 列确实会给您的计算机造成损失,正如您所指出的。范围应参考当前数据,如“E2:E1000”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2013-04-18
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
相关资源
最近更新 更多