https://docs.google.com/spreadsheets/d/1Asd_7njduyx4ku9ZzqqBLmbLxXuZ2RBNlZvCQx12bFk/edit?usp=sharing
参考上面的示例数据图片和链接,我需要帮助在E列中制作公式,其中条件如下:
如果 A 列 = 样本/图纸更新,并且 C 列 = 已完成,则根据 D 列中的数据搜索 B 列中的数据,如果找到匹配项,则返回“现有数据”。如果未找到,“需要更新”
如果 A 列 = 样本/图纸更新,且 C 列 = 进行中/尚未开始,则返回“待确认”。
如果 A 列 = 样本/图纸更新,且 C 列 = 已取消/暂停,则返回“无需采取任何措施”。
我已经尝试过下面的公式1,但似乎不起作用。我是新帮手。请帮忙。 =IFS(AND(OR(A2:2="样本",A2:A="图纸更新"),C2:C="已完成"),INDEX(IF(LEN(B2:2), IF(ISNUMBER(匹配) (B2:B, D2:D, 0)),“现有数据”,“需要更新”),)))
据我所知,您正在混合比较一次整个范围与一次特定行。
我将提供两种解决方案,涵盖您所要求的所有场景。
=IF(OR(A2="SAMPLE",A2="DRAWING UPDATES"),
IFS(C2="COMPLETED",IF(IFNA(XMATCH(B2,D$2:D,0),FALSE),"Existing Data","Updates Required"),
OR(C2="IN PROGRESS",C2="NOT YET STARTED"),"Pending Confirmation",
OR(C2="CANCELLED",C2="ON HOLD"),"No action required"),
"")
您需要将其放入 E 列的第一个单元格中,然后使用填充柄并将其向下拖动到其余单元格。
或者,如果您只想将其放入列中并应用它,而不必将其向下拖动到每个单元格,则使用以下公式:
=LET(existing,D2:D,MAP(A2:A,B2:B,C2:C,LAMBDA(task,part,status,IF(OR(task="SAMPLE",task="DRAWING UPDATES"),
IFS(status="COMPLETED",IF(IFNA(XMATCH(part,existing,0),FALSE),"Existing Data","Updates Required"),
OR(status="IN PROGRESS",status="NOT YET STARTED"),"Pending Confirmation",
OR(status="CANCELLED",status="ON HOLD"),"No action required"),
""))))
A2:A
是任务 列。B2:B
是零件编号 列。C2:C
是状态 列。D2:D
是现有列。