夜雨聆风学习资料网

ARTICLE · 1051634

Excel 表格卡顿瘦身:先找出真凶,体积能砍掉九成!

Excel 表格卡顿瘦身:先找出真凶,体积能砍掉九成!

点击上方蓝字关注我们吧

表格打开要等两分钟,滚动条拖到底看不到头,Ctrl+End 一跳直接飞到几十万行外。好不容易改完发出去,对方回一句"打不开",邮件还提示附件超出上限。

遇到这种情况,多数人会去网上搜"Excel 文件太大怎么办",然后收获一堆零散技巧:压缩图片、删除对象、另存为 xlsx。问题是这些方法之间没有顺序,也不知道自己该用哪一条,试了半天文件还是那么大。

今天分享的思路是先定位再动手:花三分钟查出体积到底被谁占了,然后只处理那一个地方。

三分钟定位,看体积被谁占了

01.先分清:你的表是"真胖"还是"假胖"

同样是卡,原因完全不是一回事,这一步分错了,后面全白忙。

有一种是真胖:文件本身就有几十上百兆,体积摆在那里,打开自然慢。常见的是图片、图形对象、数据透视表缓存堆在里面。

另一种是假胖:文件才两三兆,双击却要转半分钟。这种情况体积不大,是计算量的问题——整列套了条件格式、公式里用了一堆每次都要重算的函数。

02.定位

xlsx 文件本质上是一个压缩包,把后缀改掉就能拆开看。这一步是整篇的关键,做完你就知道该翻到哪一章。

先另存一份副本接下来所有操作都在副本上做,原文件别碰。这和之前讲表格加锁那篇是同一个道理,动手之前先留一手,出问题随时能退回来。

把副本的后缀从.xlsx改成.zip如果你的电脑看不到后缀名,先在【查看】里把「文件扩展名」勾上。改的时候系统会弹警告说文件可能不可用,点「是」就行,这一步是安全的。

右键这个 zip 文件,解压。解压后你会看到一个结构固定的一堆文件夹。

xl文件夹,按大小排序。谁占了大头,元凶就是谁。

改完解开,xl 文件夹里通常是这么几样东西。对照下表看谁的体积最大。

这张对照表可以直接存下来,以后对着查就行。

定位对照表:查出谁最大,直接翻到对应那节。

解决元凶

01.图片(media 最大)

这是最常见的元凶,尤其是习惯直接截图粘进表格的人。截图粘进去的是屏幕分辨率的大图,一张可能就一两兆,几十张就是几十兆。

先把图片全部找出来

按 Ctrl+G 打开定位,点「定位条件」,选「对象」,确定。这一刻表格里所有图片、形状、文本框都会被选中。

注意:这一步会把图表、按钮也一起圈进去。所以先别急着按删除,看一眼左上角的名称框——它会显示一共选中了多少个对象。如果数量和你印象里的图片数对不上,说明里面混了图表,得先在名称框里逐个确认。

批量压缩,而不是批量删除

选中之后不要直接删。表格里的图片多数是有用的,正确做法是压缩:在选中的图片上右键,点【压缩图片】。

电子邮件(96 ppi)把图片分辨率压到屏幕上看的水平。除非这份表要打印成高清材料,否则够用

删除图片的裁剪区域:这个勾最容易被忽略。你在表格里裁剪过的图片,裁掉的部分其实还完整存在文件里,勾上它才真正丢掉。

02.幽灵区域(worksheets 很大)

这个元凶最隐蔽,因为表格肉眼看是正常的,就是滚动条变得特别短、拖半天看不到底。

用 Ctrl+End 一测就知道

在任意格按Ctrl+End,光标会跳到表格"认为"的最后一个有内容的位置。正常情况下它应该跳到你的数据结尾;如果它一下子跳到了几十万行外面,就是幽灵区域。

用"删除整行"清掉,不能用"清除内容"

