Excel索引与If Criteria匹配

时间:2016-11-02 14:29:48

标签: excel indexing excel-formula

我有2个这样的excel工作簿:

Workbook1

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列中每个项目的预期交货日期,以及COlumn C中交付项目的预期数量。

我想在工作簿2中创建一个If公式放入B列,这将检查每个项目(C列)的预期数量是否与D列中的收到库存相匹配。

如果收到的库存多于或与预期的交货数量匹配,我希望状态为“已交货”。

如果收到的库存少于预期交货数量,那么我希望状态为“库存不足”。

如果收到的库存为0,我希望状态显示“预期交货”并从A栏开始交货日期。因此,您将获得'交货预期01/11/2016'。

到目前为止,我正试图将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错误。请有人告诉我我哪里出错了,以及我如何才能达到最终结果?

1 个答案:

答案 0 :(得分:0)

这是一个很长的公式。

=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 作为公式。

让我知道它是否有效。