1

我目前有一个大型数据集,我对使用多个标准进行了总结。目前我使用 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,但摘要输出是一个包含大量数据行的大量时间序列表,因此它真的很困难。

希望这是有道理的......

4

0 回答 0