使用 IronXL.Excel 以 C# 編輯 Excel 公式。
IronXL 使您能夠在 C# 中編輯 Excel 公式,方法是在任何儲存格上設定 Formula 屬性、使用 FormattedCellValue 檢索計算結果,以及使用 EvaluateAll() 重新計算工作簿中的所有公式。 這個函式庫支援超過 165 個 Excel 公式,並確保在儲存格值改變時能夠動態更新。
Excel 公式是以等號 (=) 開頭的表達式,用於數學計算、資料處理以及根據儲存格值推導出結果。 它可能包含算術運算、函數、儲存格參考、常數和邏輯運算。 公式能夠隨著儲存格值的變化而動態更新,這使得 Excel 成為自動化任務和資料分析的多功能工具。 IronXL支援編輯 Excel 檔案中的現有公式、擷取公式中的結果,以及強制重新評估工作簿。 這樣可以確保每個公式都會重新計算,從而獲得準確的結果。 IronXL 支援超過165 種配方。
快速入門:立即更改儲存格公式
使用 IronXL 的 Formula 屬性在任何儲存格上設定或更新公式。 然後呼叫 EvaluateAll() 來重新計算所有公式-快速上手並確保更新結果。
立即開始使用 NuGet 建立 PDF 檔案:
使用 NuGet 套件管理器安裝 IronXL
複製並運行這段程式碼。
IronXL.WorkBook.Load("MyFile.xlsx").DefaultWorkSheet["B2"].Formula = "=平均的(C1,C2)"; workBook.EvaluateAll();部署到您的生產環境進行測試
最小工作流程(5 個步驟)
- 下載 C# 庫以編輯工作表中的公式
- 創建新 Excel 文件或導入現有文件
- Edit or set the `Formula` property to assign a formula to the cell
- Retrieve the result value by accessing the `FormattedCellValue` property of the cell
- 匯出編輯過的 Excel 文件
為什麼 IronXL 是公式編輯的最佳選擇? IronXL 不需要 Microsoft Office Interop,同時透過直覺的屬性提供直接的公式存取。 該函式庫支援 [ 超過 165 個內建 Excel 函式](https://ironsoftware.com/csharp/excel/how-to/math-functions/),可自動處理複雜的公式依賴關係,並在 Windows、Linux 和 macOS 平台上提供快速處理。 其輕量級架構可確保 Excel 相容的計算,而無需外部依賴。系統需求為何? IronXL 需要 .NET Framework 4.6.2 或更高版本,或 .NET Core 2.0 及更高版本。 該函式庫可在 Windows、Linux 和 macOS 上執行,無須安裝 Microsoft Excel。 為了讓包含複雜公式的大型工作簿達到最佳效能,我們建議至少使用 4GB RAM。 [請檢查完整的說明文件](https://ironsoftware.com/csharp/excel/docs/),以瞭解詳細的特定平台要求。如何開始使用 IronXL? 使用套件管理員控制台以 `Install-Package IronXL.Excel` 安裝 NuGet 套件。 安裝完成後,[套用您的授權金鑰](https://ironsoftware.com/csharp/excel/get-started/license-keys/)即可解鎖全部功能。 在您的 C# 檔案中匯入 IronXL 命名空間,即可開始編輯公式。 直觀的 API 設計可讓您在幾分鐘內載入 Excel 檔案並修訂公式。如何在 Excel 中使用 C# 編輯公式? 若要編輯或設定公式,請存取 **`Formula`** 屬性。 首先,選取範圍或儲存格,然後存取並設定 `Formula` 屬性。 `Formula` 屬性既是 get 屬性,也是 set 屬性,可傳回公式字串 (如果有)。 調用 `EvaluateAll()` 方法來重新評估整個工作簿,以確保計算的準確性。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-edit-formulas.cs ``` IronXL 在處理公式時提供了完全的彈性。 您可以修改現有公式、建立新公式,或根據執行時條件建立動態公式。 程式庫會自動處理公式語法驗證,確保 Excel 的相容性。 對於複雜的情境,請探索 [全面的公式範例](https://ironsoftware.com/csharp/excel/examples/excel-formulas-csharp/),展示進階的操作技巧。編輯公式後為什麼要使用 EvaluateAll()? `EvaluateAll()` 方法可維護 Excel 工作簿中的資料完整性。 當您修改公式時,整個工作簿中的從屬儲存格可能需要重新計算。 `EvaluateAll()` 會觸發完整的工作簿重新計算,確保所有公式都反映最新的變更。 在處理層疊公式(一個單元格的結果會影響多個計算)時,這一點至關重要。 如果不呼叫 `EvaluateAll()` ,您可能會匯出過時的值,導致資料不一致。如果我不重新計算工作簿會怎樣? 跳過重新計算會導致重大問題。 Excel 檔案同時儲存公式及其快取結果。 當您修改公式而不重新計算時,快取的值會保持不變,造成公式與顯示結果不匹配。 當使用者在 Excel 中開啟檔案,看到與預期不同的數值時,這種差異就會顯現出來。 任何依賴這些公式結果的後續作業都會使用過時的資料,有可能造成下游流程的錯誤。我可以一次編輯多個公式嗎? 是的,IronXL 支援透過範圍操作進行批次公式編輯。 使用範圍符號(如 `workSheet["A1:A10"]` )選取多個單元格,並同時將公式套用至所有單元格。 對於複雜的模式,可遍历儲存格集合,並應用條件邏輯,根據儲存格位置或現有值設定不同的公式。 在 [ 以重複公式模式建立試算表](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)或以程式化方式更新大型資料集時,這種方法非常有效。如何從公式擷取結果? 若要擷取公式的結果,請使用儲存格的 **`FormattedCellValue`** 屬性,以獲得精確的結果。 在選取的 Range 中,使用 `First` 方法存取儲存格,該方法會選取序列中的第一個元素。 從那裡,存取 `FormattedCellValue` 屬性。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs ``` `FormattedCellValue` 屬性會以 Excel 中的形式返回儲存格的值,並尊重數字格式、日期格式和自訂格式規則。 這可確保您的程式輸出與使用者在 Excel 中看到的內容一致。 對於數值分析,可透過 `Value` 屬性存取原始值,該屬性會回傳未套用格式化的基本數值或文字資料。為何使用 FormattedCellValue 而非 Value 屬性? `FormattedCellValue` 提供儲存格內容的顯示就緒表示,對於在您的應用程式中維護 Excel 的視覺化格式至關重要。 `Value` 屬性會回傳原始資料,而 `FormattedCellValue` 則會套用 Excel 的格式規則,包括數字格式、貨幣符號、百分比顯示和日期格式。 當產生報告或向終端使用者顯示資料時,這種區別就變得非常重要,因為終端使用者期望值的格式與他們的 Excel 經驗一致。 如需詳細的格式選項,請參閱 [API Reference](https://ironsoftware.com/csharp/excel/object-reference/api/)。儲存格值與公式結果有何差異? 單元格的公式是表達式(如"=A1+B1"),而公式結果是計算值(如 "150")。 IronXL 透過不同的屬性來區分這些概念:`Formula` 表示表達式,而 `Value`/`FormattedCellValue` 表示結果。 這種分離方式可讓您檢查公式以進行稽核、以程式化方式修改計算,或擷取結果作進一步處理。 有些儲存格包含沒有公式的靜態值,其中 `Formula` 屬性會回傳 null,而 `Value` 仍會提供儲存格的內容。如何處理公式錯誤? Excel 中的公式錯誤(如 #DIV/0!、#價值!或 #REF!)需要在 C# 程式碼中進行特殊處理。 IronXL 會保留這些錯誤狀態,以便進行檢測和程式化回應。 使用 `FormattedCellValue` 屬性上的字串比較檢查單元格是否包含錯誤,或在以數值處理公式結果時實作 try-catch 區塊。 若要強化錯誤處理,請考慮在公式評估之前進行驗證邏輯,或在公式中使用 Excel 的 `如果ERR或者` 函式來提供備用值。 進一步瞭解 [疑難排解常見問題](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)。IronXL.Excel 支援哪些 Excel 公式? Excel 包含 450+ 個公式,用於各種計算用途。 IronXL 支援大約 165 種最常用的配方。 檢查下列支援的公式:
如何開始使用 IronXL? 使用套件管理員控制台以 `Install-Package IronXL.Excel` 安裝 NuGet 套件。 安裝完成後,[套用您的授權金鑰](https://ironsoftware.com/csharp/excel/get-started/license-keys/)即可解鎖全部功能。 在您的 C# 檔案中匯入 IronXL 命名空間,即可開始編輯公式。 直觀的 API 設計可讓您在幾分鐘內載入 Excel 檔案並修訂公式。如何在 Excel 中使用 C# 編輯公式? 若要編輯或設定公式,請存取 **`Formula`** 屬性。 首先,選取範圍或儲存格,然後存取並設定 `Formula` 屬性。 `Formula` 屬性既是 get 屬性,也是 set 屬性,可傳回公式字串 (如果有)。 調用 `EvaluateAll()` 方法來重新評估整個工作簿,以確保計算的準確性。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-edit-formulas.cs ``` IronXL 在處理公式時提供了完全的彈性。 您可以修改現有公式、建立新公式,或根據執行時條件建立動態公式。 程式庫會自動處理公式語法驗證,確保 Excel 的相容性。 對於複雜的情境,請探索 [全面的公式範例](https://ironsoftware.com/csharp/excel/examples/excel-formulas-csharp/),展示進階的操作技巧。編輯公式後為什麼要使用 EvaluateAll()? `EvaluateAll()` 方法可維護 Excel 工作簿中的資料完整性。 當您修改公式時,整個工作簿中的從屬儲存格可能需要重新計算。 `EvaluateAll()` 會觸發完整的工作簿重新計算,確保所有公式都反映最新的變更。 在處理層疊公式(一個單元格的結果會影響多個計算)時,這一點至關重要。 如果不呼叫 `EvaluateAll()` ,您可能會匯出過時的值,導致資料不一致。如果我不重新計算工作簿會怎樣? 跳過重新計算會導致重大問題。 Excel 檔案同時儲存公式及其快取結果。 當您修改公式而不重新計算時,快取的值會保持不變,造成公式與顯示結果不匹配。 當使用者在 Excel 中開啟檔案,看到與預期不同的數值時,這種差異就會顯現出來。 任何依賴這些公式結果的後續作業都會使用過時的資料,有可能造成下游流程的錯誤。我可以一次編輯多個公式嗎? 是的,IronXL 支援透過範圍操作進行批次公式編輯。 使用範圍符號(如 `workSheet["A1:A10"]` )選取多個單元格,並同時將公式套用至所有單元格。 對於複雜的模式,可遍历儲存格集合,並應用條件邏輯,根據儲存格位置或現有值設定不同的公式。 在 [ 以重複公式模式建立試算表](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)或以程式化方式更新大型資料集時,這種方法非常有效。如何從公式擷取結果? 若要擷取公式的結果,請使用儲存格的 **`FormattedCellValue`** 屬性,以獲得精確的結果。 在選取的 Range 中,使用 `First` 方法存取儲存格,該方法會選取序列中的第一個元素。 從那裡,存取 `FormattedCellValue` 屬性。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs ``` `FormattedCellValue` 屬性會以 Excel 中的形式返回儲存格的值,並尊重數字格式、日期格式和自訂格式規則。 這可確保您的程式輸出與使用者在 Excel 中看到的內容一致。 對於數值分析,可透過 `Value` 屬性存取原始值,該屬性會回傳未套用格式化的基本數值或文字資料。為何使用 FormattedCellValue 而非 Value 屬性? `FormattedCellValue` 提供儲存格內容的顯示就緒表示,對於在您的應用程式中維護 Excel 的視覺化格式至關重要。 `Value` 屬性會回傳原始資料,而 `FormattedCellValue` 則會套用 Excel 的格式規則,包括數字格式、貨幣符號、百分比顯示和日期格式。 當產生報告或向終端使用者顯示資料時,這種區別就變得非常重要,因為終端使用者期望值的格式與他們的 Excel 經驗一致。 如需詳細的格式選項,請參閱 [API Reference](https://ironsoftware.com/csharp/excel/object-reference/api/)。儲存格值與公式結果有何差異? 單元格的公式是表達式(如"=A1+B1"),而公式結果是計算值(如 "150")。 IronXL 透過不同的屬性來區分這些概念:`Formula` 表示表達式,而 `Value`/`FormattedCellValue` 表示結果。 這種分離方式可讓您檢查公式以進行稽核、以程式化方式修改計算,或擷取結果作進一步處理。 有些儲存格包含沒有公式的靜態值,其中 `Formula` 屬性會回傳 null,而 `Value` 仍會提供儲存格的內容。如何處理公式錯誤? Excel 中的公式錯誤(如 #DIV/0!、#價值!或 #REF!)需要在 C# 程式碼中進行特殊處理。 IronXL 會保留這些錯誤狀態,以便進行檢測和程式化回應。 使用 `FormattedCellValue` 屬性上的字串比較檢查單元格是否包含錯誤,或在以數值處理公式結果時實作 try-catch 區塊。 若要強化錯誤處理,請考慮在公式評估之前進行驗證邏輯,或在公式中使用 Excel 的 `如果ERR或者` 函式來提供備用值。 進一步瞭解 [疑難排解常見問題](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)。IronXL.Excel 支援哪些 Excel 公式? Excel 包含 450+ 個公式,用於各種計算用途。 IronXL 支援大約 165 種最常用的配方。 檢查下列支援的公式:
編輯公式後為什麼要使用 EvaluateAll()? `EvaluateAll()` 方法可維護 Excel 工作簿中的資料完整性。 當您修改公式時,整個工作簿中的從屬儲存格可能需要重新計算。 `EvaluateAll()` 會觸發完整的工作簿重新計算,確保所有公式都反映最新的變更。 在處理層疊公式(一個單元格的結果會影響多個計算)時,這一點至關重要。 如果不呼叫 `EvaluateAll()` ,您可能會匯出過時的值,導致資料不一致。如果我不重新計算工作簿會怎樣? 跳過重新計算會導致重大問題。 Excel 檔案同時儲存公式及其快取結果。 當您修改公式而不重新計算時,快取的值會保持不變,造成公式與顯示結果不匹配。 當使用者在 Excel 中開啟檔案,看到與預期不同的數值時,這種差異就會顯現出來。 任何依賴這些公式結果的後續作業都會使用過時的資料,有可能造成下游流程的錯誤。我可以一次編輯多個公式嗎? 是的,IronXL 支援透過範圍操作進行批次公式編輯。 使用範圍符號(如 `workSheet["A1:A10"]` )選取多個單元格,並同時將公式套用至所有單元格。 對於複雜的模式,可遍历儲存格集合,並應用條件邏輯,根據儲存格位置或現有值設定不同的公式。 在 [ 以重複公式模式建立試算表](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)或以程式化方式更新大型資料集時,這種方法非常有效。如何從公式擷取結果? 若要擷取公式的結果,請使用儲存格的 **`FormattedCellValue`** 屬性,以獲得精確的結果。 在選取的 Range 中,使用 `First` 方法存取儲存格,該方法會選取序列中的第一個元素。 從那裡,存取 `FormattedCellValue` 屬性。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs ``` `FormattedCellValue` 屬性會以 Excel 中的形式返回儲存格的值,並尊重數字格式、日期格式和自訂格式規則。 這可確保您的程式輸出與使用者在 Excel 中看到的內容一致。 對於數值分析,可透過 `Value` 屬性存取原始值,該屬性會回傳未套用格式化的基本數值或文字資料。為何使用 FormattedCellValue 而非 Value 屬性? `FormattedCellValue` 提供儲存格內容的顯示就緒表示,對於在您的應用程式中維護 Excel 的視覺化格式至關重要。 `Value` 屬性會回傳原始資料,而 `FormattedCellValue` 則會套用 Excel 的格式規則,包括數字格式、貨幣符號、百分比顯示和日期格式。 當產生報告或向終端使用者顯示資料時,這種區別就變得非常重要,因為終端使用者期望值的格式與他們的 Excel 經驗一致。 如需詳細的格式選項,請參閱 [API Reference](https://ironsoftware.com/csharp/excel/object-reference/api/)。儲存格值與公式結果有何差異? 單元格的公式是表達式(如"=A1+B1"),而公式結果是計算值(如 "150")。 IronXL 透過不同的屬性來區分這些概念:`Formula` 表示表達式,而 `Value`/`FormattedCellValue` 表示結果。 這種分離方式可讓您檢查公式以進行稽核、以程式化方式修改計算,或擷取結果作進一步處理。 有些儲存格包含沒有公式的靜態值,其中 `Formula` 屬性會回傳 null,而 `Value` 仍會提供儲存格的內容。如何處理公式錯誤? Excel 中的公式錯誤(如 #DIV/0!、#價值!或 #REF!)需要在 C# 程式碼中進行特殊處理。 IronXL 會保留這些錯誤狀態,以便進行檢測和程式化回應。 使用 `FormattedCellValue` 屬性上的字串比較檢查單元格是否包含錯誤,或在以數值處理公式結果時實作 try-catch 區塊。 若要強化錯誤處理,請考慮在公式評估之前進行驗證邏輯,或在公式中使用 Excel 的 `如果ERR或者` 函式來提供備用值。 進一步瞭解 [疑難排解常見問題](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)。IronXL.Excel 支援哪些 Excel 公式? Excel 包含 450+ 個公式,用於各種計算用途。 IronXL 支援大約 165 種最常用的配方。 檢查下列支援的公式:
我可以一次編輯多個公式嗎? 是的,IronXL 支援透過範圍操作進行批次公式編輯。 使用範圍符號(如 `workSheet["A1:A10"]` )選取多個單元格,並同時將公式套用至所有單元格。 對於複雜的模式,可遍历儲存格集合,並應用條件邏輯,根據儲存格位置或現有值設定不同的公式。 在 [ 以重複公式模式建立試算表](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)或以程式化方式更新大型資料集時,這種方法非常有效。如何從公式擷取結果? 若要擷取公式的結果,請使用儲存格的 **`FormattedCellValue`** 屬性,以獲得精確的結果。 在選取的 Range 中,使用 `First` 方法存取儲存格,該方法會選取序列中的第一個元素。 從那裡,存取 `FormattedCellValue` 屬性。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs ``` `FormattedCellValue` 屬性會以 Excel 中的形式返回儲存格的值,並尊重數字格式、日期格式和自訂格式規則。 這可確保您的程式輸出與使用者在 Excel 中看到的內容一致。 對於數值分析,可透過 `Value` 屬性存取原始值,該屬性會回傳未套用格式化的基本數值或文字資料。為何使用 FormattedCellValue 而非 Value 屬性? `FormattedCellValue` 提供儲存格內容的顯示就緒表示,對於在您的應用程式中維護 Excel 的視覺化格式至關重要。 `Value` 屬性會回傳原始資料,而 `FormattedCellValue` 則會套用 Excel 的格式規則,包括數字格式、貨幣符號、百分比顯示和日期格式。 當產生報告或向終端使用者顯示資料時,這種區別就變得非常重要,因為終端使用者期望值的格式與他們的 Excel 經驗一致。 如需詳細的格式選項,請參閱 [API Reference](https://ironsoftware.com/csharp/excel/object-reference/api/)。儲存格值與公式結果有何差異? 單元格的公式是表達式(如"=A1+B1"),而公式結果是計算值(如 "150")。 IronXL 透過不同的屬性來區分這些概念:`Formula` 表示表達式,而 `Value`/`FormattedCellValue` 表示結果。 這種分離方式可讓您檢查公式以進行稽核、以程式化方式修改計算,或擷取結果作進一步處理。 有些儲存格包含沒有公式的靜態值,其中 `Formula` 屬性會回傳 null,而 `Value` 仍會提供儲存格的內容。如何處理公式錯誤? Excel 中的公式錯誤(如 #DIV/0!、#價值!或 #REF!)需要在 C# 程式碼中進行特殊處理。 IronXL 會保留這些錯誤狀態,以便進行檢測和程式化回應。 使用 `FormattedCellValue` 屬性上的字串比較檢查單元格是否包含錯誤,或在以數值處理公式結果時實作 try-catch 區塊。 若要強化錯誤處理,請考慮在公式評估之前進行驗證邏輯,或在公式中使用 Excel 的 `如果ERR或者` 函式來提供備用值。 進一步瞭解 [疑難排解常見問題](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)。IronXL.Excel 支援哪些 Excel 公式? Excel 包含 450+ 個公式,用於各種計算用途。 IronXL 支援大約 165 種最常用的配方。 檢查下列支援的公式:
為何使用 FormattedCellValue 而非 Value 屬性? `FormattedCellValue` 提供儲存格內容的顯示就緒表示,對於在您的應用程式中維護 Excel 的視覺化格式至關重要。 `Value` 屬性會回傳原始資料,而 `FormattedCellValue` 則會套用 Excel 的格式規則,包括數字格式、貨幣符號、百分比顯示和日期格式。 當產生報告或向終端使用者顯示資料時,這種區別就變得非常重要,因為終端使用者期望值的格式與他們的 Excel 經驗一致。 如需詳細的格式選項,請參閱 [API Reference](https://ironsoftware.com/csharp/excel/object-reference/api/)。儲存格值與公式結果有何差異? 單元格的公式是表達式(如"=A1+B1"),而公式結果是計算值(如 "150")。 IronXL 透過不同的屬性來區分這些概念:`Formula` 表示表達式,而 `Value`/`FormattedCellValue` 表示結果。 這種分離方式可讓您檢查公式以進行稽核、以程式化方式修改計算,或擷取結果作進一步處理。 有些儲存格包含沒有公式的靜態值,其中 `Formula` 屬性會回傳 null,而 `Value` 仍會提供儲存格的內容。如何處理公式錯誤? Excel 中的公式錯誤(如 #DIV/0!、#價值!或 #REF!)需要在 C# 程式碼中進行特殊處理。 IronXL 會保留這些錯誤狀態,以便進行檢測和程式化回應。 使用 `FormattedCellValue` 屬性上的字串比較檢查單元格是否包含錯誤,或在以數值處理公式結果時實作 try-catch 區塊。 若要強化錯誤處理,請考慮在公式評估之前進行驗證邏輯,或在公式中使用 Excel 的 `如果ERR或者` 函式來提供備用值。 進一步瞭解 [疑難排解常見問題](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)。IronXL.Excel 支援哪些 Excel 公式? Excel 包含 450+ 個公式,用於各種計算用途。 IronXL 支援大約 165 種最常用的配方。 檢查下列支援的公式:
如何處理公式錯誤? Excel 中的公式錯誤(如 #DIV/0!、#價值!或 #REF!)需要在 C# 程式碼中進行特殊處理。 IronXL 會保留這些錯誤狀態,以便進行檢測和程式化回應。 使用 `FormattedCellValue` 屬性上的字串比較檢查單元格是否包含錯誤,或在以數值處理公式結果時實作 try-catch 區塊。 若要強化錯誤處理,請考慮在公式評估之前進行驗證邏輯,或在公式中使用 Excel 的 `如果ERR或者` 函式來提供備用值。 進一步瞭解 [疑難排解常見問題](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)。IronXL.Excel 支援哪些 Excel 公式? Excel 包含 450+ 個公式,用於各種計算用途。 IronXL 支援大約 165 種最常用的配方。 檢查下列支援的公式:
| 配方名稱 | 描述 |
|---|---|
| ABS | 傳回一個數的絕對值,忽略其符號。 |
| INT | 將數字向下取整到最接近的整數。 |
| 數數 | 統計包含指定範圍內數字的儲存格數量。 |
| 如果 | 執行條件測試,如果條件為真則傳回一個值,如果條件為假則傳回另一個值。 |
| 和 | 對一系列數字求和。 |
| 平均的 | 計算一系列數字的平均值。 |
| 最小值 | 傳回一組數字中的最小值。 |
| 最大限度 | 傳回一組數字中的最大值。 |
| 排 | 傳回儲存格引用的行號。 |
| 柱子 | 傳回儲存格引用的列號。 |
| 那 | 表示"不可用"或資料缺失的錯誤值。 |
| 淨現值 | 計算一系列現金流量在指定折現率下的淨現值。 |
| 標準差 | 計算一組數字的標準差。 |
| 符號 | 傳回數字的符號,-1 表示負數,0 表示零,1 表示正數。 |
| 圓形的 | 將數字四捨五入到指定的小數位數。 |
| 抬頭 | 在一定範圍內尋找某個值,並傳回另一個範圍內對應的值。 |
| 指數 | 傳回給定範圍內指定行和列中儲存格的值。 |
| 報告 | 將一段文字字串重複指定次數。 |
| 中 | 根據指定的起始位置和長度,從給定的文字字串中提取一部分文字。 |
| 僅有的 | 傳回文字字串中的字元數。 |
| 價值 | 將表示數字的文字字串轉換為實際數字。 |
| 真的 | 表示邏輯值為"True"。 |
| 錯誤的 | 表示邏輯值為"False"。 |
| 和 | 檢查所有指定的條件是否為真,如果為真則傳回"True",否則傳回"False"。 |
| 或者 | 檢查是否至少有一個指定的條件為真,如果為真則傳回"True",否則傳回"False"。 |
| 不是 | 反轉條件的邏輯值,將"真"變為"假",反之亦然。 |
| 反對 | 傳回一個數除以另一個數的餘數。 |
| 管理員 | 根據指定條件從資料庫中提取最小值。 |
| 我們的 | 計算一組數字的變異數。 |
| 文字 | 將數字轉換為指定格式的文字。 |
| 光電 | 根據一系列現金流量和折現率計算投資或貸款的現值。 |
| 未來價值 (FV) | 根據定期付款和指定的利率計算投資或貸款的未來價值。 |
| NPER(週期數) | 確定在給定定期付款和利率的情況下,達到特定財務目標所需的付款期數。 |
| PMT(付款) | 計算償還貸款或投資所需的定期付款額,包括本金和利息。 |
| 利率(Interest Rate) | 計算透過一系列定期付款實現財務目標所需的利率。 |
| MIRR(修正內部報酬率) | 計算一系列現金流的內部報酬率,考慮多種再投資和融資利率。 |
| 內部報酬率(IRR) | 計算一系列現金流的內部報酬率,顯示投資達到損益兩平點的報酬率。 |
| 蘭德公司 | 產生一個介於 0 和 1 之間的隨機十進位數。 |
| 匹配 | 在指定範圍內搜尋指定值,並傳回找到的項目的相對位置。 |
| 日期 | 透過指定年、月、日來建立日期值。 |
| 時間 | 透過指定小時、分鐘和秒來建立時間值。 |
| 天 | 從給定的日期中提取星期幾。 |
| 月 | 根據給定的日期提取月份。 |
| 年 | 根據給定的日期提取年份。 |
| 工作日 | 傳回指定日期的星期幾。 |
| 小時 | 從給定時間中提取小時。 |
| 分分鐘 | 從給定時間中提取分鐘。 |
| 第二 | 從給定時間中提取秒。 |
| 現在 | 返回目前日期和時間。 |
| 區域 | 計算引用中各個範圍的數量。 |
| 列 | 統計指定範圍內的行數。 |
| 專欄 | 計算指定範圍內的列數。 |
| 抵銷 | 傳回從指定儲存格向外偏移指定行數和列數的參考偏移量。 |
| 搜尋 | 在文字字串中尋找子字串並返回其位置。 |
| 轉置 | 轉置一個區域的行和列。 |
| ATAN2 | 計算指定 x 和 y 座標的反正切值。 |
| 鹽 | 計算指定值的反正弦值。 |
| ACOS | 計算指定值的反餘弦值。 |
| 選擇 | 根據指定位置,從值清單中傳回一個值。 |
| 搜尋 | 在表格或範圍的第一行中尋找值,並傳回指定行中相同列的值。 |
| V抬頭 | 在表格或範圍的第一列中尋找值,並傳回同一行中指定列的值。 |
| ISREF | 檢查一個值是否為引用,如果是則傳回"True",如果不是則傳回"False"。 |
| 紀錄 | 計算以指定底數為底的數的對數。 |
| 字元 | 傳回給定數字所指定的字元。 |
| 降低 | 將文字轉換為小寫。 |
| 上 | 將文字轉換為大寫。 |
| 恰當的 | 將文字字串中每個單字的首字母大寫。 |
| 左邊 | 從文字字串的開頭提取指定數量的字元。 |
| 正確的 | 從文字字串的末尾提取指定數量的字元。 |
| 精確的 | 比較兩個文字字串,如果它們相同則傳回"True",否則傳回"False"。 |
| 修剪 | 刪除文字字串中的多餘空格,但保留單字之間的單一空格。 |
| 代替 | 將文字字串中指定數量的字元替換為新文字。 |
| 代替 | 將文字字串中指定的文字替換為新文字。 |
| 程式碼 | 傳回文字字串中第一個字元的 Unicode 數值。 |
| 尋找 | 在文字字串中尋找特定子字串並返回其位置。 |
| ISERR | 檢查一個值是否為除"#N/A"之外的錯誤值,如果是則傳回"True",如果不是則傳回"False"。 |
| IS文字 | 檢查值是否為文本,如果是則返回"True",如果不是則返回"False"。 |
| 編號 | 檢查一個值是否為數字,如果是則傳回"True",如果不是則傳回"False"。 |
| 伊斯布蘭克 | 檢查單元格是否為空,如果為空則傳回"True",否則傳回"False"。 |
| T | 將數值轉換為文字格式。 |
| 日期值 | 將以文字形式表示的日期轉換為日期序號。 |
| 乾淨的 | 從文字中刪除不可列印字元。 |
| MDETERM | 計算數組的矩陣行列式。 |
| 最小值VERSE | 傳回矩陣的乘法逆元(倒數)。 |
| MMULT | 將兩個矩陣相乘。 |
| IPMT | 計算在給定期限內貸款支付的利息部分。 |
| PPMT | 計算在給定期限內貸款支付的本金部分。 |
| 國家 | 計算指定範圍內非空單元格的數量,包括文字和數字。 |
| 產品 | 將指定範圍內的所有數字相乘。 |
| 事實 | 計算一個數的階乘。 |
| ISNON文字 | 檢查值是否為文本,如果不是文字則傳回"True",如果是文字則傳回"False"。 |
| 船運 | 根據樣本估計總體的變異數。 |
| 樹幹 | 將數字截斷為指定的小數位數。 |
| 不合邏輯 | 檢查一個值是否為邏輯(布林)值,如果是則傳回"True",如果不是則傳回"False"。 |
| 美國勞工部 | 將數字轉換為帶有貨幣符號和兩位小數的文字格式。 |
| 圍捕 | 將數字向上取整到指定的小數位數。 |
| 向下取整 | 將數字向下取整到指定的小數位數。 |
| 秩 | 傳回清單中數字的排名,並提供處理並列排名的選項。 |
| 地址 | 根據行號和列號,以文字形式傳回儲存格位址。 |
| 天S360 | 使用 360 天的一年計算兩個日期之間的天數。 |
| 今天 | 返回目前日期。 |
| 中位數 | 傳回一組數字的中位數(中間值)。 |
| 和產品 | 將陣列中對應的元素相乘,並傳回乘積總和。 |
| 出生 | 計算一個數的雙曲正弦值。 |
| COSH | 計算一個數的雙曲餘弦值。 |
| 坦尚尼亞 | 計算一個數的雙曲正切值。 |
| 亞辛 | 計算一個數的反雙曲正弦值。 |
| ACOSH | 計算一個數的反雙曲餘弦值。 |
| A坦尚尼亞 | 計算一個數的反雙曲正切值。 |
| 外部函數 | 表示由外部插件或自訂函數提供的函數呼叫或操作。 |
| 錯誤類型 | 傳回與給定值中的錯誤類型對應的數字。 |
| AVEDEV | 計算一組數值與其平均值的平均絕對偏差。 |
| 結合 | 計算從較大集合中取出給定數量的元素所能得到的組合數。 |
| 甚至 | 將數字向上取整到最接近的偶數。 |
| 地面 | 將數字向下取整到指定位數的最接近的倍數。 |
| 天花板 | 將數字向上取整到指定位數的最接近的倍數。 |
| N或者MDIST | 計算指定值的累積常態分佈函數。 |
| 正常主義者 | 計算標準常態累積分佈函數。 |
| N或者最小值V | 計算指定機率下常態累積分佈函數的逆函數。 |
| 正常 | 計算標準常態累積分佈函數的逆函數。 |
| 標準化 | 將一個值轉換為平均值為 0,標準差為 1 的標準常態分配。 |
| 奇怪的 | 將數字向上取整到最接近的奇數。 |
| 泊松 | 計算給定事件數的泊松分佈機率。 |
| TDIST | 計算指定值和自由度的學生 t 分佈。 |
| 和XMY2 | 計算兩個數組中對應值差的平方和。 |
| 和X2MY2 | 計算兩個數組中對應值差的平方和。 |
| 和X2PY2 | 計算兩個數組中對應值總和的平方和。 |
| 截距 | 計算圖表中趨勢線與 y 軸的交點。 |
| 坡 | 計算圖表中趨勢線的斜率。 |
| DEVSQ | 傳回資料點與其平均值偏差的平方和。 |
| 和SQ | 計算一組數的平方和。 |
| 大的 | 傳回資料集中的第 k 個最大值,其中 k 是指定的。 |
| 小的 | 傳回資料集中的第 k 個最小值,其中 k 為指定值。 |
| 百分位數 | 傳回資料集的第 k 個百分位數,其中 k 為指定值。 |
| 百分比排名 | 傳回資料集中某個數值佔總值數量的百分比排名。 |
| 模式 | 傳回資料集中出現頻率最高的值。 |
| 連接 | 將多個文字字串合併為一個字串。 |
| 力量 | 將一個數提升到指定的冪。 |
| 弧度 | 將角度轉換為弧度。 |
| 度 | 將弧度轉換為角度。 |
| 小計 | 對一個範圍執行各種計算(例如,求和、平均值),您可以選擇是否包含或排除範圍內的其他小計結果。 |
| 求和 | 將指定範圍內所有符合特定條件的數字相加。 |
| 數數如果 | 計算指定範圍內符合指定條件的儲存格數量。 |
| 計數空白 | 計算指定範圍內空單元格的數量。 |
| 羅馬 | 將阿拉伯數字轉換為羅馬數字。 |
| 超連結 | 建立指向網頁或檔案的超連結。 |
| 什麼 | 傳回一組數字(包括文字和邏輯值)中的最大值。 |
| 礦 | 傳回一組數字(包括文字和邏輯值)中的最小值。 |
我應該最常使用哪些公式? 商業應用程式中最常使用的公式包括 `和`、`平均的`、`數數`、`如果` 和 `V抬頭`。 這些基礎公式涵蓋了大部分的資料分析需求。 對於金融應用程式,請使用 `淨現值`, `PMT`, 和 `IRR` 函式。 統計分析受益於 `標準差`, `中位數`, 和 `百分位數` 功能。 文字操作依賴於 `連接`, `左邊`, `正確的`, 和 `修剪` 函式。 瞭解這些核心公式可透過組合建立複雜的計算。 IronXL.Excel 的全面公式支援可確保您的 C# 應用程式能處理任何 Excel 計算需求。如果我的公式不受支援怎麼辦? IronXL.Excel 支援 165 個以上的公式,涵蓋大多數的商業需求,但某些專業或較新的 Excel 函式可能無法使用。 您有幾個選擇:首先,檢查您是否可以使用支援的公式組合達到相同的結果。 許多複雜的 Excel 功能可以使用基本的數學運算複製。 或者,直接在 C# 中實現計算邏輯,並將結果以值的形式寫入儲存格。 對於未支援的關鍵任務公式,請聯絡 [ IronXL 支援](https://ironsoftware.com/csharp/excel/features/),討論可能的新增內容。 開發團隊會根據使用者的回饋定期更新公式支援。我可以新增自訂公式支援嗎? IronXL.Excel 著重於支援標準 Excel 公式,以確保不同 Excel 版本和應用程式之間的相容性。 雖然您無法透過 IronXL.Excel 將自訂公式定義新增至 Excel 本身,但您可以建立有效的變通方式。 在您的 C# 應用程式中實作自訂計算邏輯,並使用 IronXL 讀取輸入值並寫入結果。 對於複雜的情況,請結合多個支援的公式,以達到您想要的結果。 此方法可維持 Excel 檔案的相容性,同時利用 C# 進行自訂計算。 探索[IronXL.Excel的廣泛功能](https://ironsoftware.com/csharp/excel/features/),將您的公式自動化能力發揮到極致。
我可以新增自訂公式支援嗎? IronXL.Excel 著重於支援標準 Excel 公式,以確保不同 Excel 版本和應用程式之間的相容性。 雖然您無法透過 IronXL.Excel 將自訂公式定義新增至 Excel 本身,但您可以建立有效的變通方式。 在您的 C# 應用程式中實作自訂計算邏輯,並使用 IronXL 讀取輸入值並寫入結果。 對於複雜的情況,請結合多個支援的公式,以達到您想要的結果。 此方法可維持 Excel 檔案的相容性,同時利用 C# 進行自訂計算。 探索[IronXL.Excel的廣泛功能](https://ironsoftware.com/csharp/excel/features/),將您的公式自動化能力發揮到極致。
常見問題解答
如何以 C# 程式化方式編輯 Excel 公式?
IronXL.Excel 可讓您透過在任何儲存格上設定公式屬性,以 C# 語言編輯 Excel 公式。只需載入您的工作簿,存取所需的儲存格,然後將以 '=' 開頭的公式字串指定給 Formula 屬性。然後呼叫 EvaluateAll() 來重新計算工作簿中的所有公式,以獲得準確的結果。
支援哪些類型的 Excel 公式?
IronXL.Excel 支援超過 165 個內建 Excel 公式,包括算術運算、數學函數、統計計算、邏輯運算以及複雜的公式依賴關係。該函式庫可處理所有標準 Excel 公式語法,並確保與 Excel 產生的檔案相容。
如何從公式中擷取計算結果?
使用 IronXL 設定公式後,您可以使用儲存格的 FormattedCellValue 屬性擷取計算結果。此屬性可將公式的評估結果以格式化字串的方式傳回,與 Excel 中顯示的結果完全相同。
我需要安裝 Microsoft Excel 才能編輯公式嗎?
不,IronXL 可獨立運作,不需要 Microsoft Excel 或 Office Interop。該函式庫包含自己的公式計算引擎,可在 Windows、Linux 和 macOS 平台上運作,因此非常適合伺服器環境和跨平台應用程式。
如何確保所有公式在變更後重新計算?
IronXL 提供 EvaluateAll() 方法來重新計算工作簿中的所有公式。在修改儲存格值或公式後,請呼叫此方法,以確保所有依賴的計算都以最新的資料更新,從而維持整個試算表的準確性。
公式編輯的系統需求為何?
IronXL 需要 .NET Framework 4.6.2 或更高版本,或 .NET Core 2.0 及更高版本。為了在使用複雜公式和大型工作簿時獲得最佳效能,建議至少使用 4GB RAM。該函式庫的輕量級架構可確保在無外部依賴的情況下進行高效處理。






