寻找比 COUNTIFS 和 MINIFS 更有效的方法来比较多行

寻找比 COUNTIFS 和 MINIFS 更有效的方法来比较多行

我有一个电子表格,其中包含数十万行,分布在多个工作表中,每个工作表都使用多列 VLOOKUP,此外还有一些列公式,例如 COUNTIFS 和 SUMIFS,这些公式在计算时会查看工作表上的每一行。每次计算时,我的 CPU 都会激增,有时计算时间太长,我可能需要泡一杯咖啡才能完成。

我已经通过使用 MATCH("*",[column],-1) 查找最后一行并动态生成范围(而不是仅引用整个列),以及通过将 VLOOKUP 替换为 INDEX MATCHes 来使情况变得不那么糟糕了。只剩下两个公式我不知道如何改进。

以下是我正在处理的数据的近似值:

+--------+-------+----------+--------+
| Group  | Item  | Quantity | Round  |
+--------+-------+----------+--------+
| Group1 | Item1 |        2 | 1      |
| Group1 | Item2 |        2 | 2      |
| Group2 | Item1 |        2 | 1      |
| Group2 | Item2 |        3 | 2      |
| Group2 | Item3 |        2 | unused |
+--------+-------+----------+--------+


对于第一个问题,我想查看组中的所有项目是否具有相同的数量。旧版本使用以下公式:

=COUNTIFS(A:A,A2)=COUNTIFS(A:A,A2,C:C,C2)

我可以不使用 COUNTIFS 完成同样的事情吗?使用数据透视表是否会比使用原始数据本身提高性能?或者我能做的最好的事情是用 MATCH 计算的动态范围替换整个列引用?


对于第二个问题,我试图找到该组的最小“舍入”值。旧公式:

=MINIFS(D:D,A:A,A2)

它曾经是一个数组公式 -

={MIN(IF(A:A,A2),IF(P:P>0,P:P))}

- 所以当 MINIFS 添加到 Excel 时我非常兴奋。但是有没有比 MINIFS 更好的东西可以用来得到这个答案呢?

答案1

您完全可以使用数据透视表来实现这一点。根据我的经验,数据透视表(一旦创建并缓存)比 sumif/countif 公式快得多,但这取决于数据集的大小。

按照如下方式创建数据透视表:

  • 选择您的数据,单击“数据透视表”按钮,单击“确定”
  • 将“组”拖到行框中
  • 将“四舍五入”拖到列框中,单击它,单击“值字段设置”,选择“最小值”,然后单击“确定” - 这是每个组的最小值
  • 将“数量”拖到列框中,单击它,单击“值字段设置”,选择“最小值”,然后单击确定
  • 将“数量”拖到列框中,单击它,单击“值字段设置”,选择“最大”,然后单击确定

如果“最小数量”和“最大数量”相等,则说明该组中的所有商品数量相同。您可以在数据透视表旁边创建一个公式来评估这一点。

Excel 中的屏幕截图

相关内容