Excel COUNTIF 速度慢

Excel COUNTIF 速度慢

我在 Excel 中遇到了一个以前从未遇到过的奇怪问题。我有一张 Excel 表,我正尝试从中提取一些特定记录,这需要我知道重复项。我使用 COUNTIF 筛选重复项,然后根据其他过滤器提取;但是,COUNTIF 似乎挂起了 Excel。我在下面概述了我的流程。

  1. 使用 =COUNTIF(A:A,A2) 创建列
  2. 将公式复制到列下方
  3. 保存工作表(挂起/需要很长时间才能完成)或复制列并粘贴值(挂起/需要很长时间才能完成

我在 Excel 2010 和 2013 中执行过此操作,在两台不同的 PC 上得到的结果相同。工作表中只有 172000 行。公式执行良好,可以获取值,但当我尝试保存或复制和粘贴列值时会挂起。如果没有该列,工作表会正常运行。我以前从未遇到过这种情况。

提前致谢!

答案1

为什么不直接应用过滤器而要使用countif()

  1. 选择您的数据,然后前往Data - Sort & Filter - Advanced放置高级过滤器。
  2. 就地过滤列表
  3. 选择整个表格作为List range
  4. 选择 A 列作为Criteria range
  5. 勾选仅限唯一记录

答案2

请尝试以下操作:

  1. 关闭自动计算。(公式功能区选项卡、计算组、计算选项下拉菜单、手动)
  2. 关闭“保存前重新计算工作簿”(选项,公式选项卡,计算选项部分)
  3. 将对 A 列的引用更改为对动态命名范围

答案3

  1. 包含您要在其中查找重复项的列的数据透视表。

  2. 计算您的价值出现的次数。

  3. 将计数 > 1 的任何内容复制到另一张纸上

  4. 将此工作表用作 VLOOKUP 表,标记原始工作表上的重复项。

  5. 从 VLOOKUP 复制/粘贴值(因为公式是不稳定的,并且您不希望 Excel 在每次进行更改时重新计算)。

  6. 过滤重复项。

Vlookup 操作仍然需要一些时间,但它比 COUNTIF 快得多。

答案4

尝试使用数组公式,其性能应该会更好。

  1. 如果你的公式是b列,那么:选择B2:B172000
  2. 类型=COUNTIF($A$1:$A$172000,A1:A172000)
  3. 按 Cntrl-Shift-Enter

相关内容