【问题标题】:Excel Index Match with Multiple Criteria and Multiple Match Types: Variant 2具有多个条件和多个匹配类型的 Excel 索引匹配:变体 2
【发布时间】:2017-02-21 22:06:56
【问题描述】:

这个问题类似于this one,但变量不同。

我想使用数据 A 中的两个标准(“活动日期”和“机会名称”)从数据 B 中提取“阶段”;数据 A 中的两个条件将具有不同的匹配类型。我试图回答的问题是,“活动发生在哪个阶段?”并相信某种形式的索引匹配是答案的一部分。

如果数据 A 中的两个条件都是匹配类型 = 精确,我知道我可以使用数组公式:

=MATCH(lookup_value_1&lookup_value_2, lookup_array_1&lookup_array_2, match_type)

很遗憾,“活动日期”需要使用“小于”匹配类型,而“机会名称”需要使用“精确”匹配类型。

数据A

Assigned|Date of Activity|Type of Activity|Opportunity Name
-----------------------------------------------------------
John    |11/15/2016      |CheckIn         |Ford
Peter   |11/15/2016      |Review          |Chevy

数据 B

Last Modified|Opportunity Name|Stage
------------------------------------
11/1/2016    |Ford            |0
11/1/2016    |Chevy           |0
11/10/2016   |Ford            |1
11/10/2016   |Chevy           |1
11/20/2016   |Ford            |2
11/20/2016   |Chevy           |2
...

【问题讨论】:

  • 预期结果是什么?如果日期标准是“小于”,那么将有多个匹配项,甚至与 Opp.Name 上的完全匹配项相结合。
  • 我要回答的问题是,“活动发生在什么阶段?”。例如,John 的“签入”活动发生在第 2 阶段。根据我对数据 B 的理解,在我的用例中,我无法知道是否会有重复。但是,如果日期按从旧到新排序,按照我理解匹配函数的工作方式,应该没问题(但我会在用例中验证)。
  • 抱歉...在示例中,John 的“签到”活动发生在第 1 阶段(不是第 2 阶段),因为 11/15 小于 11/20。
  • 认为 我明白你所指的是 RE:多个匹配项......但首先要努力使用公式才能进行验证。正如我所提到的,预期结果示例将返回 John 在 2016 年 11 月 15 日执行的“CheckIn”活动的“Stage 1”。
  • 为什么上次修改日期和活动日期之间存在这种差异?难道你不能整理数据而不是试图创建一个不可能的公式吗?以 1 作为最后一个参数的 MATCH() 与“小于或等于”一起使用,因此使用 Match() 将无法获得仅“小于”。我没有看到仅使用参数“小于 x 日期”来限制数据 B 中的日期范围的句柄

标签: excel-formula


【解决方案1】:

这可以通过一个公式来完成,使用一个将参数之一包围在一个范围内的匹配。使用上次修改日期似乎无法做到这一点,但可以使用机会名称来完成。如果数据 B 表按商机名称排序,则此公式将提取活动日期小于或等于上次修改日期的商机名称的阶段。

=INDEX(INDEX(Table1[Stage],MATCH(H2,Table1[Opportunity Name],0))
      :INDEX(Table1[Stage],MATCH(H2,Table1[Opportunity Name],1)),
       MATCH(F2,
            INDEX(Table1[Last Modified],MATCH(H2,Table1[Opportunity Name],0))
            :INDEX(Table1[Last Modified],MATCH(H2,Table1[Opportunity Name],1))))

公式对表引用使用结构化引用,这有助于提高可读性,但您当然可以将它们替换为常规引用。

同样,A 到 C 列中的数据表必须按商机名称升序排序,这样才能正常工作。

【讨论】:

  • 乍一看,“成功”!请注意,如果“活动日期”小于“上次修改”日期中的任何一个(这意味着有人在事后进入并登录较早的活动......)。
  • “谢谢!”非常喜欢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 2018-06-08
  • 2017-10-22
  • 2015-02-15
  • 2023-04-01
  • 1970-01-01
  • 2016-05-04
相关资源
最近更新 更多