如何在 C# 中使用 IronXL 為 Excel 應用數學函數
IronXL 允許直接在 C# 中對 Excel 資料使用數學聚合函數,例如 Min 及 Max。 無需使用 Interop,即可透過簡單的一行式方法,對任何儲存格範圍進行總計計算與數值資料分析。 無論是建立財務報表、分析銷售數據,還是處理科學測量數據,IronXL 內建的數學函數都能簡化 .NET 應用程式中的 Excel 自動化工作流程。
快速入門:使用 IronXL 在一行中執行 Sum 和 Max
使用 IronXL,可立即從任何範圍計算 sum 和 maximum 等聚合值。 這些單行方法讓您無需撰寫重複性程式碼,即可快速輕鬆地分析數值資料。 此函式庫會處理所有解析工作,並自動忽略非數字內容。
簡化工作流程(5 個步驟)
- 下載 C# 函式庫以使用聚合函式
- 載入現有的 Excel 檔案
- 選取要彙總的範圍、列或欄
- 呼叫可用的數學函數,例如
Sum、Avg、Min或Max - 根據結果進行進一步計算
如何在 Excel 中使用 C# 執行聚合函數?
在 Excel 試算表中處理儲存格範圍時,您可以利用各種彙總函數來執行計算。 IronXL 提供與 Excel 內建函數相仿的數學運算功能,讓您無需安裝 Microsoft Office,即可輕鬆地在 C# 中處理 Excel 資料。 以下是主要方法:
Sum()方法會計算選取儲存格的總和。Avg()方法用於計算選取儲存格的平均值。Min()方法可識別選取儲存格中的最小數值。Max()方法可找出選取範圍內數值的最大值。
這些功能是分析資料並從 Excel 試算表中獲取有意義洞察的寶貴工具。 它們能自動處理各種數值格式,包括整數、小數、貨幣值及百分比。 在處理大型資料集時,相較於手動逐格遍歷,這些方法能提供卓越的效能。
:path=/static-assets/excel/content-code-examples/how-to/math-functions-math-functions.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Get range from worksheet
var range = workSheet["A1:A8"];
// Calculate the sum of numeric cells within the range
decimal sum = range.Sum();
// Calculate the average value of numeric cells within the range
decimal avg = range.Avg();
// Identify the maximum value among numeric cells within the range
decimal max = range.Max();
// Identify the minimum value among numeric cells within the range
decimal min = range.Min();
Imports IronXL
Imports System.Linq
Dim workBook As WorkBook = WorkBook.Load("sample.xls")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Get range from worksheet
Dim range = workSheet("A1:A8")
' Calculate the sum of numeric cells within the range
Dim sum As Decimal = range.Sum()
' Calculate the average value of numeric cells within the range
Dim avg As Decimal = range.Avg()
' Identify the maximum value among numeric cells within the range
Dim max As Decimal = range.Max()
' Identify the minimum value among numeric cells within the range
Dim min As Decimal = range.Min()
有哪些數學函數可用?
除了核心彙總功能外,IronXL 還支援一套全面的數學運算功能,可與 C# Excel 工作流程無縫整合。 每個功能均針對效能與精準度進行了優化:
Sum() 函式用於計算選取儲存格的總和,非常適合用於財務總計、庫存盤點或累積計算。 它能高效處理數千個儲存格,同時維持小數精確度。
Avg() 函式用於計算選取儲存格的平均值,非常適合用於計算平均分數、平均銷售額或進行統計分析。 此功能會自動排除空儲存格及非數值內容。
Min() 方法可識別選取儲存格中的最小數值,適用於尋找最低價格、最低閾值或資料分析中的基準值。
Max() 方法可找出選定儲存格中的最大數值,對於識別資料集中的峰值、最高分數或上限至關重要。
如何在 C# 中計算總和 (總計)?
Sum() 函式會計算選取範圍內所有數值的總和,並對儲存格執行數學求和運算 (Σ)。 這使其非常適合用於財務總額、庫存盤點以及跨大型資料集的累積計算。
使用方括號標記 ["B2:B50"] 來指定特定範圍,並在一行內計算總和:
using IronXL;
WorkBook workBook = WorkBook.Load("sales-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate total sales from range
decimal totalSales = sheet["B2:B50"].Sum();
Console.WriteLine($"Total Sales: ${totalSales:N2}");
using IronXL;
WorkBook workBook = WorkBook.Load("sales-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate total sales from range
decimal totalSales = sheet["B2:B50"].Sum();
Console.WriteLine($"Total Sales: ${totalSales:N2}");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("sales-data.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Calculate total sales from range
Dim totalSales As Decimal = sheet("B2:B50").Sum()
Console.WriteLine($"Total Sales: {totalSales:N2}")
如何在 C# 中計算平均值?
Avg() 函式可計算選取儲存格的算術平均值,非常適合用於計算平均分數、平均銷售額,或對資料集進行統計分析。
此方法會傳回一個 decimal 值,其具備完整精確度,可進行精確的統計計算:
using IronXL;
WorkBook workBook = WorkBook.Load("student-grades.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate average grade for a student
decimal avgGrade = sheet["C2:C10"].Avg();
Console.WriteLine($"Average Grade: {avgGrade:F2}");
using IronXL;
WorkBook workBook = WorkBook.Load("student-grades.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate average grade for a student
decimal avgGrade = sheet["C2:C10"].Avg();
Console.WriteLine($"Average Grade: {avgGrade:F2}");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("student-grades.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Calculate average grade for a student
Dim avgGrade As Decimal = sheet("C2:C10").Avg()
Console.WriteLine($"Average Grade: {avgGrade:F2}")
如何在 C# 中找出最小值?
Min() 方法用於識別範圍內的最小數值。 除了尋找最低價格或最低門檻等商業應用外,此功能在數學情境中亦極具價值,例如確定下界、識別座標資料中的頂點,或為統計分析建立基準值。
直接在任何範圍內套用 Min(),即可立即掃描數百個數值:
using IronXL;
WorkBook workBook = WorkBook.Load("product-prices.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the lowest price
decimal lowestPrice = sheet["D2:D100"].Min();
Console.WriteLine($"Lowest Price: ${lowestPrice:N2}");
using IronXL;
WorkBook workBook = WorkBook.Load("product-prices.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the lowest price
decimal lowestPrice = sheet["D2:D100"].Min();
Console.WriteLine($"Lowest Price: ${lowestPrice:N2}");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("product-prices.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Find the lowest price
Dim lowestPrice As Decimal = sheet("D2:D100").Min()
Console.WriteLine($"Lowest Price: ${lowestPrice:N2}")
如何在 C# 中發揮最大價值?
Max() 方法用於找出範圍內最大的數值。 無論是識別商業分析中的峰值、尋找幾何計算中的最大頂點,還是確定數學模型中的上界,此函式都能簡化您資料集中的極端值分析流程。
透過單一 Max() 呼叫,即可處理大型資料集(例如一整年的每日讀數 E2:E365):
using IronXL;
WorkBook workBook = WorkBook.Load("temperature-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the highest temperature recorded
decimal maxTemp = sheet["E2:E365"].Max();
Console.WriteLine($"Highest Temperature: {maxTemp:F1}°F");
using IronXL;
WorkBook workBook = WorkBook.Load("temperature-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the highest temperature recorded
decimal maxTemp = sheet["E2:E365"].Max();
Console.WriteLine($"Highest Temperature: {maxTemp:F1}°F");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("temperature-data.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Find the highest temperature recorded
Dim maxTemp As Decimal = sheet("E2:E365").Max()
Console.WriteLine($"Highest Temperature: {maxTemp:F1}°F")
我可以彙總哪些資料類型?
這些功能是分析資料並從 Excel 試算表中獲取洞見的寶貴工具。 IronXL 的數學函數支援 Excel 檔案中常見的各種數值資料類型:
- 整數與十進位數:以完整精確度處理的標準數值
- 貨幣值:貨幣金額應正確解析並包含貨幣符號
- 百分比:在計算中適當處理百分比數值
- 科學記法:支援以科學格式呈現的大數或小數
- 日期序列號:Excel 的內部日期表示法,可在需要時進行彙總
在處理混合資料類型時,IronXL 能智慧地處理轉換並確保結果的準確性。 對於涉及多個工作表或工作簿的複雜情境,您可以輕鬆地同時載入並處理多個 Excel 檔案。
以下範例展示如何處理不同數值格式的匯總:
using IronXL;
// Load workbook containing various numeric formats
WorkBook workBook = WorkBook.Load("financial-data.xlsx");
WorkSheet salesSheet = workBook.GetWorkSheet("Q4Sales");
// Calculate total revenue from currency-formatted cells
decimal totalRevenue = salesSheet["B2:B50"].Sum();
Console.WriteLine($"Total Q4 Revenue: ${totalRevenue:N2}");
// Find the highest individual sale amount
decimal maxSale = salesSheet["B2:B50"].Max();
Console.WriteLine($"Largest Sale: ${maxSale:N2}");
// Calculate average sale amount
decimal avgSale = salesSheet["B2:B50"].Avg();
Console.WriteLine($"Average Sale: ${avgSale:N2}");
// Process percentage data (e.g., tax rates)
decimal avgTaxRate = salesSheet["D2:D50"].Avg();
Console.WriteLine($"Average Tax Rate: {avgTaxRate:P2}");
using IronXL;
// Load workbook containing various numeric formats
WorkBook workBook = WorkBook.Load("financial-data.xlsx");
WorkSheet salesSheet = workBook.GetWorkSheet("Q4Sales");
// Calculate total revenue from currency-formatted cells
decimal totalRevenue = salesSheet["B2:B50"].Sum();
Console.WriteLine($"Total Q4 Revenue: ${totalRevenue:N2}");
// Find the highest individual sale amount
decimal maxSale = salesSheet["B2:B50"].Max();
Console.WriteLine($"Largest Sale: ${maxSale:N2}");
// Calculate average sale amount
decimal avgSale = salesSheet["B2:B50"].Avg();
Console.WriteLine($"Average Sale: ${avgSale:N2}");
// Process percentage data (e.g., tax rates)
decimal avgTaxRate = salesSheet["D2:D50"].Avg();
Console.WriteLine($"Average Tax Rate: {avgTaxRate:P2}");
Imports IronXL
' Load workbook containing various numeric formats
Dim workBook As WorkBook = WorkBook.Load("financial-data.xlsx")
Dim salesSheet As WorkSheet = workBook.GetWorkSheet("Q4Sales")
' Calculate total revenue from currency-formatted cells
Dim totalRevenue As Decimal = salesSheet("B2:B50").Sum()
Console.WriteLine($"Total Q4 Revenue: {totalRevenue:N2}")
' Find the highest individual sale amount
Dim maxSale As Decimal = salesSheet("B2:B50").Max()
Console.WriteLine($"Largest Sale: {maxSale:N2}")
' Calculate average sale amount
Dim avgSale As Decimal = salesSheet("B2:B50").Avg()
Console.WriteLine($"Average Sale: {avgSale:N2}")
' Process percentage data (e.g., tax rates)
Dim avgTaxRate As Decimal = salesSheet("D2:D50").Avg()
Console.WriteLine($"Average Tax Rate: {avgTaxRate:P2}")
我可以對行和列套用函數嗎?
為了提供更大的靈活性,這些功能亦可套用至單一或多個列與行。 進一步了解如何選取範圍,包括整行與整列。 此功能在處理需要進行特定維度計算的結構化資料時,尤為實用。
您可以將數學函數應用於:
- 整列:針對完整資料欄位計算總和
- 整行:針對基於行的記錄彙總數值
- 多重範圍:結合多個選項進行複雜計算
- 命名範圍:使用命名範圍以確保程式碼易於維護
以下是一個展示列與列聚合功能的實用範例:
using IronXL;
WorkBook workBook = WorkBook.Load("quarterly-report.xlsx");
WorkSheet dataSheet = workBook.DefaultWorkSheet;
// Calculate sum for entire column (e.g., all sales data)
decimal columnTotal = dataSheet.GetColumn(1).Sum(); // Column B
// Calculate average for entire row (e.g., monthly averages)
decimal rowAverage = dataSheet.GetRow(4).Avg(); // Row 5
// Work with multiple columns simultaneously
for (int col = 1; col <= 12; col++) // Columns B through M
{
decimal monthlyTotal = dataSheet.GetColumn(col).Sum();
Console.WriteLine($"Month {col} Total: ${monthlyTotal:N2}");
}
// Calculate grand total across multiple ranges
var q1Range = dataSheet["B2:D50"];
var q2Range = dataSheet["E2:G50"];
decimal firstHalfTotal = q1Range.Sum() + q2Range.Sum();
using IronXL;
WorkBook workBook = WorkBook.Load("quarterly-report.xlsx");
WorkSheet dataSheet = workBook.DefaultWorkSheet;
// Calculate sum for entire column (e.g., all sales data)
decimal columnTotal = dataSheet.GetColumn(1).Sum(); // Column B
// Calculate average for entire row (e.g., monthly averages)
decimal rowAverage = dataSheet.GetRow(4).Avg(); // Row 5
// Work with multiple columns simultaneously
for (int col = 1; col <= 12; col++) // Columns B through M
{
decimal monthlyTotal = dataSheet.GetColumn(col).Sum();
Console.WriteLine($"Month {col} Total: ${monthlyTotal:N2}");
}
// Calculate grand total across multiple ranges
var q1Range = dataSheet["B2:D50"];
var q2Range = dataSheet["E2:G50"];
decimal firstHalfTotal = q1Range.Sum() + q2Range.Sum();
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("quarterly-report.xlsx")
Dim dataSheet As WorkSheet = workBook.DefaultWorkSheet
' Calculate sum for entire column (e.g., all sales data)
Dim columnTotal As Decimal = dataSheet.GetColumn(1).Sum() ' Column B
' Calculate average for entire row (e.g., monthly averages)
Dim rowAverage As Decimal = dataSheet.GetRow(4).Avg() ' Row 5
' Work with multiple columns simultaneously
For col As Integer = 1 To 12 ' Columns B through M
Dim monthlyTotal As Decimal = dataSheet.GetColumn(col).Sum()
Console.WriteLine($"Month {col} Total: ${monthlyTotal:N2}")
Next
' Calculate grand total across multiple ranges
Dim q1Range = dataSheet("B2:D50")
Dim q2Range = dataSheet("E2:G50")
Dim firstHalfTotal As Decimal = q1Range.Sum() + q2Range.Sum()
針對進階的 Excel 操作情境,請將這些數學函數與其他 IronXL 功能結合使用,例如建立圖表、套用條件格式,或匯出至不同格式。 這使得 IronXL 成為 .NET 應用程式中 Excel 自動化的全面解決方案,無論是建置報表工具、資料分析系統,還是商業智慧儀表板皆然。
常見問題
如何使用 C# 在 Excel 中計算儲存格的總和?
Using IronXL,您可以使用簡單的一行程式碼計算任何儲存格範圍的總和:decimal total = workSheet["A1:A8"].Sum()。此方法會自動處理所有數值格式,包括整數、小數、貨幣值和百分比,同時忽略非數值內容。
在 C# 中有哪些可用於 Excel 資料分析的數學函數?
IronXL 提供必要的數學運算功能,包括用於計算總和的 Sum()、計算平均值的 Avg()、尋找最小值的 Min(),以及尋找最大值的 Max()。這些函數與 Excel 的內建功能相仿,且能與任何儲存格範圍無縫配合運作,無需安裝 Microsoft Office。
若未安裝 Microsoft Office,是否仍可執行 Excel 運算?
是的,IronXL 讓您能夠直接在 C# 中執行所有 Excel 數學函數,無需 Microsoft Office 或 Interop。IronXL程式庫能獨立處理 Excel 檔案操作,使其非常適合用於伺服器環境和自動化工作流程。
IronXL 在計算中如何處理非數值?
IronXL 會自動將非數值資料排除於所有數學運算之外。當使用 Sum()、Avg()、Min() 或 Max() 等函式時,IronXL程式庫會智慧地解析儲存格內容,並僅納入有效的數值資料,確保無需手動清理資料即可獲得精確的結果。
使用 C# 在 Excel 中分析數值資料的最快方法是什麼?
IronXL 內建的彙總函式在處理大型資料集時表現卓越。您只需選取範圍,並呼叫如 workSheet["A1:A100"].Sum() 或 workSheet["B1:B100"].Max() 等方法。這些經過優化的方法,其執行速度遠比手動逐格遍歷快得多。
我可以在特定的行或列上使用這些數學函數嗎?
是的,IronXL 的數學函數適用於任何有效的 Excel 範圍選取,包括整行、整列或自訂範圍。您可以透過在選取語法中定義適當的範圍,來彙總試算表中特定區域的資料。

