跳至页脚内容
EXCEL 工具

如何在Excel中求和列:您需要知道的一切(2026)

在Excel中复制公式的最快方法是点击已有公式的单元格,按下Ctrl + C进行复制,然后点击您想要放置公式的单元格,按下Ctrl + V进行粘贴。 Excel会粘贴计算,并自动调整单元格引用以匹配新位置。 像=A2+B2这样的公式在向下一行粘贴时会变成=A3+B3,因此无论您在表格中怎样移动,数学计算仍然正确。

如果您需要同一个公式在整列中重复,这里有一个更快的技巧。 点击带有公式的单元格,然后将鼠标指向单元格右下角的小绿色方块。 那个方块被称为填充柄。 双击它,Excel会一次性将公式复制到数据的底部。 这个单一的快捷键解决了人们在Excel中搜索如何复制公式的最常见原因:在整个行列表中填充计算。 如果您经常在系统间移动完成的电子表格或将其交给同事,了解如何在C#中读取Excel文件也很有帮助,这样当文件离开您的屏幕后,数字仍然保持完整。

如何在Excel中复制公式(适用于各种情况的7种快速方法):图像1 - 选中的包含=A2+B2的单元格,绿色的填充柄在右下角被突出显示

大多数工作场所的电子表格会随着时间的推移而增长,里面的公式经常需要在工作表、工作簿甚至文件格式之间移动。 Excel提供了几种复制公式的方法,了解其中的一些意味着您可以为此选择合适的方法,而不是每次都在同样的拖拽中挣扎。一个方法复制计算,另一个只复制结果值,第三个保持公式指向完全相同的单元格。 下面的部分提供了每种可靠方法的分步介绍,包括顶级指南往往跳过的方法,以及搞垮人的格式和引用问题。自动化报告的团队也依赖于在.NET中创建Excel文件和通过编程方式设置公式的工具,这在最后的开发人员部分中有所涵盖。

方法1:复制和粘贴(Ctrl + C,Ctrl + V)

这是在每个版本的Excel中都能工作的日常方法,包括网页上的Excel和Mac的Excel。

  1. 点击选择包含公式的单元格,使其成为选中单元格。
  2. Ctrl + C(在Mac上按Cmd + C)。

  3. 点击目标单元格,或通过拖动选择多个单元格的范围。
  4. Ctrl + V(或Cmd + V)来粘贴公式,或按回车键将其粘贴到单个目标单元格或整个选中范围。

Excel会复制公式并根据新位置相对地调整引用,因此每个粘贴的副本都会保持正确的计算,并从其所在行开始工作,而不是从原始单元格开始。 粘贴到一个单元格的块中,公式会一次性填满整个选择。

如何在Excel中复制公式(适用于各种情况的7种快速方法):图像2 - 在剪贴板组中,主页选项卡的复制和粘贴按钮被突出显示,与源单元格一起

方法2:填充柄(拖动复制)

填充柄是在不触碰键盘的情况下,在相邻单元格间复制公式的最快方法。

  1. 点击带有公式的单元格。
  2. 将鼠标悬停在右下角的小绿色方块上,直到光标变成细黑色加号。
  3. 点击并按住鼠标按钮,然后向下、向上、向左或向右拖动填充柄,跨越您想填充的相邻单元格。
  4. 松开鼠标,Excel会将公式复制到您拖过的每个单元格中,并为每个新位置更新相对单元格引用。

对于长列,完全不需拖动:双击填充柄。 Excel会自动检测您的现有数据结束的位置,并将公式复制到最后一行,跨越该列中的所有其他单元格。 这可以在大型表格中节省大量滚动。

如何在Excel中复制公式(适用于各种情况的7种快速方法):图像3 - 填充柄上显示为黑色加号的光标,在一列空单元格中间拖动

方法3:向下填充和向右填充的键盘快捷键

当您的手已经在键盘上时,有两个快捷键可以完全不使用鼠标地复制公式,这是填充单元格的更快方法

  • 向下填充(Ctrl + D): 选择带公式的单元格加上下面的空白单元格,然后按 Ctrl + D。 Excel复制顶部公式至整个选择,这是在一次填充多行的最快方式。
  • 向右填充(Ctrl + R): 选择带公式的单元格及其右边的空白单元格,然后按 Ctrl + R 来横向复制公式。 Ctrl + End 跳至最后一个有数据的单元格,这可以帮助您在向下填充前快速选择大范围。

这两个快捷键是构建财务模型或大型表格的人们的最爱,因为它们让您在一秒内就能选择一个范围并填充。

方法4:功能区填充菜单

喜欢通过菜单点击? 功能区提供相同的填充命令伴以视觉按钮。

  1. 选择公式单元格以及您希望填充的单元格。
  2. 前往 主页 选项卡。

  3. 在最右边的编辑组中,点击填充

  4. 选择向下向右向上向左,或者为更高级别的模式选择系列

功能区路线在您教别人时很方便,因为每个选项都标记且可见,而不是隐藏在快捷键后面。

方法5:右键菜单和粘贴特殊选项

有时您只需要公式而不需要格式,或者只要格式而不是公式。 粘贴特殊选项为您提供这种控制。

  1. 点击公式单元格并按Ctrl + C
  2. 无论在同一工作表还是新工作表中,右键点击目标单元格。
  3. 从菜单中选择粘贴特殊选项(旧版本可以通过点击编辑然后选择粘贴特殊选项达到相同的对话框)。

  4. 选择公式,只粘贴计算,保持目标单元格的现有颜色、边框和字体不变。

