【问题标题】:Excel INDEX/MATCH not matching 3rd criteriaExcel INDEX/MATCH 不匹配第三个条件
【发布时间】:2017-01-07 02:50:46
【问题描述】:

我有 5 列数据,我正在使用 INDEX/MATCH 函数根据第 1、3 和 4 列的精确标准匹配从第 5 列提取数据。所以基本上用户选择 3 个不同的标准(从下拉列表中)如果所有三个完全匹配第 1、3 和 4 列,则结果来自第 5 列。 这是我正在使用的功能...

{=IFERROR(INDEX(F5:F500,MATCH(1,(E5:E500=Production!B4)*(G5:G500=Production!B8)*(H5:H500=Production!B6),0)),"")}

我遇到的问题取决于选择的标准,可能会有 4 到 10 个结果,所以我使用以下方法来提取下一个结果...

{=IFERROR(INDEX(F5:F500,MATCH(1,(E5:E500=Production!B4)*(G5:G500=Production!B8)*(H5:H500=Production!B6),0)+1),"")}

对于每一行,我只是在函数末尾添加了另一个数字(即“+2”“+3”等)以获得所需的结果。正如我上面提到的,一些标准的结果会更少,这就是我的问题所在......一旦我有了所有可用的结果(例如 3 个结果),下一行(“+3”)应该会吐出一个错误,因为没有更多与条件完全匹配的结果,但该函数只给我下一个与前两个条件匹配但不匹配第三个条件的结果。如果这看起来令人困惑,我很抱歉,有点难以解释,这可能是为什么我在论坛中没有任何帮助的原因。

非常感谢任何建议。 (注意:我从上述函数中删除了“$”,以便于阅读) 谢谢!

【问题讨论】:

  • 不要减损您的工作方式,但是您是否尝试过 this formula "layout" 进行多变量索引/匹配? (感谢最后的说明,我同意它有助于我们的易读性,但也让我们知道你知道锚定,所以我们不必进入那个)
  • @BruceWayne 不会解决这个确切的问题,因为他得到了正确的答案。 OP 希望迭代并显示所有适用的内容。
  • 第一个公式进入哪个单元格?有一种方法使用 countif() 代替任意添加行号。您的问题源于这样一个事实,即您没有测试向下三行的值,而是找到第一个然后告诉 INDEX 返回向下三行的值。如果该行上的值不匹配,Excel 不知道要排除它。
  • @BruceWayne 感谢您的建议,我已经尝试过该公式布局(以及其他一些),正如 Scott Craner 所说,我得到了相同的结果。
  • @ScottCraner 第一个公式真的可以放在任何单元格中,它在数据页上,因此格式不是问题。我无法理解您对“向下三行”评论的意思,我认为通过添加“+1”、“+2”等,它只会搜索出满足该条件的下一个结果标准,但我想考虑到它们都是有序的,它只是进入下一行更有意义。是否可以在公式中添加一些内容来搜索与条件匹配的第二个结果、第三个结果等等?

标签: excel function indexing match


【解决方案1】:

因此,在您的示例公式中,您可以将其放在 M2 中:

=IFERROR(INDEX($F$5:$F$500,MATCH(1,($E$5:$E$500=Production!B4)*($G$5:$G$500=Production!B8)*($H$5:$H$500=Production!B6)*(COUNTIF($M$1:$M1,$F$5:$F$500)=0),0)),"")

按 Ctrl-Shift-Enter,因为它是一个数组公式。然后抄下来。

请注意,由于我没有测试数据,因此未经测试。

我把 $ 放回去,因为我添加的相对/绝对是非常重要的。

【讨论】:

  • 天才!非常感谢@ScottCraner,该功能非常适合我的需要!
猜你喜欢
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 2019-10-06
相关资源
最近更新 更多