【问题标题】:Excel MATCH with multiple criteria (not exact match)Excel MATCH 与多个条件(不完全匹配)
【发布时间】:2022-11-12 19:06:49
【问题描述】:

我一直在修改各种 Excel 函数(MATCH/INDEX、VLOOKUP、SUMPRODUCT、AGGREGATE 等)以提供我需要的结果,但没有成功。所以我希望有人能告诉我最好的方法是什么。

从下面的示例数据中,我需要一个公式,当我提供确切的代码(与 A 列完全匹配)以及位于 B 列中列出的日期之间的日期时,该公式将准确返回行号。我从一个公式开始当两个项目完全匹配时工作 - 即,

=MATCH(1,(("B"=A:A)*(2005=B:B)),0) 

将返回第 6 行,这是正确的。但我不知道如何调整它,以便在我搜索 Code=B 和 Year=2007 时工作。在这种情况下,我希望它返回第 6 行——其中 Code=B 并且年份是最接近/下一个较低的值。我最接近的尝试(不起作用)是:

=SUMPRODUCT(MATCH(1,(A:A="B")*(B:B<=2007),0))

任何帮助表示赞赏!

【问题讨论】:

    标签: excel


    【解决方案1】:

    也许您可以尝试使用 LOOKUP() 函数而不是 MATCH()

    • 单元格E5 中使用的公式

    =LOOKUP(2,1/((E2=$A$2:$A$7)*($B$2:$B$7<=E3)),ROW($B$2:$B$7))
    

    【讨论】:

      【解决方案2】:

      如果您有 Excel 2019 或更高版本,这应该可以工作。

      =SUBSTITUTE(LEFT(INDEX(SORT(FILTER(ABS(B:B-2007)&REPT("?",99)&ROW(B:B),A:A="A"),1,1),1,1),99),"?","")+0
      

      【讨论】:

      • 它返回 2,它是如何工作的。先生,如果您发布屏幕截图,将会有所帮助。
      • 我是为A做的@对不起。
      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2019-10-22
      • 1970-01-01
      相关资源
      最近更新 更多