IF和包含多个条件的声明

时间:2017-03-28 17:16:30

标签: excel excel-formula vlookup

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

如果ID匹配

AND订单状态包含“已调出”(我需要它来查找“部分调用”和“调出”。由于这些是唯一的状态'带有“被调用”,我只需要查找是否它包含“被叫出”)

并且线路状态为“正在等待发货”

然后给我相应的物品编号。

每个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)), ""), "")

1 个答案:

答案 0 :(得分:0)

从此示例数据中

enter image description here

在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))

..并填写。

enter image description here