最近看到有人求助:Excel 里 30 万行数据,每一步都卡 2 分钟才能进行下一步,是不是电脑不行?该去学 VBA,还是转 Python?小红书这不是个例,今年知乎上"VBA 过时了吗"“VBA 会被 Python 代替吗"这类问题从 3 月吵到 8 月,吵出了两种阵营:一种说学 VBA 是浪费时间,另一种说微软还在一直向 WPS 收 VBA 使用费,过时的说法根本站不住脚。知乎小红书上也有 57.1M 的文件、53 万行数据,筛选后复制粘贴卡了 2 个小时才成功的吐槽。小红书但这类讨论看多了,我最想说的一句话是:大表卡顿,多数不是电脑配置问题,也还轮不到"必须学一门新语言”,更多时候是数据被塞进了 Excel 错误的层。
先明白两个硬事实
第一,Excel 单张工作表的容量上限是 1048576 行、16384 列。数据逼近这个上限时,打开、滚动、保存都会变慢,这是规格决定的,加内存也救不了。
第二,Excel 的计算逻辑是"按依赖链重算":改一个单元格,所有依赖它的公式都要重新算一遍。整列引用的 VLOOKUP、INDIRECT/OFFSET/TODAY 这类易失函数,再叠加大量条件格式,会让几十万行的计算量成倍放大。30 万行就卡,多数是表本身要治病,不是工具不行。

Excel 其实有五层,多数人只用了第一层
下面这个分层阶梯可以直接拿去对照。分层数字是经验值,会随电脑配置、公式复杂度浮动,它的作用是帮你判断"自己大概该待在哪一层",不是硬切线。
第一层,函数层(约 5 万行以内)。SUMIFS、VLOOKUP、透视函数足够应付日常。一旦开始卡,说明要么数据涨上来了,要么公式写得太野。
第二层,Power Query 层(约 10 万~100 万行的清洗合并)。Power Query(简称 PQ)是 Excel 内置的数据连接和转换工具,入口在"数据"选项卡的"获取数据"。知乎它解决的是"每个月都要做同样一遍清洗、合并"的场景,步骤配置一次,以后一键刷新。社区里已经有人用 PQ 处理几十万行的月度数据,抱怨的只是打开加载慢、做其他统计时卡——那是用法问题,不是它干不动。小红书

第三层,数据模型层(超过 100 万行的汇总分析)。PQ 刷新时选择"仅创建连接"再加载进数据模型,可以绕开 1048576 行的工作表上限,做千万行级的透视汇总。数据以列式压缩存在内存里,代价是不能逐行看明细,适合"看汇总、看分布"的分析需求。
第四层,VBA/宏层(强项不是算,是"操作 Excel 本身")。很多人一听卡就想学 VBA,其实 VBA 逐格计算也不快,它真正的强项是重复操作自动化、做窗体式录入系统,尤其是"跨多个文件遍历"。知乎有位每天处理近 10 万条打卡记录的网友,函数已经跑不动,方案就是"在 A1 单元格填人名,宏遍历卡包流水,弄完一个关闭一个"——这种场景 VBA 就是对口的。知乎另外 2026 年有个现实变化:先让 AI 写 VBA 再人工微调,门槛已经很低,不需要系统学完才能用。

第五层,Python 层(千万行级 + 复杂流水线 + 团队协作)。性能确实是降维打击,有知乎用户实测:pandas 处理 100 万行数据只要 3 秒,openpyxl 要 45 秒。知乎但它有三个前提:电脑允许装 Python(不少公司电脑锁权限,这一条就能劝退一大半人)、不需要操作正在打开的 Excel 界面(这恰恰是 VBA 的独有地盘)、同事也能跑起来并接手维护。

三步自查:决定学什么之前,先看卡在哪
第一步,打开、滚动、保存慢:先查表本身胖不胖——条件格式规则是否过多、有没有大范围带格式的空区域、VLOOKUP 是不是整列引用、易失函数是否密集。这些清一遍,比学任何新工具都立竿见影。
第二步,公式算得慢、清洗步骤每月重复:把清洗搬进 Power Query,表内只留轻量的最终表,多数"月报卡顿"这一步就能解决。
第三步,数据就是超过 100 万行:汇总分析用数据模型(Power Pivot),还不够再上 Python;如果痛点不是算而是"操作"——拆文件、批量排版、窗体录入——回到宏录制和 VBA,这才是宏的主场。
另外两件值得知道的事。如果你用的是 Microsoft 365,"Python in Excel"从 2025 年起已分批推送,可以直接在单元格里写 Python,不过受订阅套餐和推送节奏限制,决定报 pandas 班之前,值得先看看自己账号里有没有这个入口。还有,PQ 也不是万能的,像逐行滚动余额这类迭代逻辑,用 M 语言写非常痛苦,这种时候换 VBA 或 Python 更快。
写在最后
有句话说得准:pandas 太像工程工具,Excel 太像组织工具,这俩压根不在一个维度竞争。知乎VBA、PQ、数据模型之间也一样,各有各的生态位。下次表卡了,别急着问"我该学什么",先问"我卡在哪一层"。多数人的 Excel 往深了挖,至少有三层从没打开过,而换一层,问题往往就好了。