excel - 比较两个表,根据日期获取总和并减少下一条记录的总和
问题描述
第一张表:所需数量
Ship From Material Req Date Req Quantity Fulfill(Y/N)?
----------- ---------- ----------- -------------- ---------------
21 Mat1 7/1/2018 46
21 Mat1 8/19/2018 33
21 Mat1 9/2/2018 99
21 Mat1 9/2/2018 4
106 Mat1 9/16/2018 92
106 Mat1 8/19/2018 126
457 Mat2 8/19/2018 126
457 Mat2 9/10/2018 126
457 Mat2 9/10/2018 126
457 Mat2 9/10/2018 24
478 Mat2 9/2/2018 52
478 Mat2 9/10/2018 73
478 Mat2 9/10/2018 18
478 Mat2 9/16/2018 30
第二个表:可用库存
Ship From Material Inv Available Date Available Qty
----------- ---------- -------------------- ---------------
21 Mat1 6/15/2018 46
21 Mat1 6/15/2018 33
21 Mat1 7/2/2018 99
21 Mat1 10/2/2018 4
106 Mat1 10/16/2018 92
106 Mat1 7/19/2018 126
457 Mat2 8/19/2018 126
457 Mat2 8/10/2018 126
478 Mat2 9/16/2018 30
478 Mat2 10/2/2018 52
我们需要在 Inv 可用日期或之前检查第二张表中是否有足够的库存(sum(Available qty)),并在表 1 上标记是否可以履行订单。
请注意,对于在表 1 上完成的订单,我们需要从表 2 中减少数量总和。
我有 excel 中的数据,我们可以编写 excel 公式(vba)或数据透视表来实现这一点,或者我可以将它加载到 SQL 中。
我在 table1 中有 70k 行,在 table2 中有 600k 行。
我尝试了电源查询,但无法实现我想要的。
任何帮助将不胜感激。
解决方案
无论您选择哪种方法,比较从 70K 行到 600K 行相关数据的聚合总数都需要一些计算能力,但我觉得简单的 SUMIFS 与 SUMIFS 是一个可行的选择。
您在 7 月 1 日从 21 日开始运送 46 个 mat1,但当天您有 79 个库存,因此可以发货。与 8 月 19 日相同。但是,在 9 月 2 日,您有 99 和 4 的订单,但由于之前发货的库存耗尽,您只能完成其中一个订单。在 10 月 2 日补充库存之前,无法完成第二个订单。同样,mat2 的两个订单可以从 457 完成,但第三个订单不能。来自 478 的第一批 mat2 将延迟发货,这会减少可用数量,因此如果没有额外库存,则根本无法进行第二批发货。
在 E3 每个提供的图像中,
=IF(SUMIFS(K:K, H:H, A3, I:I, B3, J:J, "<="&C3)>=SUMIFS(D$3:D3, A$3:A3, A3, B$3:B3, B3, C$3:C3, "<="&C3), "Y", "N")
推荐阅读
- java - 如果类在 java 中有公共字段,我该如何使用它们的组合?
- html - 仅在输入而不是标签上应用悬停选择器
- postgresql - 在 postgres 中正确设置角色的 statement_timeout
- javascript - 用于条件加载变体字段的 Jquery Click 功能无法正常工作
- javascript - 为什么箭头函数可以解决其他需要 .bind 的问题?(SetInverval 调用使用 setState 的函数)
- pdf - FileMaker Pro 电子签名
- python - discord py 删除所有个人角色
- mysql - 为什么 DELETE 语句不会一次性删除所有满足条件的记录?
- python - 与实现 len() 或 shape 的对象无关的函数
- azure - 无法在 Azure DevOps 管道中运行嵌套的 az cli 命令