我在 Excel 中遇到了一个以前从未遇到过的奇怪问题。我有一张 Excel 表,我正尝试从中提取一些特定记录,这需要我知道重复项。我使用 COUNTIF 筛选重复项,然后根据其他过滤器提取;但是,COUNTIF 似乎挂起了 Excel。我在下面概述了我的流程。
- 使用 =COUNTIF(A:A,A2) 创建列
- 将公式复制到列下方
- 保存工作表(挂起/需要很长时间才能完成)或复制列并粘贴值(挂起/需要很长时间才能完成
我在 Excel 2010 和 2013 中执行过此操作,在两台不同的 PC 上得到的结果相同。工作表中只有 172000 行。公式执行良好,可以获取值,但当我尝试保存或复制和粘贴列值时会挂起。如果没有该列,工作表会正常运行。我以前从未遇到过这种情况。
提前致谢!
答案1
为什么不直接应用过滤器而要使用countif()
?
- 选择您的数据,然后前往
Data - Sort & Filter - Advanced
放置高级过滤器。 - 就地过滤列表
- 选择整个表格作为
List range
- 选择 A 列作为
Criteria range
- 勾选仅限唯一记录
答案2
请尝试以下操作:
- 关闭自动计算。(公式功能区选项卡、计算组、计算选项下拉菜单、手动)
- 关闭“保存前重新计算工作簿”(选项,公式选项卡,计算选项部分)
- 将对 A 列的引用更改为对动态命名范围。
答案3
包含您要在其中查找重复项的列的数据透视表。
计算您的价值出现的次数。
将计数 > 1 的任何内容复制到另一张纸上
将此工作表用作 VLOOKUP 表,标记原始工作表上的重复项。
从 VLOOKUP 复制/粘贴值(因为公式是不稳定的,并且您不希望 Excel 在每次进行更改时重新计算)。
过滤重复项。
Vlookup 操作仍然需要一些时间,但它比 COUNTIF 快得多。
答案4
尝试使用数组公式,其性能应该会更好。
- 如果你的公式是b列,那么:选择B2:B172000
- 类型
=COUNTIF($A$1:$A$172000,A1:A172000)
- 按 Cntrl-Shift-Enter