处理大型数据集时,您可以引用 Google 表格中的数据以提升性能。按照本文建议操作可提升以下性能:
- 计算速度
- 稳定性
- CPU 使用率
尽可能引用同一工作表中的数据
请引用您所使用的同一电子表格中的数据。这比使用以下导入函数更快:
- IMPORTRANGE
- IMPORTDATA
- IMPORTXML
- IMPORTHTML
如果您使用 IMPORTRANGE() 从其他电子表格中提取数据,那么即使在以下情况下,导入函数也仍然会通过互联网在电子表格之间引用数据:
- 您是电子表格的所有者。
- 在同一浏览器中打开电子表格。
- 电子表格位于同一云端硬盘中。
这需要往返操作才能请求和提取数据。您可能会遇到延迟或连接不稳定的情况,造成加载速度缓慢。
如果您手动将数据从其他电子表格移到自己的电子表格中,并引用该电子表格中的数据(包括同一电子表格中的不同标签页),则数据提取流程会在本地执行,而不是通过互联网完成。这样可以节省时间,但仅适用于处理不会发生变化且相对静态的确定性数据,例如商品目录记录或历史数据。
要手动移动数据,请将其他电子表格中的现有数据复制到您的电子表格中。具体操作步骤如下:
- 点击底部工作表名称旁边的向下箭头 复制到 现有电子表格。
- 选择要将这张工作表复制到的电子表格。
提示:如果您在云端硬盘视图中找不到要复制到的目标电子表格,请将该电子表格的网址粘贴到底部的网址栏中。
使用闭合范围引用而不是开放范围引用
开放范围是指未指定特定行或列作为起始和结束位置的范围。示例:A:B 是指包含 A 列和 B 列中所有单元格的范围。
闭合范围引用会引用以特定行或列作为起始和结束位置的范围。
示例:A1:B6、A1:C100。
开放范围:A:B
闭合范围:A1:B6
示例:假设您要计算 A 列的总和,但只有前 10 行(共 10,000 行)含有值。
- 如果您在 SUM 函数 SUM(A:A) 中使用开放范围引用,那么即使该开放范围引用中有空白单元格,计算机也会读取全部 10,000 行。Google 表格会逐一检查范围中的所有单元格,确保它们不是空白。
- 如果您使用闭合范围引用 SUM(A1:A10),则计算机只会读取 A1 到 A10 行,且 Google 表格的计算速度会更快。
高效引用易变函数
TODAY()、RAND()、RANDBETWEEN() 和 NOW() 是易变函数,因为它们会经常变化和更新以保持最新状态。这些函数在本质上并非静态。例如,TODAY() 每天都会刷新。
示例:B 列的每一行都会读取 A 列每一行的数据。也就是说,当 B 列计算结果时,A 列会刷新所有单元格。
在引用会返回相同结果的易变函数(如 NOW() 和 TODAY())时,请务必使用绝对引用,这样就只需引用一次。在本示例中,B 列会根据单元格 A2 的数据来计算结果。当您移除不必要的依赖项后,表格的运行速度会更快。
尽可能避免使用较长的引用链
引用链会降低工作表的运行速度。例如,在以下情况下,A2 会读取 A1 数据;A3 会读取 A2 数据;依此类推。由于数据都链接在一起,为了计算 A10 中的值,Google 表格就会等待之前的所有值(A1 到 A9)计算完毕,然后再返回 A10 中的值。
为避免计算环环相扣,在填写单元格时,请使用绝对引用。在本示例中,A2 会读取 A1 数据,A3 也会读取 A1 数据,依此类推。由于 A1 内含计算好的可用值,因此 A2 到 A10 都会直接提取 A1 的值。这样结果相同,但计算速度更快。