Excel表10万行数据,筛选卡顿怎么办?
作者:小窝来源:部落窝教育发布时间:2024-07-26 12:00:16点击:484
编按:
当Excel工作表数据上万行,10万行,三四十万行后,可能运行缓慢、卡顿。尤其是对含有大量公式的表格进行筛选操作,可能一次筛选就需要等待十分钟以上。小窝分享两种避免运行卡顿的大数据筛选方法。
客服老师转来一份新朋友的求助:工作表有近10万行数据,每次筛选都卡得要死,怎么解决?(遗憾的是,因为有事耽搁没有及时处理,在此,说声抱歉。)
或许其他伙伴也可能遇到此类问题,小窝用共92993行的两列数据在此分享一点经验。
A列是客户编码, B列是物料代码,整个数据按客户编码做了排序。现在需要筛选出每个客户第一次出现时的数据。
新朋友的解决方式是:
C2中填入公式“=MATCH(A2,A:A)=ROW(A2)”并向下填充,得到一列TRUE、FALSE组成的数据。TRUE代表用户首次出现。筛选C列中所有TRUE值,得到客户首次出现的数据。
但是每次筛选都卡得要死,为什么如此卡呢?
筛选操作会触发整个工作表重新计算。
当前C2:C92993中每个单元格中的公式都引用了超100万个数据(整个A列),合计引用超900亿个数据,因此计算极其耗时。小窝用自己的电脑测试了一下,C列整个计算需要186.49秒。
有两种方式可以减轻运行卡顿。
第一种:不改变公式,采用手动计算加Filter函数进行筛选。
(1)在“公式”选项卡的“计算”组中,设置为“计算选项”为手动,避免如增删数据等操作触发工作表重新计算。
(2)在E2中输入“=FILTER(A2:B92993, C2:C92993)”即可。
FILTER函数进行筛选时不会触发工作表重新计算,FILTER公式只引用了20多万个数据,经测试耗时只有0.008秒。
第二种:修改C列公式降低单元格引用量后继续用筛选功能进行筛选。
(1)计算选项保持“自动”不变。在C2中输入公式“=IF(A2<>A1,1,0)”并向下填充。
(2)正常执行“数据”选项卡中的“筛选”操作筛选“1”即可。
C列每个公式只引用2个数据,共引用不到20万个数据。经测试,耗时只有0.026秒。
两种方法,推荐大家采用第二种,从根本上减少用时。第一种方法有很多不足,只要触发重新计算就会很耗时。
(1)优化公式,降低单元格引用量是大数据表格提高工作表速度的重要方法。
(2)如果不能优化公式,也可启用手动计算,减少运算。或者转用其他工具如PQ进行数据处理。
本文配套的练习课件请添加客服微信buluowojiaoyu索取。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者小窝;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。