我目前有一个大型数据集,我对使用多个标准进行了总结。目前我使用 Sumproduct 可以工作,但数据很大,因此使用大量 Sumproduct 会导致电子表格变慢。
在 VBA 中,我尝试了几件事,在循环中评估 Sumproduct 并将答案粘贴为值,并且还尝试了 WorksheetFunction SUMIFS,但也非常慢。
我在数据字典的 VBA 中看到了看起来不错但不确定我是否可以复制它的示例。
我的数据示例:
StartDate StartTime EndDate EndTime ID Quantity
07/10/2019 00:30:00 07/10/2019 01:30:00 ABC123 1000
07/10/2019 00:01:00 08/10/2019 17:30:00 ABC123 15
07/10/2019 03:30:00 09/10/2019 12:00:00 123ABC 2000
07/10/2019 00:01:00 10/10/2019 11:00:00 ABC123 55
摘要表:ID、日期和时间标准已填充。VBA 将根据数量列中的标准输出数量。
ID ABC123
Date Time Quantity
07/10/2019 00:00:00
07/10/2019 00:30:00
07/10/2019 01:00:00
07/10/2019 01:30:00
条件:如果 StartDate <= Date, StartTime <= Time, End Date >= Date, EndTime > Time,则 ID ABC123 的总数量
示例 Excel 公式:
=SUMPRODUCT((StartDate<=$I3)*(StartTime<=$J3)*(EndDate>=$I3)*(EndTime>$J3)*(ID=$J$1)*Quantity)
结果:
ID ABC123
Date Time Quantity
07/10/2019 00:00:00 0
07/10/2019 00:30:00 1070
07/10/2019 01:00:00 1070
07/10/2019 01:30:00 70
需要强调的是,我在 VBA 中尝试过 SUMIFS 和 SUMPRODUCT,但摘要输出是一个包含大量数据行的大量时间序列表,因此它真的很困难。
希望这是有道理的......