Excel 本身并不是一个“多线程”应用程序,这意味着它无法将一个复杂的计算任务(比如一个庞大的公式)拆分成两半,然后让两个 CPU 核心同时计算。

这并不意味着 Excel 无法利用多个处理器,我们可以从两个方面来理解“Excel 正在计算 2个处理器”:
最常见的原因 - Excel 界面响应与后台计算分离
这是您最可能遇到的情况,您看到任务管理器里 Excel 占用了 50% 的 CPU(在 4 核 CPU 上),或者两个核心的占用率都很高。
发生了什么?
Excel 的计算过程可以分为两个主要部分,它们可以同时在不同的处理器核心上运行:

-
后台计算引擎
- 这是 Excel 的“大脑”,负责执行所有公式的计算、刷新数据透视表、运行 VBA 宏等。
- 当您的文件很大、公式复杂时,这个计算引擎会非常繁忙,它会占用一个 CPU 核心来全力工作。
-
用户界面 线程
- 这是 Excel 的“手和脚”,负责处理您的所有操作,
- 移动鼠标、点击单元格、滚动屏幕。
- 绘制和刷新窗口、图表。
- 显示状态栏信息(如“就绪”、“计算中”)。
- 为了保证您在等待计算完成时,Excel 界面不会卡死(变成“白屏”或“无响应”),UI 线程会独立运行。
- 这是 Excel 的“手和脚”,负责处理您的所有操作,
为什么是两个核心都在工作?
- 核心 1 (0-25% 使用率): 正在被 Excel 的后台计算引擎占用,它正在拼命地重新计算您的公式。
- 核心 2 (0-25% 使用率): 正在被 Excel 的用户界面线程占用,它正在等待计算结果,同时保持界面的响应性,比如在状态栏显示“计算中...”,并让您可以移动鼠标。
简单比喻: 想象一个餐厅,只有一个厨师(后台计算引擎)在满头大汗地做菜(计算),但同时还需要一个服务员(用户界面)在旁边随时准备为您倒水、介绍菜单(保持界面响应),厨师和服务员可以同时在不同区域忙碌,所以看起来餐厅里有两件事在同时发生。

特定功能可以利用多核
虽然主计算引擎是单线程的,但 Excel 中的一些特定功能是经过优化,可以充分利用多个 CPU 核心的。
-
数据刷新 (特别是 Power Query)
当您刷新从外部数据源(如数据库、网页)导入的数据时,Excel 会使用多个核心来并行处理数据转换、加载等任务,这是多核利用最明显的场景之一。
-
某些 VBA 宏
- 如果您的 VBA 代码中明确使用了多线程技术(例如通过
CallByName调用 .NET 程序集中的多线程功能),或者宏本身触发了可以多线程执行的操作(如刷新数据透视表),那么您也可能看到多个核心被占用。
- 如果您的 VBA 代码中明确使用了多线程技术(例如通过
-
条件格式 和数据验证
在极少数情况下,当工作表中有大量的条件格式规则或数据验证时,Excel 在应用这些规则时也可能进行一定的并行处理,但这通常不是主要的性能瓶颈。
如何判断和优化?
您可以通过以下步骤来确认和解决性能问题:
打开 Windows 任务管理器
-
按
Ctrl + Shift + Esc打开任务管理器。 -
切换到“性能”选项卡,然后点击左侧的“CPU”。
-
运行您的 Excel 文件,观察右侧的“使用历史记录”图表。
-
如果看到两个核心稳定占用: 这很可能是情况一,即后台计算和UI响应在同时进行,这是正常现象,说明 Excel 正在努力工作并保持响应。
-
如果看到所有核心都被占用: 这很可能是情况二,您可能在刷新数据或运行一个优化的宏。
-
如果只有一个核心被占用到 100%: 这就是典型的单线程瓶颈,您的计算任务非常繁重。
优化 Excel 性能(针对单线程瓶颈)
如果您的 Excel 文件运行缓慢,核心问题通常是单线程计算太慢,您可以尝试以下方法:
-
禁用自动计算:
- 转到
公式选项卡 ->计算选项-> 选择手动。 - 这样,Excel 不会在您每次修改单元格时都重新计算,您可以在完成所有修改后,按
F9键进行手动计算,或者按Shift + F9只计算当前工作表。
- 转到
-
减少和优化公式:
- 尽量使用 Excel 的内置函数(如
SUMIFS,INDEX/MATCH),它们通常比复杂的数组公式或自定义 VBA 函数更快。 - 避免在整个列上使用公式(如
A:A),尽量限定范围(如A1:A10000)。 - 将复杂的公式拆分成多个步骤,存储在中间列中。
- 尽量使用 Excel 的内置函数(如
-
使用“计算列”替代辅助列:
对于 Power Pivot(数据模型)中的计算列,Excel 会在后台使用多个核心进行计算,这通常比在普通工作表中创建辅助列要快得多,尤其是在处理大量数据时。
-
简化 VBA 代码:
检查您的宏,确保它们是高效的,避免在循环中频繁读写工作表,最好将数据读入数组,在内存中处理完毕后再一次性写回工作表。
-
升级硬件:
- 由于 Excel 计算主要依赖单核性能,提升 CPU 的主频(即单个核心的速度)比增加核心数量对提升 Excel 计算速度更有效,增加内存和升级到更快的 SSD 也会有帮助。
- Excel 主计算是单线程的,但它将后台计算和UI响应分配到不同的线程,因此您经常能看到两个核心在工作。
- 这是一种正常的设计,目的是防止界面卡死。
- Excel 运行缓慢,问题根源通常是单线程计算能力不足。
- 优化的重点在于减少计算量(禁用自动计算、简化公式)和提升单核 CPU 性能,而不是仅仅看核心数量。
