问题如下:
我正在构建库存系统。它有 3 个工作表:交易(输入已进行的交易)、已收货(输入收到的新库存)和库存(显示成本和库存数量)。
交易和收到页面使用下拉菜单从产品范围中选择项目(存储在后端表中)。
在库存页面上,比如在“饼干”库存数量单元格中,我想查找今天或之前交易表中出现的“饼干”,并获取每种饼干的数量。然后,我需要对“已收货”表执行相同操作,减去这两个数字,以获得实际库存数量。
我查看了许多关于在多个工作表中使用 VLOOKUP 函数的指南,但它们似乎都在同一工作表中返回查找值,而不是在不同的工作表中返回。这每次都会导致出现 #N/A 消息。
该表可在此处找到
https://www.dropbox.com/s/pf1wzsa7ruhjzc1/stockSystem.xlsx?dl=0
这样你就能更清楚地看到问题。
如果有人能给我指明正确的方向我将不胜感激。
谢谢,卢克
答案1
由于您的工作表保存为 .xlsx,我相信您使用的是 Excel 2007 或更高版本。基本上,当您的 VLOOKUP 函数中存在错误时,原则上,如果您在您的案例中使用 VLOOKUP 或 INDEX MATCH,您可能无法获得所需的结果。
您尝试做的是根据其中的内嵌注释,在“交易”和“已收到”表中查找具有两个条件的项目。
1 - 商品名称应匹配
2 - 日期应小于或等于当前日期
满足这两个条件后,您需要对数量求和。
显然,我不确定为什么需要匹配日期,通常是因为其中不应该输入任何未来交易。
但是,这可以使用 Excel 2007 及更高版本中提供的 SUMIFS 函数来实现。
请参阅下面的截图。
在名为 Stock 的工作表的单元格 B6 中输入以下公式并将其向下拖动。在此示例中,我选取了一小段单元格范围,例如 A4 至 A14,但可以根据您的工作表进行修改。
=SUMIFS(Received!$E$4:$E$14,Received!$A$4:$A$14,"<="&NOW(),Received!$D$4:$D$14,A6)-SUMIFS(Transactions!$E$4:$E$15,Transactions!$A$4:$A$15,"<="&NOW(),Transactions!$D$4:$D$15,A6)
答案2
Rohit 的回答很好。特别是第二个选项,因为它的操作更轻松,但仍然能返回所需的结果。
另一个选项是使用 INDEX 和 MATCH。这样,您可以消除 VLOOKUPs 第一列查找值的要求 -
=INDEX(Received!$E$4:$E$10, MATCH(A6, Received!$D$4:$D$10, 0))
答案3
您的 VLOOKUP 公式是 =VLOOKUP(A6,Received!A4:F27,5,FALSE)。但是它在 A 列中查找“饼干”,但该项目实际上在 D 列中。VLOOKUP 查找表格第一列中的值。
如果可以的话,请交换工作表“已收到”中的 A 列和 D 列,这样 VLOOKUP 应该可以正常工作。
或者将公式更改为 =VLOOKUP(A6,Received!D4:F27,2,FALSE),如果前 3 列无关紧要,它将正确搜索。