具有多个条件的 IF AND 语句
IF AND Statement with multiple criteria
无法弄清楚为什么这个公式不起作用。我想让它做的是
如果 ID 匹配
AND 订单状态包含 "Called Out"(我需要它来查找 "Partially Called Out" 和 "Called Out"。因为这些是唯一带有 "Called Out" 的状态,我只需要查找它是否包含 "Called Out")
并且线路状态为 "Awaiting Shipping"
然后给我相应的商品编号。
每个 ID 分配了多个项目编号,因此我需要它来为我提供遵循这些准则的具体项目编号。以下是我想出的。问题是,我正在为不符合 "Called Out" 和 "Awaiting Shipping" 标准的项目显示项目编号。
我正在从另一个电子表格中提取信息(因此 [Report.xlsx] 报告)。
B 列是我用来匹配的身份证号码
在另一份报告中,我正在查看匹配 ID(K 列)、订单状态(G 列)和行状态(AP 列)。如果满足所有条件,我希望它给我相应的项目编号(U 列)。
=IFERROR(IF(AND(MATCH(B2, '[Report.xlsx]Report'!$K:$K, 0), ISNUMBER(SEARCH("Called Out", '[Report.xlsx]Report'!$G:$G)), ISNUMBER(SEARCH("Awaiting Shipping", '[Report.xlsx]Report'!$AP:$AP))), INDEX('[Report.xlsx]Report'!$U:$U, MATCH(B2, '[Report.xlsx]Report'!$K:$K, 0)), ""), "")
根据这个示例数据,
在C2中使用以下内容,
=INDEX(Report.xlsx!U:U,
AGGREGATE(15, 6,
ROW(Report.xlsx!G:INDEX(Report.xlsx!G:G,MATCH("zzz",Report.xlsx!G:G)))/
((Report.xlsx!AP:INDEX(Report.xlsx!AP:AP,MATCH("zzz",Report.xlsx!G:G))="awaiting shipping")*
(Report.xlsx!K:INDEX(Report.xlsx!K:K,MATCH("zzz",Report.xlsx!G:G))=B2)*
SIGN(SEARCH("called out",Report.xlsx!G:INDEX(Report.xlsx!G:G,MATCH("zzz",Report.xlsx!G:G))))),1))
..然后往下填。
无法弄清楚为什么这个公式不起作用。我想让它做的是
如果 ID 匹配
AND 订单状态包含 "Called Out"(我需要它来查找 "Partially Called Out" 和 "Called Out"。因为这些是唯一带有 "Called Out" 的状态,我只需要查找它是否包含 "Called Out")
并且线路状态为 "Awaiting Shipping"
然后给我相应的商品编号。
每个 ID 分配了多个项目编号,因此我需要它来为我提供遵循这些准则的具体项目编号。以下是我想出的。问题是,我正在为不符合 "Called Out" 和 "Awaiting Shipping" 标准的项目显示项目编号。
我正在从另一个电子表格中提取信息(因此 [Report.xlsx] 报告)。
B 列是我用来匹配的身份证号码
在另一份报告中,我正在查看匹配 ID(K 列)、订单状态(G 列)和行状态(AP 列)。如果满足所有条件,我希望它给我相应的项目编号(U 列)。
=IFERROR(IF(AND(MATCH(B2, '[Report.xlsx]Report'!$K:$K, 0), ISNUMBER(SEARCH("Called Out", '[Report.xlsx]Report'!$G:$G)), ISNUMBER(SEARCH("Awaiting Shipping", '[Report.xlsx]Report'!$AP:$AP))), INDEX('[Report.xlsx]Report'!$U:$U, MATCH(B2, '[Report.xlsx]Report'!$K:$K, 0)), ""), "")
根据这个示例数据,
在C2中使用以下内容,
=INDEX(Report.xlsx!U:U,
AGGREGATE(15, 6,
ROW(Report.xlsx!G:INDEX(Report.xlsx!G:G,MATCH("zzz",Report.xlsx!G:G)))/
((Report.xlsx!AP:INDEX(Report.xlsx!AP:AP,MATCH("zzz",Report.xlsx!G:G))="awaiting shipping")*
(Report.xlsx!K:INDEX(Report.xlsx!K:K,MATCH("zzz",Report.xlsx!G:G))=B2)*
SIGN(SEARCH("called out",Report.xlsx!G:INDEX(Report.xlsx!G:G,MATCH("zzz",Report.xlsx!G:G))))),1))
..然后往下填。