此问题类似于this one,但使用的变量不同。
我想使用数据A中的两个标准(“活动日期”和“机会名称”)从数据B中提取“阶段”;来自数据A的两个标准将具有不同的匹配类型。我试图回答的问题是,“活动发生在什么阶段?”并且相信某种形式的指数匹配是答案的一部分。
如果数据A的两个条件都匹配type = exact,我知道我可以使用数组公式:
=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
...
答案 0 :(得分:0)
可以使用公式来完成,使用将其中一个参数保护到范围内的匹配。对于上次修改日期,这似乎不可能,但可以使用商机名称来完成。如果数据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列中的数据表必须按机会名称升序排序,以便工作。