【问题标题】:Excel Index Match with If CriteriaExcel 索引与 If 条件匹配
【发布时间】:2016-11-02 14:29:48
【问题描述】:

我有 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 年 1 月 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 错误。请问有人可以告诉我我哪里出错了,我怎样才能达到我的最终结果?

【问题讨论】:

  • 您需要在 WB2 中查找要使用 VLOOKUP 的每个项目的相关值。如果可以在 WB1 中添加公式,我建议您在 Col E 中添加状态。然后在 Workbook 2 中使用 VLOOKUP 查找状态。
  • @eshwar 感谢您的想法,但无法对 WB1 进行任何修改
  • 那么您将需要单独的 VLOOKUP 才能获得预期和接收。像你一样在 if 语句中使用它们
  • 但是您的 IF 将仅用于当前行中的值。

标签: excel indexing excel-formula


【解决方案1】:

这是一个相当长的公式。

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

让我知道它是否有效。

【讨论】:

    猜你喜欢
    • 2018-10-07
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 2018-01-07
    • 2019-12-28
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多