在您复制到有样式的报告中并希望保持设计一致时,粘贴特殊选项就是首选方法。 同一对话框允许您改为粘贴,因此目标单元格将显示结果为固定数字而不是实时公式。 您也可以在复制后按下Ctrl + Alt + V调出它。

方法6:复制不改变单元格引用的公式

默认情况下,Excel会在复制时调整引用,这是通常情况下您所期望的。 偶尔您会需要在新位置精确地复制相同的公式,仍然指向相同的单元格。 有两种简洁的方法可以做到这一点。

选项A:使用绝对引用。 添加美元符号以固定引用,使其在被复制时保持不变。 在这个例子中,=$A$2+$B$2无论您粘贴在哪里,都会指向A2和B2,不像普通的相对单元格引用会随着每个新位置移动。 在编辑引用时按F4循环浏览锁定选项。

选项B:复制公式文本本身。 点击公式单元格,然后查看屏幕顶部的公式栏。 在那里突出显示公式文本,使用Ctrl + C复制它,按下Esc,点击目标单元格并粘贴。 因为您复制的是纯文本而不是单元格,Excel会将每个引用维持为原样。

方法7:使用VBA宏复制公式

对于在许多工作表或工作簿间重复的工作,短小的宏会以相同的方式按需复制公式。

  1. 按下Alt + F11打开Visual Basic编辑器。

  2. 转到插入然后选择模块

  3. 粘贴如下例中的例程,该例将公式从B2复制到B100:
Sub CopyFormulaDown()
    Range("B2").Copy Range("B3:B100")
    Application.CutCopyMode = False
End Sub
Sub CopyFormulaDown()
    Range("B2").Copy Range("B3:B100")
    Application.CutCopyMode = False
End Sub
Sub CopyFormulaDown()
    Range("B2").Copy(Range("B3:B100"))
    Application.CutCopyMode = False
End Sub
$vbLabelText   $csharpLabel
  1. 按下F5运行它,或者在工作表上为其分配一个按钮。

宏适用于定期的月度报告,其中相同的公式每个周期都放在相同的单元格中。 对于需要按计划运行或作为更大型应用程序一部分的任何事情,下面的开发者部分展示了一种更具可维护性的方法。

常见问题及故障排除

偶尔复制公式会产生意外结果。 以下每个问题都有快速解决方案。

公式复制作为文本并显示公式而不是结果。 您的工作表处于"显示公式"模式,或者目标单元格被格式化为文本。 按下Ctrl + `(大部分键盘左上角的重音键)来切换显示公式关闭。 如果单元格格式设置为文本,则在主页选项卡下更改为常规格式,然后重新输入公式。

在您不希望它们移动时引用已更改。 Excel默认使用相对引用。 在复制前用美元符号锁定引用($A$2),或者按照方法6从公式栏复制公式文本。

粘贴后结果没有更新。 计算可能被设置为手动。 进入公式选项卡,点击计算选项,并将其切换为自动。 您也可以按下F9强制重新计算。

您得到一个#REF! 复制后出错。粘贴的公式现在指向超出工作表边缘或进入删除的单元格。 检查新位置中的引用并替换损坏的起始单元格,使相对引用仍指向有效的单元格。

拖动填充柄复制数字而不是继续模式。 拖动时按住Ctrl以在复制和填充系列之间切换,或者在拖动后使用小的自动填充选项按钮选择"复制单元格"或"填充系列"。

粘贴覆盖了您报告中的格式。 使用粘贴特殊选项选择公式(方法5),这样只有计算被传输,现有样式保持不变。

For Developers: Copying Formulas in C# With IronXL

当公式复制需要在应用程序中、在服务器上或作为自动化报告的一部分发生时,代码库会在不打开Excel的情况下处理它。 IronXL在C#和.NET中读取、写入和编辑电子表格文件,跨范围复制一个公式只需几行代码:

using IronXL;
// Open an existing workbook
WorkBook workBook = WorkBook.Load("SalesReport.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Read the formula from the source cell, then apply it down a range
string formula = workSheet["D2"].Formula;
for (int row = 3; row <= 100; row++)
{
    workSheet[$"D{row}"].Formula = formula;
}
workBook.SaveAs("SalesReport.xlsx");
using IronXL;
// Open an existing workbook
WorkBook workBook = WorkBook.Load("SalesReport.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Read the formula from the source cell, then apply it down a range
string formula = workSheet["D2"].Formula;
for (int row = 3; row <= 100; row++)
{
    workSheet[$"D{row}"].Formula = formula;
}
workBook.SaveAs("SalesReport.xlsx");
Imports IronXL

' Open an existing workbook
Dim workBook As WorkBook = WorkBook.Load("SalesReport.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()

' Read the formula from the source cell, then apply it down a range
Dim formula As String = workSheet("D2").Formula
For row As Integer = 3 To 100
    workSheet($"D{row}").Formula = formula
Next

workBook.SaveAs("SalesReport.xlsx")
$vbLabelText   $csharpLabel

这在未安装Microsoft Excel的情况下运行,适用于Windows、macOS、Linux和云环境,并能整洁地融入到计划任务或Web应用程序中。 关于底层计算引擎的更多信息,在C#中使用Excel公式指南详细介绍了读取、写入和评估公式的过程。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我