我目前有一个大型数据集,该数据集针对使用多个条件得出了摘要。目前,我使用的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 =日期,EndTime>时间
,则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,但摘要输出是一个庞大的时间序列表,其中包含很多行数据,因此确实很麻烦。
希望这很有道理...