ARTICLE · 1051634
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+↓一次选中往下所有行,然后右键 →【删除】。列也一样,选中多余的列右键删除。

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
