Excel公式可检索大量数据集的条件求和积

时间:2019-02-19 07:05:48

标签: arrays excel many-to-many formula sumproduct

我有一个超过50,000行的数据表。数据包含STORES,DATES和PRODUCTS排列的SALES信息。但是,产品实际上是主要产品(PP)和次要产品(SP)的组合,其中1 PP的销售数量应转换为1个或更多SP的销售。我还有另一张纸,其中包含PP到SP的转换,其中包含相应的MULTIPLIERS(超过500行)。 PP和SP具有多对多关系; PP可能会转换为几个不同的SP,并且同一SP可能会与其他PP转换。

目前,产品仅存在未转换的销售数量,如果存在倍增器,我的工作就是将这些数字转换为每个PP的相应SP。

示例:https://i.stack.imgur.com/YdGHn.png

我可以使用以下SUMPRODUCT()公式执行此操作,该公式似乎比数组公式更有效:

=SUMPRODUCT(
(Conversions[Multiplier]),
--(Conversions[SP]=[@Product]),
SUMIFS([Quantity],[Product],Conversions[PP],[Store],[@Store],[Date],[@Date])
)

但是,考虑到我的数据集的大小,它仍然需要永远处理。有更有效的方法吗?

编辑:

我尝试将公式包装在条件中,以便SUMPRODUCT仅评估是否可以在转换表中找到有问题的产品作为SP(并且它现在还显示没有任何转换的PRODUCTS的值)。这似乎使速度加快了一些,但仍远远不够快...

=IFERROR(IF(MATCH([@Product],Conversions[SP],0)>0,
SUMPRODUCT(
(Conversions[Multiplier]),
--(Conversions[SP]=[@Product]),
SUMIFS([Quantity],[Product],Conversions[PP],[Store],[@Store],[Date],[@Date])
),0),0)+[@Quantity]

1 个答案:

答案 0 :(得分:0)

,如果有可能将数据导入数据库。然后,您可以使用索引表。应该更快。