如何在Excel中合并单元格:综合指南
由团队撰写于 Iron Software
Excel中的减法是围绕一个运算符构建的:减号。 与加法有专门的SUM函数不同,Excel没有专用的减法函数。 在Excel中进行减法运算是使用减号 (-) 作为算术运算符,而不是使用专门构建的函数,并且该单一运算符可处理从两个数字的简单减法到减去整个列、百分比、日期和时间值的所有事情。 每个公式都在公式栏中以等号开头,包括Excel中的单元格引用或直接数字,然后按回车以显示结果。
了解Excel对减法公式实际进行的计算内容,使得更高级的方法更容易遵循。 每当您想要从工作表中的其他单元格中减去一个值时,直接引用这些单元格总比重新输入数字更可靠。 在单元格中输入一个值,在公式中引用它,并且每当源单元格发生更改时,引用它的每个公式都会自动重新计算。 这使得基于单元格的减法比在每个公式中输入原始数字更加有用。 如果范围中的某个单元格为空白,Excel在执行计算时将其视为零,因此范围内的空单元格不会破坏公式。
本指南涵盖了2026年在Excel中进行减法的每种方法:使用减号的简单减法,减去多个单元格,使用SUM函数减去范围,用绝对引用减去整个列,减去百分比,减去日期以查找天数差异,减去时间值,以及处理负数。 需要在.NET应用程序中以编程方式将减法公式应用于Excel文件的开发人员将在最后找到一节,介绍IronXL如何在无需Microsoft Office的情况下在C#中处理此问题。
方法1:使用减号进行简单减法
最佳适用:快速减去两个数字或两个单元格,日常计算。
可以使用直接数字或单元格引用执行简单的减法。 这是本指南中每种其他方法的起点。
直接减去两个数字:
- 单击工作表中的任何空单元格。
- 在公式栏中输入等号 (=) 以开始公式。
- 输入第一个数字,然后输入减号 (-),然后输入第二个数字。 例如:=100-50
- 按回车。 Excel计算并在单元格中显示结果 (50)。
使用单元格引用进行减法:
- 将您的值输入到单独的单元格中。 例如,在B5单元格中输入250,在C5单元格中输入120。
- 单击想要显示结果的空单元格。
- 在公式栏中输入 =B5-C5。
- 按回车。 结果 (130) 显示在单元格中。
在处理多个单元格的两个或多个数字时,要在Excel中减去不同单元格中的值,首先输入等号 (=),然后单击包含起始值的单元格,输入减号,然后单击包含被减数的单元格,然后按回车。 比起手动输入单元格地址,直接单击单元格更快并减少了拼写错误的可能性。
如果在输入公式时单击单元格,Excel会自动插入其地址。 这比手动输入单元格引用更快,并消除了单元格地址中的拼写错误。

方法2:在单个公式中减去多个单元格
最佳适用:从起始值减去三个或多个单独的单元格。
要在Excel中减去多个单元格,可以链接减号运算符。 在减去多个单元格时,可以使用类似 =A1-A2-A3-A4-A5 的公式从A1中的值减去A2到A5中的值。
步骤:
- 单击您希望结果显示的单元格。
- 输入 = 并跟随您的第一个单元格引用(起始值)。
- 输入减号,然后输入下一个单元格引用。
- 对每个额外要减去的单元格重复输入减号和单元格引用。
- 当所有单元格都已添加时按 Enter。
例如,要从A2减去B2、C2和D2: =A2-B2-C2-D2。此公式允许您一次减去任意数量的单元格。
使用SUM函数进行更简洁的公式:
在减去许多个单元格时,链式减号变得笨拙。 使用SUM函数可以简化多个单元格的减法。 例如,=A1-SUM(A2:A5) 将A2到A5的单元格之和从A1中的值中减去。
您可以使用SUM()函数通过编写类似 =A1-SUM(A2:A5) 的公式来从单个单元格中减去一系列单元格,该公式会对A2到A5中的值求和,并从A1中减去该和。减去多个单元格的另一种方法是将被减去的值作为负数参数放在SUM本身内部。 在excel中,减去正数等同于加上负数,就像公式 =SUM(100, -20, -10) 的结果是70。这意味着您可以通过将所有数字作为带负号的参数列出一次减去多个数字,避免使用加号或链式减号运算符。 这意味着 =SUM(A1,-A2,-A3,-A4,-A5) 和 =A1-A2-A3-A4-A5 的结果相同。
您还可以通过键入类似 =E1-E3-E4-E5-E6-E7 的公式从单个单元格中减去一系列单元格,或干脆使用 =E1-SUM(E3:E7) 使其更高效。
使用SUM函数的方法通常是减去许多单元格的首选,因为它清楚地区分起始值和被减去的值,并且更容易一目了然地审核。

