[英]Excel Index Match with If Criteria
我有2个这样的Excel工作簿:
工作簿1
A (Delivery Date) B (Item Code) C (Expected Delivery quantity) D (Received Stock)
01/11/2016 412 100 0
31/10/2016 234 200 200
02/11/2016 111 10 6
工作簿2
A (Item Code) B (Status)
412 Delivery expected 01/11/2016
234 Delivered
111 Insufficient Stock Delivered
我正在尝试在workbook2的B列中运行一个excel公式,该公式将向用户更新物料代码匹配的交货状态。
工作簿1在A列中给出了每个物料的预期交货日期,并在C列中给出了预期交货数量。
我想创建一个If公式,将其放入工作簿2的B列中,该公式将检查每个项目(C列)的预期数量是否与D列中的收到库存相匹配。
如果收到的库存更多或与预期的交付数量匹配,我希望状态为“已交付”。
如果收到的库存少于预期的交付数量,那么我希望状态为“交付的库存不足”。
如果收到的库存为0,我希望状态为“预期的交货”并从A列中选择交货日期。因此,您将获得“预期的交货2016年11月11日”。
到目前为止,我试图将这样的if语句放在一起:
=IF('[workbook1.xlsm]Sheet1'!$D$1:$D$10000=0,"Delivery Due"&Index('[workbook1.xlsm]Sheet1'!$A$1:$A$10000',Match(B1,'[workbook1.xlsm]Sheet1'!$B$1:$B$10000),0),IF('[workbook1.xlsm]Sheet1'!$D$1:$D$10000<'[workbook1.xlsm]Sheet1'!$C$1:$C$10000,"Insufficient Stock Deliverd","Delivered")
我的公式不起作用,并且出现#Value错误。 请有人可以告诉我我要去哪里哪里以及如何达到最终结果吗?
这是一个很长的公式。
=IF(INDEX([WorkBook1.xlsm]Sheet1!A:D,MATCH(A2,[WorkBook1.xlsm]Sheet1!B:B,0),3)=INDEX([WorkBook1.xlsm]Sheet1!A:D,MATCH(A2,[WorkBook1.xlsm]Sheet1!B:B,0),4),"Delivered",IF(0=INDEX([WorkBook1.xlsm]Sheet1!A:D,MATCH(A2,[WorkBook1.xlsm]Sheet1!B:B,0),4),CONCATENATE("Delivery Expected ",TEXT(INDEX([WorkBook1.xlsm]Sheet1!A:D,MATCH(A2,[WorkBook1.xlsm]Sheet1!B:B,0),1),"DD/MM/YYYY")),IF(INDEX([WorkBook1.xlsm]Sheet1!A:D,MATCH(A2,[WorkBook1.xlsm]Sheet1!B:B,0),3)>INDEX([WorkBook1.xlsm]Sheet1!A:D,MATCH(A2,[WorkBook1.xlsm]Sheet1!B:B,0),4),"Insufficient Stock Delivered",)))
转到名称管理器,并将此公式分配给任何名称,例如“状态”
并且从B2到B1000的所有单元格将只有=status
作为公式。
让我知道它是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.