把光标停在数据最后一行的下一行,按Ctrl+Shift+↓一次选中往下所有行,然后右键 →【删除】。列也一样,选中多余的列右键删除。

这一步做错就没有效果:按 Delete 键只是"清除内容",格式和存储空间都还在,文件一点都不会变小。必须用右键菜单里的删除,而且是整行删除。这是元凶二唯一的解法。

03.整列套了条件格式

这就是典型的假胖。文件可能才一兆多,但每改一格都要重新判断一百万行,卡到怀疑电脑坏了。

看规则的应用范围

点【开始】→【条件格式】→【管理规则】,看右边"应用于"那一栏。如果写的是整列,问题就找到了。

把范围改小

管理规则里点这条规则,把"应用于"的整列改成你的数据区域,比如 =$A$2:$H$8001,确定。数据以后还会增加的话,多预留几百行也行,但别到几十万行。

同样的道理也适用于数据验证(也就是下拉菜单)。整列套下拉菜单,同样会让文件变重。检查路径是【数据】→【数据验证】,看应用范围。

04.文件不大,一动就卡

用计算模式一秒确认

点【公式】→【计算选项】→ 临时改成「手动」。如果表格立刻变顺滑,就能确定是公式的计算量问题。确认完记得改回「自动」。

把算完的公式固定成数值

历史数据这类不需要再变的部分,选中 → 复制 → 右键 →【选择性粘贴】→【值】。公式变成数字之后就不再参与计算了,这是最有效的一招。

换掉几个"每次都要重算"的函数

有一类函数很特殊,表格里任何一格发生改动,它们都会全部重算一遍。数据量大、这类函数用得多的表,就会一直卡。

两个容易被忽略的大件

如果定位时发现是下面这两个文件夹最大,处理方式不太一样。

一是数据透视表缓存。pivotCache占了大头,说明每个透视表都自己存了一份源数据副本。删掉不再使用的透视表最直接;源数据缩小过的话,右键透视表刷新一次,再另存为新文件。

二是单元格样式堆积。styles.xml 异常大,通常是从别人的文件里大量复制粘贴带进来的。判断方法是看【开始】→ 单元格样式下拉里,是不是冒出了几百个"样式 1、样式 2"。这个彻底清理需要写代码,本篇先不展开,先知道有这回事——以后从外部文件复制内容时,用【选择性粘贴】→【值】可以避免继续累积。

别搞错顺序:照这个清单走一遍

上面四条方法单独看都对,顺序做反了也会白忙。固定按下面六步来。

温馨提示

01.所有操作都先在副本上做

删行列、删对象都是不可逆的,原文件留着,出问题重新来一遍就好。

这和之前讲表格加锁那篇是同一个思路,动文件之前先留一手。

    02."删除整行"和"清除内容"是两件事

    删幽灵区域必须用右键的删除,按 Delete 键只是把内容抹掉了,格式还在,文件不会变小。

    03.定位对象时会把图表、按钮一起选中

    之前先看名称框里的数量,对不上就先在名称框里逐个确认,别一键删掉。

    04.压缩图片是不可逆的

    压到 96 ppi 之后,再想放大或打印成高清就糊了,建议只在最终分发版上压。

    05.改后缀和用【另存为】建议在本地硬盘做

    放在网盘同步目录或者 U 盘里操作,容易同步失败。步骤 02 到 04 建议一口气做完,中途别存。

    最后一句

    整篇里最值钱的一步其实是第 02 步。多数人一上来就删对象、压图片,做完发现文件没怎么变,白忙半天——因为元凶根本不在这儿。改成 zip 看一眼,三分钟就知道该动哪里了。

    这篇建议先收藏,等哪天表格又卡了,翻出来照着六步走一遍就行,不用再去搜一遍。

    也想问问你:你的表格卡,是文件本身就大,还是文件不大但一动就卡?

    THE END

    相关学习资料