方法3:使用绝对引用减去整列
最佳适用:对列中的每行应用相同的固定扣除,例如标准税、折扣或费用。
当您需要从列中的每个单元格减去固定值时,绝对引用会锁定一个单元格地址,以便当您将公式向下拖动时它不会移动。
要在Excel中从整个列中减去特定值,可以在公式中使用绝对引用,例如 =A2-$B$2,这会在将公式向下拖动列时保持引用固定。 在Excel中将公式向下拖动一列时,绝对引用可防止引用移动。
步骤:
- 将您的固定扣除值放入单个单元格中,例如在C17单元格中输入$250。
- 在第一个结果单元格中输入 =B17-$C$17。列字母和行号之前的美元符号创建了绝对引用。
- 按回车以确认公式。
- 再次单击结果单元格,然后向下拖动填充手柄(单元格右下角的小方块)以将公式复制到下方所有行。
每行计算其在B列中的自身值减去C17中的相同固定值。如果您稍后更改C17中的值,则列中的每个公式都会同时更新。
在输入公式时单击单元格引用后立即使用F4键可以在绝对和相对引用类型之间循环。按一次F4会添加两个$符号(绝对引用),按两次只锁定行,按三次只锁定列。
方法4:减去两列(列与列比较)
知道如何减去列对于比较多列的数据至关重要,例如预算与实际数据或销售目标与结果。
要从另一列中减去整列,请在第一个结果单元格中输入公式并向下拖动。
- 在第一行的结果单元格中(例如D3),输入 =B3-C3。
- 按回车。
- 再次点击 D3,然后将填充手柄拖动到包含数据的所有行。
Excel将公式复制到每一行,自动调整行号(D4变为 =B4-C4,D5变为 =B5-C5,以此类推)。 这称为相对引用,是当单元格地址不包含美元符号时的默认行为。
要从另一列中减去整列,SUM函数也可以与减号结合使用,以便在需要单个总和时更快地计算: =SUM(B3:B14)-SUM(C3:C14) 给出所有行在单个单元格中的总差异。
方法5:减去百分比
最佳适用:计算折扣价、税收扣除或任何以百分比表示的减少量。
要在Excel中减去百分比,公式语法是 =Number-(Number百分比)。 例如,要从100中减去10%,您可以使用公式 =100-(10010%)。
您还可以在公式中使用单元格引用,例如 =A2-(A2*$B$2),其中A2包含数字,B2包含百分比。 这种方法允许您在一个单元格中更改折扣或税率,并让每行自动重新计算。
步骤:
- 在一个单元格中输入原始值,例如在B4单元格中输入1200。
- 在另一个单元格中输入百分比,例如在C4单元格中输入0.10(格式为10%)。
- 在结果单元格中输入 =B4-(B4*C4)。
- 按回车。 Excel计算1200减去1200的10% (120),并显示为1080。括号中的乘法先运行,然后将减法应用于结果。
如果百分比存储在固定的引用单元格中,请使用绝对引用将其锁定: =B4-(B4*$C$4)。 向下拖动此公式到列中,以对多个值应用相同的百分比扣除,同时保持百分比单元格固定不变。

确保百分比单元格格式为百分比(而不是普通数字)。 如果B4包含10而不是10%,则公式 =A2-(A2*B4) 会减去1000%而不是10%。
方法6:减去日期以找出天数差异
最佳适用:计算项目持续时间、合同期限、发票账龄或两个事件之间的天数。
要在Excel中减去日期,可以使用公式 =End_Date - Start_Date,这将给您两个日期之间的天数。 Excel将日期值存储为从1900年开始的序列号,从1开始,这就是为什么减去日期与减去数字的方式完全相同。
步骤:
- 在一个单元格中输入开始日期,例如在B11单元格中输入2026年1月5日。
- 在另一个单元格中输入结束日期,例如在C11单元格中输入2026年4月30日。
- 在结果单元格中输入 =C11-B11。
- 按回车。
如果日期减法的结果显示为一个奇怪的数字或其他日期而不是一个普通的天数,将单元格格式更改为常规或数字将显示正确的天数。 右键单击结果单元格,选择单元格格式,选择常规或数字,然后单击确定。

