IF和声明与多个标准

无法弄清楚为什么这个公式不起作用。 我想要做的是

如果ID匹配

并且订单状态包含“调出”(我需要它find“部分调出”和“调出”,因为这些是唯一的状态与“调出”,我只需要find它是否包含“叫出来”)

并且线路状态是“等待运输”

那么给我那个相应的物品编号。

每个ID都分配了多个商品编号,所以我需要它给我具体的符合这些指导的商品编号。 以下是我想出的。 问题是,我收到了不符合“呼叫”和“等待发货”标准的物品号码。

我从另一个电子表格(因此[Report.xlsx]报告)拉动信息。

B列是我用来匹配的ID号码

在另一份报告中,我正在查看匹配的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$2:INDEX(Report.xlsx!G:G,MATCH("zzz",Report.xlsx!G:G)))/ ((Report.xlsx!AP$2:INDEX(Report.xlsx!AP:AP,MATCH("zzz",Report.xlsx!G:G))="awaiting shipping")* (Report.xlsx!K$2:INDEX(Report.xlsx!K:K,MATCH("zzz",Report.xlsx!G:G))=B2)* SIGN(SEARCH("called out",Report.xlsx!G$2:INDEX(Report.xlsx!G:G,MATCH("zzz",Report.xlsx!G:G))))),1)) 

..并填写。

在这里输入图像说明