如何在工作表中編輯公式
Excel 公式是一個以等號開頭的表達式(= )用於數學計算、數據操作和基於單元格值的結果導出。 它可能包含算術運算、函數、單元格引用、常量和邏輯操作。 公式允許在單元格值變更時進行動態更新,使Excel成為自動化任務和數據分析的多功能工具。
IronXL 支援在 Excel 檔案中編輯現有公式,擷取公式的結果,並強制工作簿重新評估。 這確保每個公式都將重新計算以獲得準確結果。 IronXL 支援超過 165 種公式。
如何在工作表中編輯公式
- 下載 C# 庫以編輯工作表中的公式
- 建立一個新的 Excel 檔案或導入現有檔案
- 編輯或設置 公式 將公式分配到儲存格的屬性
- 通過訪問檢索結果值 格式化單元格值 儲存格的屬性
- 匯出編輯過的Excel文件
立即開始在您的專案中使用IronPDF,並享受免費試用。
查看 IronXL 上 Nuget 方便快速安裝和部署。擁有超過 800 萬次下載,它正在使用 C# 改造 Excel。
Install-Package IronXL.Excel
請考慮安裝 IronXL DLL 直接下載並手動安裝到您的專案或GAC表單: IronXL.zip
手動安裝到您的項目中
下載DLL編輯公式範例
要編輯或設定公式,請訪問公式屬性。 首先,選擇一個範圍或單元格,然後訪問並設置公式屬性。 Formula 屬性是一個同時具有 get 和 set 功能的屬性,如果有的話,它會返回公式字符串。 調用 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 | 返回數字的絕對值,無論其符號如何。 |
整數 | 將一個數字向下取整至最接近的整數。 |
計數 | 計算在指定範圍內包含數字的單元格數量。 |
如果 | 進行條件測試,如果條件為真則返回一個值,否則返回另一個值。 |
總和 | 累加一系列數字。 |
平均值 | 計算一個數字範圍的平均值。 |
最小 | 返回數字集中最小的值。 |
最大 | 返回一組數字中的最大值。 |
行列 | 返回單元格參考的行號。 |
列 | 返回單元格引用的列號。 |
NA | 表示 "無法取得" 或缺失資料的錯誤值。 |
淨現值 | 計算指定折現率下的一系列現金流量的淨現值。 |
標準差 | 計算一組數字的標準差。 |
簽名 | 返回數字的符號為:-1 表示負數,0 表示零,或 1 表示正數。 |
回合 | 將數字四捨五入到指定的小數位數。 |
查詢 | 在範圍中搜尋一個值,並從另一個範圍返回相應的值。 |
索引 | 返回指定範圍內某行某列的單元格值。 |
再複製 | 將文字字符串重複指定的次數。 |
中间层 | 從給定的字串中根據指定的起始位置和長度提取一部分文字。 |
長 | 返回文字字符串中的字符數。 |
價值 | 將表示數字的文本字串轉換為實際數字。 |
真 | 表示「True」的邏輯值。 |
假 | 表示邏輯值為「假」。 |
和 | 檢查所有指定的條件是否為真,如果是,則返回 "True",否則返回 "False"。 |
或 | 檢查是否至少有一個指定條件為真,如果是,則返回“True”,否則返回“False”。 |
不 | 反轉條件的邏輯值,將「True」變為「False」,反之亦然。 |
MOD | 返回一個數被另一個數除時的餘數。 |
最低值 | 根據指定的條件從資料庫中提取最小值。 |
變數 | 計算一組數字的變異數。 |
文本 | 將數字轉換為使用指定格式的文字。 |
PV | 根據一系列現金流和折現率計算投資或貸款的現值。 |
未來價值 (FV) | 根據定期付款和指定的利率計算投資或貸款的未來價值。 |
NPER (期數) | 確定達到特定財務目標所需的付款期數,假設定期付款和利率。 |
PMT (Payment) - 付款 | 計算償還貸款或投資的定期付款,包括本金和利息。 |
利率 (Interest Rate) | 計算達到財務目標所需的利率與一系列定期付款。 |
修正內部報酬率 (MIRR) | 計算一系列現金流的內部收益率,解決多個再投資和融資利率的問題。 |
內部收益率 (IRR) | 計算一系列現金流的內部報酬率,表示投資的平衡點率。 |
RAND | 生成介於0和1之間的隨機小數。 |
匹配 | 在範圍內搜尋指定的值,並返回找到項目的相對位置。 |
日期 | 通過指定年、月和日來創建日期值。 |
時間 | 通過指定小時、分鐘和秒來創建時間值。 |
天 | 從給定的日期中提取日期。 |
月份 | 從給定日期中提取月份。 |
年 | 從給定日期中提取年份。 |
平日 | 返回指定日期的星期幾。 |
小時 | 從給定的時間中提取小時。 |
分鐘 | 從指定時間中提取分鐘。 |
第二 | 從給定的時間中提取秒數。 |
現在 | 返回目前的日期和時間。 |
區域 | 計算參照中不同範圍的數量。 |
行 | 計算指定範圍內的行數。 |
列 | 計算指定範圍內的列數。 |
偏移 | 返回從指定單元格以一定行數和列數偏移的參考。 |
搜尋 | 搜索文本字符串中的子字串並返回其位置。 |
轉置 | 轉置範圍的行和列。 |
ATAN2 | 計算指定 x 和 y 座標的反正切。 |
ASIN | 計算指定值的反正弦。 |
反餘弦函數 | 計算指定值的反餘弦。 |
選擇 | 根據指定的位置從一個值列表中返回一個值。 |
HLOOKUP | 在表格或範圍的第一行搜尋一個值,並從指定的行中返回同一列中的值。 |
VLOOKUP | 在表格或範圍的第一列中搜尋一個值,並在同一列中從指定的欄位返回一個值。 |
ISREF | 檢查一個值是否為參考,並返回「True」如果是,或「False」如果不是。 |
日誌 | 計算指定底數的數字對數。 |
字元 | 返回由給定數字指定的字符。 |
低檔 | 將文字轉換為小寫。 |
上 | 將文字轉換為大寫。 |
正確 | 將文字串中的每個單詞首字母大寫。 |
左 | 從文本字符串的開頭提取指定數量的字符。 |
正確 | 從文字串的結尾提取指定數量的字符。 |
精確 | 比較兩個文字字串,如果它們相同則返回「True」,如果它們不同則返回「False」。 |
裁剪 | 從文字串中移除多餘的空格,但保留單詞之間的單一空格。 |
替換 | 將文字字符串中指定數量的字符替換為新文字。 |
替代 | 在字串中用新文字替換指定文字的出現次數。 |
代碼 | 返回文本字符串中第一個字符的數值 Unicode 值。 |
查找 | 在文本字符串中搜尋特定的子字串並返回其位置。 |
ISERR | 檢查某值是否為除「#N/A」之外的錯誤值,如果是,則返回「True」,否則返回「False」。 |
ISTEXT | 檢查某個值是否為文字,若是則返回「True」,否則返回「False」。 |
ISNUMBER | 檢查數值是否為數字,如果是則返回 "True",如果不是則返回 "False"。 |
是否為空 | 檢查單元格是否為空,如果空返回「True」,如果不空返回「False」。 |
T | 將值轉換為文本格式。 |
日期值 | 將表示為文本的日期轉換為日期序列號。 |
清理 | 移除文字中的非打印字符。 |
行列式 | 計算數組的矩陣行列式。 |
MINVERSE | 返回矩阵的乘法逆矩阵(倒数)。 |
MMULT | 將兩個矩陣相乘。 |
IPMT | 計算特定期間的貸款還款利息部分。 |
PPMT | 計算在指定期間內貸款付款的本金部分。 |
計數A | 計算範圍內非空白儲存格的數量,包括文字和數字。 |
產品 | 將範圍內的所有數字相乘。 |
事實 | 計算一個數字的階乘。 |
ISNONTEXT | 檢查一個值是否不是文字,如果不是文字則返回 "True",如果是文字則返回 "False"。 |
VARP | 基於樣本估計母體變異數。 |
截斷 | 將數字截斷為指定的小數位數。 |
ISLOGICAL | 檢查一個值是否為邏輯(布林)值,如果是則返回「True」,否則返回「False」。 |
美元 | 將數字轉換為帶有貨幣符號和兩位小數的文字格式。 |
概述 | 將數字四捨五入到指定位數的小數位。 |
向下取整 | 將數字向下取整至指定的小數位數。 |
排名 | 返回列表中數字的排名,並提供處理平手的選項。 |
地址 | 根據行號和列號以文字形式返回儲存格地址。 |
60天 | 使用360天的一年計算兩個日期之間的天數。 |
今天 | 返回當前日期。 |
中位數 | 返回一組數字的中位數(中間值)。 |
乘積總和 | 相乘數組中對應的元素,並返回乘積的和。 |
正弦 | 計算數字的雙曲正弦值。 |
正弦餘弦函數 | 計算一個數字的雙曲餘弦值。 |
雙曲正切 | 計算一個數字的雙曲正切。 |
反雙曲正弦 function | 計算數字的反雙曲正弦。 |
反雙曲餘弦 | 計算一個數的反雙曲餘弦。 |
反雙曲正切函数 | 計算數字的反雙曲正切。 |
外部函數 | 表示由外部插件或自訂函數提供的函數調用或操作。 |
錯誤類型 | 返回對應於特定值中的錯誤類型的數字。 |
平均絕對偏差 | 計算一組數值與其平均值之間的平均絕對偏差。 |
合併 | 計算從較大集合中取出的一定數量項的組合數。 |
偶數 | 將數字向上取整至最接近的偶數。 |
樓層 | 將數字向下取整到指定的有效位數的最接近倍數。 |
天花板 | 將數字向上取整到指定有效數位的最近倍數。 |
NORMDIST | 計算指定值的累積常態分佈函數。 |
正態標準分配 | 計算標準常態累積分佈函數。 |
NORMINV | 計算指定概率的正態累積分佈函數的反函數。 |
NORMSINV | 計算標準正態累積分佈函數的反函數。 |
標準化 | 將數值轉換為平均值為 0、標準差為 1 的標準常態分佈。 |
奇数 | 將數字向上取整為最接近的奇數。 |
泊松 | 計算給定事件數的泊松分佈概率。 |
TDIST | 計算指定值和自由度下的學生t分佈。 |
SUMXMY2 | 計算兩個數組中對應值之間差異的平方和。 |
SUMX2MY2 | 計算兩個數組中對應值之間差異的平方和。 |
SUMX2PY2 | 計算兩個數組中對應值的和的平方和。 |
攔截 | 計算趨勢線在圖表上與 y 軸相交的點。 |
斜率 | 計算圖表中趨勢線的斜率。 |
DEVSQ | 返回數據點偏離其平均值的平方和。 |
SUMSQ | 計算一組數字的平方和。 |
大 | 返回資料集中第 k 個最大的值,k 由使用者指定。 |
小 | 返回資料集中第 k 個最小值,其中 k 是指定的。 |
百分位数 | 返回資料集的第 k 百分位數,其中 k 是指定的。 |
百分秩排名 | 返回資料集中某個值在所有值中的百分比排名。 |
模式 | 返回數據集中出現頻率最高的值。 |
連接 | 將多個文字串合併為一個。 |
力量 | 將數字提升到指定的次方。 |
弧度 | 將度數轉換為弧度。 |
度 | 將弧度轉換為度數。 |
小計 | 在某範圍內執行各種計算(例如,總和,平均值),並且您可以選擇是否包含或排除該範圍內的其他 SUBTOTAL 結果。 |
SUMIF | 將符合指定條件的範圍內所有數字相加。 |
計數條件 | 計算範圍內符合指定條件的儲存格數量。 |
計數空白 | 計算範圍內空白儲存格的數量。 |
羅馬 | 將阿拉伯數字轉換為羅馬數字。 |
超連結 | 建立至網頁或文件的超連結。 |
艾科斯 | 返回包含文字與邏輯值的數字集中的最大值。 |
米娜 | 返回一組數字中的最小值,包括文本和邏輯值。 |