如何编辑工作表中的公式
Excel 公式是以等号开头的表达式(=)用于数学计算、数据操作和基于单元格值的结果推导。 它可能包含算术运算、函数、单元格引用、常量和逻辑运算。 公式可以在单元格值发生变化时启用动态更新,使 Excel 成为自动化任务和数据分析的多功能工具。
IronXL支持编辑Excel文件中现有的公式、检索公式的结果,并强制重新评估工作簿。 这确保每个公式都将重新计算以获得准确的结果。 IronXL 支持超过 165个公式。
如何编辑工作表中的公式
- 下载 C# 库以编辑工作表中的公式
- 创建新的 Excel 文件或导入现有文件
- 编辑或设置 计算公式 属性为单元格指定公式
- 通过访问 格式化单元格值 单元格的属性
- 导出已编辑的 Excel 文件
开始使用IronXL
立即在您的项目中开始使用IronXL,并享受免费试用。
编辑公式示例
要编辑或设置公式,请访问公式属性。 首先,选择一个范围或单元格,然后访问并设置公式属性。 Formula 属性是一个既能获取也能设置的属性,如果有的话,它返回公式字符串。 调用 EvaluateAll
方法以重新评估整个工作簿,确保计算准确。
:path=/static-assets/excel/content-code-examples/how-to/edit-formulas-edit-formulas.cs
using IronXL;
// Load workbook
WorkBook workBook = WorkBook.Load("Book1.xlsx");
// Select worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Edit or Set formula
workSheet["A4"].Formula = "=SUM(A1,A3)";
// Reevaluate the entire workbook
workBook.EvaluateAll();
Imports IronXL
' Load workbook
Private workBook As WorkBook = WorkBook.Load("Book1.xlsx")
' Select worksheet
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Edit or Set formula
Private workSheet("A4").Formula = "=SUM(A1,A3)"
' Reevaluate the entire workbook
workBook.EvaluateAll()
从公式中检索结果
虽然有时可以从选定范围和单元格的 Value 属性中检索结果,但建议从单元格的 FormattedCellValue 属性中检索结果以获得更准确的公式结果。 在选定的范围内,您可以通过调用 First
方法来访问单元格。 此方法将选择列表的第一个元素,在我们的情况下是单元格“A4”。从那里,您可以访问 FormattedCellValue 属性。
:path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs
using IronXL;
using System;
using System.Linq;
// Load workbook
WorkBook workBook = WorkBook.Load("Book1.xlsx");
// Select worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Retrieve the result value
string value = workSheet["A4"].First().FormattedCellValue;
// Print the result to console
Console.WriteLine(value);
Imports IronXL
Imports System
Imports System.Linq
' Load workbook
Private workBook As WorkBook = WorkBook.Load("Book1.xlsx")
' Select worksheet
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Retrieve the result value
Private value As String = workSheet("A4").First().FormattedCellValue
' Print the result to console
Console.WriteLine(value)
支持的公式
Excel 包含 450 多个公式,可用于多种计算目的。 IronXL 支持大约 165 种最常用的公式。 请检查以下支持的公式:
配方名称 | 说明 |
---|---|
ABS | 不考虑符号,返回数字的绝对值。 |
INT | 将一个数字舍入到最接近的整数。 |
COUNT | 计算包含指定范围内数字的单元格数量。 |
IF | 执行条件测试,如果条件为真,则返回一个值,如果条件为假,则返回另一个值。 |
总计 | 将一系列数字相加。 |
平均值 | 计算一系列数字的平均值。 |
MIN | 从一组数字中返回最小值。 |
最大 | 从一组数字中返回最大值。 |
行 | 返回单元格引用的行号。 |
专栏 | 返回单元格引用的列号。 |
NA | 代表 "不可用 "或数据缺失的错误值。 |
净现值 | 按指定贴现率计算一系列现金流的净现值。 |
STDEV | 计算一组数字的标准偏差。 |
标志 | 返回数字的符号,-1 表示负数,0 表示零,1 表示正数。 |
圆形 | 将数字舍入到指定的小数位数。 |
查找 | 在一个范围内搜索一个值,并从另一个范围返回相应的值。 |
索引 | 返回给定范围内指定行和列中单元格的值。 |
REPT | 重复指定次数的文本字符串。 |
MID | 根据指定的起始位置和长度,从给定文本字符串中提取部分文本。 |
LEN | 返回文本字符串中的字符数。 |
价值 | 将表示数字的文本字符串转换为实际数字。 |
真 | 代表 "True "的逻辑值。 |
假 | 代表 "假 "的逻辑值。 |
和 | 检查所有指定条件是否为真,若为真则返回 "真",否则返回 "假"。 |
或 | 检查是否至少有一个指定条件为真,如果为真,则返回 "真",否则返回 "假"。 |
不是 | 反转条件的逻辑值,将 "真 "变为 "假",反之亦然。 |
MOD | 返回一个数除以另一个数的余数。 |
DMIN | 根据指定条件从数据库中提取最小值。 |
VAR | 计算一组数字的方差。 |
文本 | 使用指定格式将数字转换为文本。 |
PV | 根据一系列现金流和贴现率计算投资或贷款的现值。 |
FV(未来价值) | 根据定期付款和特定利率计算投资或贷款的未来价值。 |
NPER(周期数) | 在定期付款和利率的条件下,确定达到某一财务目标所需的付款期数。 |
PMT(付款) | 计算偿还贷款或投资所需的定期付款,包括本金和利息。 |
利率 | 计算通过一系列定期付款达到财务目标所需的利率。 |
MIRR(修正内部收益率) | 计算一系列现金流的内部收益率,涉及多种再投资率和融资率。 |
内部收益率(IRR) | 计算一系列现金流的内部收益率,表明投资收支平衡的比率。 |
兰德 | 随机生成一个介于 0 和 1 之间的十进制数。 |
匹配 | 在一个范围内搜索指定值,并返回找到的项目的相对位置。 |
日期 | 通过指定年、月、日创建日期值。 |
时间 | 通过指定小时、分钟和秒来创建时间值。 |
日 | 从给定日期中提取日期。 |
月份 | 从给定日期中提取月份。 |
年 | 从给定日期中提取年份。 |
周日 | 返回指定日期的星期。 |
小时 | 从给定时间中提取小时。 |
分钟 | 从给定时间中提取分钟。 |
第二 | 从给定时间中提取秒。 |
现在 | 返回当前日期和时间。 |
领域 | 计算参照中各个范围的数量。 |
行数 | 计算指定范围内的行数。 |
栏目 | 计算指定范围内的列数。 |
偏移 | 返回从指定单元格偏移一定行列数的引用。 |
搜索 | 在文本字符串中搜索子字符串并返回其位置。 |
传递 | 平移范围的行和列。 |
ATAN2 | 计算指定 x 坐标和 y 坐标的反正切值。 |
美国 | 计算指定值的余弦值。 |
ACOS | 计算指定值的余弦值。 |
选择 | 根据指定位置从值列表中返回一个值。 |
HLOOKUP | 搜索表格或范围顶行的值,并返回指定行同一列中的值。 |
VLOOKUP | 搜索表格或范围第一列中的值,并从指定列返回同一行中的值。 |
ISREF | 检查数值是否为引用,如果是则返回 "True",如果不是则返回 "False"。 |
日志 | 按指定基数计算一个数字的对数。 |
CHAR | 返回给定数字指定的字符。 |
降低 | 将文本转换为小写。 |
上部 | 将文本转换为大写字母。 |
公关 | 将文本字符串中每个单词的第一个字母大写。 |
左侧 | 从文本字符串开头提取指定数量的字符。 |
右 | 从文本字符串末尾提取指定数量的字符。 |
精确 | 比较两个文本字符串,如果相同则返回 "True",如果不相同则返回 "False"。 |
调整 | 删除文本字符串中多余的空格,单词之间的单空格除外。 |
替换 | 用新文本替换文本字符串中指定数量的字符。 |
替换 | 用新文本替换文本字符串中出现的指定文本。 |
代码 | 返回文本字符串中第一个字符的 Unicode 数值。 |
FIND | 搜索文本字符串中的特定子字符串并返回其位置。 |
ISERR | 检查值是否是除 "#N/A "以外的错误值,如果是则返回 "True",如果不是则返回 "False"。 |
ISTEXT | 检查数值是否为文本,如果是则返回 "True",如果不是则返回 "False"。 |
编号 | 检查数值是否为数字,如果是则返回 "True",如果不是则返回 "False"。 |
ISBLANK | 检查单元格是否为空,如果是则返回 "True",如果不是则返回 "False"。 |
铁 | 将数值转换为文本格式。 |
数据值 | 将文本形式的日期转换为日期序号。 |
清洁 | 删除文本中的不可打印字符。 |
MDETERM | 计算数组的矩阵行列式。 |
MINVERSE | 返回矩阵的乘法逆(倒数)。 |
MMULT | 将两个矩阵相乘。 |
IPMT | 计算特定时期内贷款支付的利息部分。 |
PPMT | 计算特定时期的贷款本金部分。 |
国家 | 计算范围内非空单元格的数量,包括文本和数字。 |
产品 | 将一个范围内的所有数字相乘。 |
事实 | 计算一个数字的阶乘。 |
ISNONTEXT | 检查数值是否不是文本,如果不是文本则返回 "True",如果是文本则返回 "False"。 |
VARP | 根据样本估计总体的方差。 |
TRUNC | 将数字截断到指定的小数位数。 |
历史 | 检查数值是否为逻辑(布尔)值,如果是则返回 "True",如果不是则返回 "False"。 |
美元 | 将数字转换为文本格式,并带有货币符号和两位小数。 |
综述 | 将一个数字舍入到指定的小数位数。 |
回合 | 将一个数字舍入到指定的小数位数。 |
排名 | 返回一个数字在列表中的排序,并提供处理并列的选项。 |
地址 | 根据行数和列数以文本形式返回单元格地址。 |
DAYS360 | 使用 360 天年计算两个日期之间的天数。 |
今天 | 返回当前日期。 |
中位数 | 返回一组数字的中位数(中间值)。 |
SUMPRODUCT | 将数组中的相应分量相乘,并返回乘积之和。 |
SINH | 计算一个数字的双曲正弦值。 |
COSH | 计算一个数字的双曲余弦值。 |
TANH | 计算一个数字的双曲正切值。 |
ASINH | 计算一个数字的反双曲正弦值。 |
ACOSH | 计算一个数字的反双曲余弦值。 |
ATANH | 计算一个数字的反双曲正切值。 |
外部函数 | 代表外部插件或自定义函数提供的函数调用或操作。 |
错误类型 | 返回与给定值中错误类型相对应的数字。 |
AVEDEV | 计算一组数值与平均值的平均绝对偏差。 |
合并 | 计算从较大集合中提取的给定数量的项目的组合数。 |
偶数 | 将一个数字向上舍入为最接近的偶数整数。 |
地板 | 将一个数字向下舍入到最接近指定意义的倍数。 |
天花板 | 将一个数字舍入到最接近指定意义的倍数。 |
NORMDIST | 计算指定值的累积正态分布函数。 |
NORMSDIST | 计算标准正态累积分布函数。 |
NORMINV | 计算指定概率的正态累积分布函数的逆值。 |
NORMSINV | 计算标准正态累积分布函数的逆值。 |
标准化 | 将数值转换为均值为 0、标准差为 1 的标准正态分布。 |
ODD | 将一个数字向上舍入为最接近的奇数整数。 |
POISSON | 计算给定事件数的泊松分布概率。 |
TDIST | 计算指定值和自由度的学生 t 分布。 |
SUMXMY2 | 计算两个数组中相应数值之差的平方和。 |
SUMX2MY2 | 计算两个数组中相应数值之差的平方和。 |
SUMX2PY2 | 计算两个数组中相应数值之和的平方和。 |
INTERCEPT | 计算图表中趋势线与 y 轴的交叉点。 |
坡度 | 计算图表中趋势线的斜率。 |
DEVSQ | 返回数据点偏离均值的平方和。 |
SUMSQ | 计算一组数字的平方和。 |
大号 | 根据指定的 k,返回数据集中的第 k 个最大值。 |
小型 | 根据指定的 k,返回数据集中的 k 个最小值。 |
PERCENTILE | 返回数据集的 k 百分位数,其中 k 已指定。 |
PERCENTRANK | 返回数据集中某个值的排名占总值的百分比。 |
模式 | 返回数据集中出现频率最高的值。 |
连接 | 将多个文本字符串合并为一个字符串。 |
权力 | 将一个数字提升到指定的幂。 |
雷达兵 | 将度转换为弧度。 |
度数 | 将弧度转换为度。 |
小计 | 在一个范围内执行各种计算(如求和、求平均值),您可以选择是否包含或排除范围内的其他 SUBTOTAL 结果。 |
SUMIF | 将范围内符合指定条件的所有数字相加。 |
COUNTIF | 计算某一范围内符合指定条件的单元格数量。 |
计数板 | 计算范围内空单元格的数量。 |
罗马 | 将阿拉伯数字转换为罗马数字。 |
超级链接 | 创建指向网页或文件的超链接。 |
MAXA | 从一组数字(包括文本和逻辑值)中返回最大值。 |
MINA | 从一组数字(包括文本和逻辑值)中返回最小值。 |