【问题标题】:Excel MATCH range without specific CELL没有特定 CELL 的 Excel MATCH 范围
【发布时间】:2020-01-24 19:41:59
【问题描述】:

在互联网上进行了深入搜索后,我放弃了。

我的“简单”问题是: 如何在公式中添加两个范围,最好是在 MATCH 中?

我想搜索 A1:A7 + A9:A20 这样的范围,因此在我的范围内包含 A8。

这可能吗?请帮帮我

【问题讨论】:

  • 未尝试使用Match(),但官方联合运算符为,。所以应该是A1:A7, A9:A20
  • @PatrickHonorez 官方联合运算符是 Excel 中的逗号? Excel 中使用逗号分隔函数中的参数,而不是连接数组?
  • @ImaginaryHuman072889 当然是。尝试写=SUM(F2:F4, S2:S4)。网络上到处都是例子:docs.microsoft.com/en-us/office/vba/api/excel.application.uniondailydoseofexcel.com/archives/2005/01/16/union-and-intersect
  • @PatrickHonorez 啊,我不知道在某些 Excel 函数中逗号被称为联合运算符。 MATCH 不是其中之一。 This question and answer 清除它。
  • JvdV 在连续单列/行范围内排除一个特定单元格的情况下提供了一个很好的答案,但我认为只使用两个 MATCH 函数可能更简单对于每个范围,无需使用数组公式。

标签: excel excel-formula range cell string-matching


【解决方案1】:

本来你不能,但你可以尝试绕过它:


排除单个单元格:

如果您想从MATCH 中排除某个单元格,您可以像这样排除它的某个行号:

=MATCH(1,(A1:A20="X")*(ROW(A1:A20)<>8),0)

或者

=MATCH(1,INDEX((A1:A20="X")*(ROW(A1:A20)<>8),),0)

两者都是数组公式,但只有第一个需要确认,在按 Enter

之前按住 Ctrl+Shift

排除一系列单元格:

如果您想排除一系列行,例如8-12,那么我们不能使用ANDOR 逻辑,因为它们不返回数组。但是,我们可以自己模仿它:

=MATCH(1,(A1:A20="x")*((ROW(A1:A20)<8)+(ROW(A1:A20)>12)),0)

或者

=MATCH(1,INDEX((A1:A20="x")*((ROW(A1:A20)<8)+(ROW(A1:A20)>12)),),0)

同样,两者都是数组公式,但只需在按 Enter 之前按住 Ctrl+Shift 确认第一个公式


替代方案

或者,您可以通过多种方式堆叠MATCH 函数,但这里是其中之一:

=IFERROR(MATCH("x",A1:A7,0),MATCH("x",A13:A20,0))
  • 专业版:没有数组公式 > 快!
  • Con:将在第一个或第二个范围内返回匹配的相对行位置。在此示例中,您只需将 12 添加到第二个结果。

祝你好运=)

【讨论】:

  • 匹配中的数组,非常好,我总是默认使用 SUMPRODUCT,但你的方式更简洁。
  • 从技术上讲,这并不能回答问题。这回答了“如何找到不包括某一行的MATCH?”而不是“如何找到两个串联数组的MATCH?”但是......也许这就是OP想要的。我想我们会发现的。还是不错的答案。 +1
  • @ImaginaryHuman072889,我知道你从哪里来,但标题说“......没有特定的单元格”。我也看不到 OP 在哪里连接两个范围,而不是试图排除 A8,即一个单元格。感谢您的荣誉:)
  • 感谢大家快速可靠的回答...明天会检查并报告对我的情况有效的方法-提前致谢
  • @JvdV 老实说,我会对两个连接范围的工作方式感兴趣,但至于我当前的问题,我只需要一个没有特定单元格的列范围......尽管如此,我很感激这两个答案和会恭敬地尝试他们
猜你喜欢
  • 1970-01-01
  • 2021-08-30
  • 2020-05-01
  • 2014-10-11
  • 1970-01-01
  • 2014-07-29
  • 2014-02-22
  • 1970-01-01
  • 2022-07-20
相关资源
最近更新 更多