【问题标题】:Return Multiple Unique Matches in Excel without Array Formula在没有数组公式的 Excel 中返​​回多个唯一匹配项
【发布时间】:2021-10-20 03:12:35
【问题描述】:

给定一个形状的 Excel 表格

Col. A   Col B   Col. C   Col. D   Col. E
x        2       x        2        3
x        3       y        7
y        7       z        -5
x        2
z        -5 

我想为 D 列中的参数“x”返回 B 列中的第一个唯一命中, B 列中第二个唯一命中 E 列中的参数“x”,依此类推。

我目前在单元格 D1 中使用的公式是

{=IFERROR(INDEX($B$1:$B$5,MATCH(0,COUNTIF($C1:C1,$B$1:$B$5)+($A$1:$A$5<>$C1),0)),"")}

这是有效的。

我遇到的问题是,由于这是一个数组公式,而且我正在分析大量数据,因此我的工作表计算时间太长了。

此功能是否有替代方法可以避免使用数组公式?

谢谢!

【问题讨论】:

  • 你的excel版本是多少?
  • @Harun24HR 2102版
  • 如果您可以使用 Filter 和 Unique 它仍然是一个数组公式,但可能更快。
  • @SolarMike 我试图从您的帖子中复制公式但没有成功。我不完全确定这是否是同一个问题。

标签: excel list unique array-formulas


【解决方案1】:

没有时间对此进行正确测试,但如果您有 Excel 365,则可以每行使用一个公式,这样可能会更快:

=TRANSPOSE(UNIQUE(FILTER(B1:B10,A1:A10=C1)))

在第一天。

编辑

要拉下公式,您需要 OP 指出的静态引用。可能还应该检查 C 列中的空单元格,因此公式变为:

=IF(C1="","",TRANSPOSE(UNIQUE(FILTER(B$1:B$10,A$1:A$10=C1))))

【讨论】:

  • 这是有效的。我唯一需要编辑的是使用静态引用 b$1:b$10, a$1:a$10。
  • 是的,我后来也意识到了这一点 - 将编辑我的答案。
  • 我只是想对计算时间提供额外的评论:正如预期的那样,这比使用我原来的数组公式要快得多。
  • 是否可以将输出返回到存储在一个单元格中的数组中?我必须创建很多列才能获得“溢出!”错误。
  • 是的,您可以在一个单元格中返回它,使用分隔符如 2,3,4 =IF(C1="","",TEXTJOIN(",",,UNIQUE(FILTER(B$1: B$10,A$1:A$10=C1))))
猜你喜欢
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多