方法7:减去时间值
最佳适用:计算工作时数、会议时长或两个时间戳之间的经过时间。
要在Excel中减去时间值,使用公式 =End_time - Start_time,确保结果单元格格式正确显示时间。
步骤:
- 在一个单元格中输入开始时间,例如在B18单元格中输入 9:00 AM。
- 在另一个单元格中输入结束时间,例如在C18单元格中输入 5:30 PM。
- 在结果单元格中输入 =C18-B18。
- 按回车。
在Excel中减去时间时,将结果单元格格式设置为时间或使用自定义格式如 [h]:mm 以正确显示小时。 [h]:mm 中的方括号允许小时超过24,这是对于累积时间总数的重要部分。
要在Excel中找到两个时间值之间的经过时间,请在一个单元格中输入开始时间,在另一个单元格中输入结束时间,然后使用公式 =End_time - Start_time。对于演示文件中的工作班示例,9:00 AM 到 5:30 PM 的结果是 8:30(八小时三十分钟)。
对于夜班,在结束时间早于开始时间的情况下(例如 10:00 PM 到 6:00 AM),使用公式 =1+C20-B20 来考虑跨日期的情况。 如果没有 +1,Excel 将返回负时间值,并显示为井号 ( ###### )。
方法8:减去负数
最佳适用:了解负数与减法公式的互动。
在减法中,负数的行为与在标准算术中完全相同。 减去一个负数产生一个加法结果。
- =10-(-5) 返回 15(减去负5与加上5相同)
- =A1-B1,其中B1包含-50,A1包含100,返回150
在报告或财务数据中使用负数时,减号运算符正确处理它们,无需任何特殊语法。 值上的负号是值本身的一部分,而不是公式运算符。
如果您需要以特定格式显示负数,请右键单击单元格,选择单元格格式,并选择使用括号显示负数或红色字体的数字格式,这两种格式都可以在单元格格式对话框的"数字"类别中找到。
对于使用基于网格的数据的用户,可以在Excel中使用数组公式减去矩阵。 要减去两个相同维度的矩阵,选择结果范围,输入 =A2:C4-E2:G4,然后按 Ctrl + Shift + Enter(或在Microsoft 365中只需按Enter)。 Excel同时在两个矩阵中按元素应用减法运算。
常见问题及故障排除
公式显示文本而不是数字
这发生在单元格在输入公式之前格式化为文本时。 等号被视为文字字符而不是公式触发器。 单击单元格,转到主页 > 数字格式下拉菜单并更改为常规,然后重新输入公式。
日期减法显示日期或小数而不是天数
如果日期减法的结果显示为日期(例如 1900年1月14日)或显示为小数,则结果单元格的格式为日期或时间而不是数字。 右键单击结果单元格,选择单元格格式,选择常规,然后单击确定以显示正确的天数。
公式结果未在源单元格更改时更新
Excel可能设置为手动计算模式。 按 Ctrl + Alt + F9 强制重新计算,或者转到 公式 > 计算选项 > 自动 以返回到默认设置,Excel在每次更改时会自动计算结果。
拖动公式后更改了应保持固定的引用
没有美元符号的单元格引用(如C17)成为相对引用,并在拖动公式时移动。 要锁定它,请在公式栏中单击引用并按F4添加美元符号,使其成为绝对引用($C$17)。 如果电子表格已经使用了该公式,请在整个列中查找和替换引用。
结果显示 #VALUE! 进行减法后
此错误通常意味着减去的某个单元格中包含文本而不是数字。 检查公式中引用的每个单元格。 常见原因包括数字前的空格、从其他系统导入的文本格式数字,或以文本字符串而不是实际日期值存储的日期。
减去时间结果为零或 ######
零通常意味着开始和结束时间在同一个单元格中以不同格式显示。 ###### 通常意味着结果为负数(例如,没有进行 +1 调整的夜班)或列太窄,不能显示值。 加宽列或使用 [h]:mm 自定义格式以解决显示问题。
快速参考:Excel中的减法方法
下表涵盖了本指南中所提到的每个减法实例,并提供了每个公式模式和关键说明。
| 目标 | 公式示例 | 备注 |
|---|---|---|
| 直接减去两个数字 | =100-50 | 简单减法,不需要单元格引用 |
| 减去两个单元格 | =A1-B1 | 当值更改时自动更新 |
| 减去多个单元格 | =A1-B1-C1-D1 | 每个单元格连接减号 |
| 使用SUM减去范围 | =A1-SUM(B1:E1) | 比使用许多减号更清晰 |
| 使用负SUM参数进行减法 | =SUM(A1,-B1,-C1) | 减去相当于加上负数 |
| 减去整个列 | =B2-$C$2 然后向下拖动 | 绝对引用使扣除固定 |
| 减去两整列 | =B3-C3 然后向下拖动 | 相对引用自动按行移动 |
| 减去百分比 | =A2-(A2*10%) | 括号控制计算顺序 |
| 减去日期 | =C11-B11 | 将结果格式化为数字以查看天数 |
| 减去时间值 | =C18-B18 | 将结果格式化为 [h]:mm 以显示小时 |
| 跨列计算总数进行减法 | =SUM(B2:B14)-SUM(C2:C14) | 两列的单一变异性总计 |
针对开发人员:在Excel文件中应用减法公式使用IronXL
如果您的.NET应用程序生成包括减法计算的Excel报告、财务摘要或数据导出,IronXL允许您在不需要在服务器上安装Microsoft Office的情况下使用C#直接将这些公式写入单元格。
IronXL支持超过165种Excel公式,并且可以通过为任何单元格的Formula属性指定公式字符串来设置减法公式。 公式字符串使用标准Excel语法,因此您在Excel中输入的相同公式在通过IronXL设置时表现一致。 设置公式后,调用workBook.EvaluateAll()强制重新计算,以便在保存文件之前确保每个公式结果是最新的。
以下是一个创建预算差异报告的实际示例,它在两列之间应用单元格对单元格的减法,并使用SUM函数计算总数:
using IronXL;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = workBook.DefaultWorkSheet;
ws.Name = "Budget Variance";
// Column headers
ws["A1"].Value = "Department";
ws["B1"].Value = "Budget";
ws["C1"].Value = "Actual";
ws["D1"].Value = "Variance";
// Sample data rows
string[] depts = { "Engineering", "Marketing", "Sales", "HR", "Operations" };
int[] budgets = { 480000, 220000, 310000, 95000, 260000 };
int[] actuals = { 512000, 198000, 327000, 88000, 241000 };
for (int i = 0; i < depts.Length; i++)
{
int row = i + 2;
ws[$"A{row}"].Value = depts[i];
ws[$"B{row}"].Value = budgets[i];
ws[$"C{row}"].Value = actuals[i];
// Subtract Actual from Budget to get Variance
// Standard Excel subtraction formula - no SUBTRACT function exists
ws[$"D{row}"].Formula = $"=B{row}-C{row}";
}
// Total row using SUM-based subtraction
int totalRow = depts.Length + 2;
ws[$"A{totalRow}"].Value = "Total";
ws[$"B{totalRow}"].Formula = $"=SUM(B2:B{totalRow - 1})";
ws[$"C{totalRow}"].Formula = $"=SUM(C2:C{totalRow - 1})";
// Total variance: subtract sum of actuals from sum of budgets
ws[$"D{totalRow}"].Formula = $"=B{totalRow}-C{totalRow}";
// Recalculate all formulas before saving
workBook.EvaluateAll();
workBook.SaveAs("budget-variance-report.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = workBook.DefaultWorkSheet;
ws.Name = "Budget Variance";
// Column headers
ws["A1"].Value = "Department";
ws["B1"].Value = "Budget";
ws["C1"].Value = "Actual";
ws["D1"].Value = "Variance";
// Sample data rows
string[] depts = { "Engineering", "Marketing", "Sales", "HR", "Operations" };
int[] budgets = { 480000, 220000, 310000, 95000, 260000 };
int[] actuals = { 512000, 198000, 327000, 88000, 241000 };
for (int i = 0; i < depts.Length; i++)
{
int row = i + 2;
ws[$"A{row}"].Value = depts[i];
ws[$"B{row}"].Value = budgets[i];
ws[$"C{row}"].Value = actuals[i];
// Subtract Actual from Budget to get Variance
// Standard Excel subtraction formula - no SUBTRACT function exists
ws[$"D{row}"].Formula = $"=B{row}-C{row}";
}
// Total row using SUM-based subtraction
int totalRow = depts.Length + 2;
ws[$"A{totalRow}"].Value = "Total";
ws[$"B{totalRow}"].Formula = $"=SUM(B2:B{totalRow - 1})";
ws[$"C{totalRow}"].Formula = $"=SUM(C2:C{totalRow - 1})";
// Total variance: subtract sum of actuals from sum of budgets
ws[$"D{totalRow}"].Formula = $"=B{totalRow}-C{totalRow}";
// Recalculate all formulas before saving
workBook.EvaluateAll();
workBook.SaveAs("budget-variance-report.xlsx");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim ws As WorkSheet = workBook.DefaultWorkSheet
ws.Name = "Budget Variance"
' Column headers
ws("A1").Value = "Department"
ws("B1").Value = "Budget"
ws("C1").Value = "Actual"
ws("D1").Value = "Variance"
' Sample data rows
Dim depts As String() = {"Engineering", "Marketing", "Sales", "HR", "Operations"}
Dim budgets As Integer() = {480000, 220000, 310000, 95000, 260000}
Dim actuals As Integer() = {512000, 198000, 327000, 88000, 241000}
For i As Integer = 0 To depts.Length - 1
Dim row As Integer = i + 2
ws($"A{row}").Value = depts(i)
ws($"B{row}").Value = budgets(i)
ws($"C{row}").Value = actuals(i)
' Subtract Actual from Budget to get Variance
' Standard Excel subtraction formula - no SUBTRACT function exists
ws($"D{row}").Formula = $"=B{row}-C{row}"
Next
' Total row using SUM-based subtraction
Dim totalRow As Integer = depts.Length + 2
ws($"A{totalRow}").Value = "Total"
ws($"B{totalRow}").Formula = $"=SUM(B2:B{totalRow - 1})"
ws($"C{totalRow}").Formula = $"=SUM(C2:C{totalRow - 1})"
' Total variance: subtract sum of actuals from sum of budgets
ws($"D{totalRow}").Formula = $"=B{totalRow}-C{totalRow}"
' Recalculate all formulas before saving
workBook.EvaluateAll()
workBook.SaveAs("budget-variance-report.xlsx")
要使用绝对引用模式应用固定扣除,请像在Excel中那样精确地使用$符号书写公式字符串:
using IronXL;
WorkBook workBook = WorkBook.Load("payroll.xlsx");
WorkSheet ws = workBook.DefaultWorkSheet;
// Fixed tax deduction is stored in cell C1
ws["C1"].Value = 250;
// Apply =B2-$C$1 to rows 2 through 20 (absolute reference to C1)
for (int row = 2; row <= 20; row++)
{
ws[$"D{row}"].Formula = $"=B{row}-$C$1";
}
workBook.EvaluateAll();
workBook.SaveAs("payroll-net-pay.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("payroll.xlsx");
WorkSheet ws = workBook.DefaultWorkSheet;
// Fixed tax deduction is stored in cell C1
ws["C1"].Value = 250;
// Apply =B2-$C$1 to rows 2 through 20 (absolute reference to C1)
for (int row = 2; row <= 20; row++)
{
ws[$"D{row}"].Formula = $"=B{row}-$C$1";
}
workBook.EvaluateAll();
workBook.SaveAs("payroll-net-pay.xlsx");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("payroll.xlsx")
Dim ws As WorkSheet = workBook.DefaultWorkSheet
' Fixed tax deduction is stored in cell C1
ws("C1").Value = 250
' Apply =B2-$C$1 to rows 2 through 20 (absolute reference to C1)
For row As Integer = 2 To 20
ws($"D{row}").Formula = $"=B{row}-$C$1"
Next
workBook.EvaluateAll()
workBook.SaveAs("payroll-net-pay.xlsx")
IronXL运行在.NET 6及更高版本上,与Windows、Linux、macOS、Docker和Azure完全兼容。 因为它直接写入Open XML格式,而不启动Excel,因此速度快且适合高容量的服务器端报告生成。 C#中的Excel公式指南和编辑Excel公式的操作页面涵盖了可用的公式操作的完整范围。
入门:通过NuGet使用Install-Package IronXL.Excel安装。 免费试用可享有30天的全部功能且不需要信用卡。
进一步阅读:
总结
Microsoft Excel中的每个减法任务都可以使用相同的运算符:减号。 从输入=A1-B1进行快速的两单元差异到使用=A1-SUM(B1:E1)实现更整洁的多单元公式,无论涉及多少个单元格或多少列,模式是一致的。 带有美元符号的绝对引用在跨行拖动公式时保持固定值锁定,并且一旦结果单元格格式正确,减号运算符无缝适用于百分比、日期和时间值。
对于百分比减法,公式 =Number-(Number*百分比) 可处理任何比率。 对于日期,=End_Date-Start_Date 直接返回天数,只要结果单元格格式为数字而不是日期即可。 对于时间,=End_time-Start_time 使用 [h]:mm 格式提供准确的经过时间,包括小时超过24的情况。在每种方案中,请记住,Excel没有专用的减法函数:减法始终为减号,并且源数据中的负数按预期正常工作。
在.NET应用程序中生成Excel文件的开发人员可以使用IronXL复制这些模式,通过Formula属性设置减法公式,并调用EvaluateAll()确保所有结果在保存之前都是最新的。 开始使用免费试用,在您自己的项目环境中探索全面的公式支持。




