二维码 购物车
部落窝在线教育欢迎您!

Excel表10万行数据,筛选卡顿怎么办?

 

作者:小窝来源:部落窝教育发布时间:2024-07-26 12:00:16点击:484

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

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:

相关推荐:

当心跨文件查询的泄密风险

带近期要事提醒的工作日历

批量修改文件名的方法

再说按指定次数复制数据,不用PQ不用辅助列

版权申明:

本文作者小窝;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。