什么是多线程计算?

想象一下,您有一个包含10万个公式的复杂工作表,在旧版Excel中,计算这些公式就像一个厨师(单个处理器核心)必须一个接一个地做完所有菜(计算所有公式),非常耗时。

excel 正在计算 4个处理器
(图片来源网络,侵删)

多线程计算就像您雇佣了4个厨师(4个处理器核心),Excel 会将这10万个公式的计算任务拆分成4个大块,然后分配给这4个“厨师”同时工作,这样一来,完成所有计算的时间就大大缩短了。

核心要点:

  • 目的: 提升大型、复杂工作簿的计算速度。
  • 工作方式: Excel 将计算任务分配到您电脑的多个CPU核心上并行处理。
  • 用户感知: 您会感觉到Excel在处理复杂公式、刷新数据透视表或打开大文件时,卡顿和等待时间明显减少。

如何查看和设置 Excel 使用多少个处理器?

Excel 的多线程计算功能是默认开启的,并且它会自动检测并使用您电脑上所有可用的处理器核心,您通常不需要手动设置,但可以查看和确认。

操作步骤:

excel 正在计算 4个处理器
(图片来源网络,侵删)
  1. 点击 Excel 左上角的 “文件” 选项卡。
  2. 选择最下方的 “选项”
  3. 在弹出的 “Excel 选项” 窗口中,选择左侧的 “高级”
  4. 向下滚动到 “公式” 部分。
  5. 您会看到 “启用多线程计算” 的选项,它通常是勾选的。

重要提示:

  • 在这个设置界面,您无法手动指定使用4个或8个核心,Excel 会根据您的CPU自动管理,如果您的CPU是4核的,它就会尽量使用4个核心;如果是8核的,就会使用8个核心。
  • “计算线程数”这个选项在某些旧版企业版Excel中可能存在,但在大多数现代版Excel(如Office 2025及以后)中,这个选项已被移除,系统会自动优化。

为什么我的 Excel 没有使用全部处理器?

有时,您可能会在任务管理器中发现Excel并未占用100%的CPU,这可能是因为以下原因:

  1. 任务简单: 如果您的工作表只有几个简单的公式,Excel计算得非常快,根本没有必要启动多线程,它瞬间就完成了。
  2. 依赖项(Dependencies): 多线程计算的一个核心限制是“易失性函数” (Volatile Functions)循环引用
    • 易失性函数: 像现在()、随机()、单元格()、间接()等函数,每次工作表任何地方发生变化时,它们都会重新计算,这会阻碍Excel进行有效的并行计算,因为线程之间需要频繁同步,反而可能降低性能。
    • 循环引用: 当一个公式直接或间接地引用了它自己的结果时,会形成循环,这会迫使Excel进行单线程的迭代计算。
  3. 工作簿结构: 如果工作表之间有大量的跨表引用,或者数据模型(Power Pivot)结构复杂,也可能影响并行计算的效率。
  4. Excel 版本和设置: 确保您使用的是较新版本的Excel,启用多线程计算”的选项是勾选的。

如何优化 Excel 以获得最佳性能?

如果您希望 Excel 能更充分地利用您的4个(或更多)处理器,可以从以下几个方面入手:

黄金法则:减少易失性函数的使用

这是提升Excel计算性能最有效的方法,请尽量避免在工作表中滥用以下函数:

excel 正在计算 4个处理器
(图片来源网络,侵删)
  • NOW()TODAY():尽量只在需要显示实时时间的单元格使用,或者考虑用VBA来更新。
  • RAND()RANDBETWEEN():如果只需要一次随机结果,生成后可以“复制” -> “选择性粘贴” -> “值”来固化结果。
  • INDIRECT():使用这个函数会使Excel无法确定引用范围,极大地阻碍优化,尽量使用更直接的结构化引用(如数据表名称+列名)或索引匹配来替代。
  • OFFSET(), CELL(), INFO() 等也属于易失性函数,应谨慎使用。

其他优化技巧

  1. 使用 Excel 表格: 将您的数据范围转换为“表格”(按 Ctrl+T),表格的结构化引用比传统的 A1:B10 引用更清晰,性能也更好。
  2. 启用“计算工作簿”选项:
    • 在“公式”选项卡中,将“计算选项”设置为 “自动计算”,这是默认设置。
    • 对于极其庞大的工作簿,您可以暂时设置为 “手动计算”,完成所有修改后,按 F9 键进行一次性计算,这样可以避免每次输入都触发全表重算。
  3. 使用 Power Query (Get & Transform): 如果您需要从外部大量数据源(如数据库、文本文件)导入和清洗数据,请使用 Power Query,它在后台运行,效率远高于VBA或公式,且不会拖慢您的工作簿。
  4. 使用 Power Pivot 数据模型: 对于数百万行级别的数据分析,使用 Power Pivot 创建数据模型,并用 DAX 语言编写公式,其性能是传统Excel工作表无法比拟的,Excel会使用专门的 VertiPaq 引擎来高效处理这些数据。
  5. 精简 VBA 代码: 确保您的VBA宏关闭了屏幕更新 (Application.ScreenUpdating = False) 和自动计算 (Application.Calculation = xlCalculationManual),并在运行完毕后重新打开它们。
  • “Excel 正在计算 4个处理器” 是Excel利用多核CPU进行并行计算以提升速度的正常现象。
  • 该功能默认开启,无需用户手动设置核心数量。
  • 要让这个功能发挥最大威力,关键是减少易失性函数(如NOW(), RAND())的使用,并采用更高效的数据处理方式,如Power Query和Power Pivot

希望这个解释能帮助您更好地理解和使用Excel的计算功能!