如何在 Excel 中使用數學函數 | IronXL

如何在 C# 中使用 IronXL 為 Excel 應用數學函數

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL 允許直接在 C# 中對 Excel 資料使用數學聚合函數,例如 MinMax。 無需使用 Interop,即可透過簡單的一行式方法,對任何儲存格範圍進行總計計算與數值資料分析。 無論是建立財務報表、分析銷售數據,還是處理科學測量數據,IronXL 內建的數學函數都能簡化 .NET 應用程式中的 Excel 自動化工作流程。

快速入門:使用 IronXL 在一行中執行 SumMax

使用 IronXL,可立即從任何範圍計算 summaximum 等聚合值。 這些單行方法讓您無需撰寫重複性程式碼,即可快速輕鬆地分析數值資料。 此函式庫會處理所有解析工作,並自動忽略非數字內容。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel

    PM > Install-Package IronXL.Excel
  2. 請複製並執行此程式碼片段。

    decimal total = workSheet["A1:A8"].Sum();
    decimal maximum = workSheet["A1:A8"].Max();
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronXL

    arrow pointer


如何在 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()
$vbLabelText   $csharpLabel

有哪些數學函數可用?

除了核心彙總功能外,IronXL 還支援一套全面的數學運算功能,可與 C# Excel 工作流程無縫整合。 每個功能均針對效能與精準度進行了優化:

Sum() 函式用於計算選取儲存格的總和,非常適合用於財務總計、庫存盤點或累積計算。 它能高效處理數千個儲存格,同時維持小數精確度。

Avg() 函式用於計算選取儲存格的平均值,非常適合用於計算平均分數、平均銷售額或進行統計分析。 此功能會自動排除空儲存格及非數值內容。

Min() 方法可識別選取儲存格中的最小數值,適用於尋找最低價格、最低閾值或資料分析中的基準值。

Max() 方法可找出選定儲存格中的最大數值,對於識別資料集中的峰值、最高分數或上限至關重要。

這些數學函數能與 IronXL 的其他功能(如儲存格格式設定公式支援)無縫整合,實現全面的 Excel 自動化情境。

如何在 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}")
$vbLabelText   $csharpLabel

請注意空格與非數值將自動從計算中排除。

如何在 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}")
$vbLabelText   $csharpLabel

請注意平均值僅根據包含數值的儲存格計算,並會自動跳過空格或文字儲存格。

如何在 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}")
$vbLabelText   $csharpLabel

如何在 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")
$vbLabelText   $csharpLabel

我可以彙總哪些資料類型?

這些功能是分析資料並從 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}")
$vbLabelText   $csharpLabel

我可以對行和列套用函數嗎?

為了提供更大的靈活性,這些功能亦可套用至單一或多個列與行。 進一步了解如何選取範圍,包括整行與整列。 此功能在處理需要進行特定維度計算的結構化資料時,尤為實用。

您可以將數學函數應用於:

  • 整列:針對完整資料欄位計算總和
  • 整行:針對基於行的記錄彙總數值
  • 多重範圍:結合多個選項進行複雜計算
  • 命名範圍:使用命名範圍以確保程式碼易於維護

以下是一個展示列與列聚合功能的實用範例:

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()
$vbLabelText   $csharpLabel

針對進階的 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 範圍選取,包括整行、整列或自訂範圍。您可以透過在選取語法中定義適當的範圍,來彙總試算表中特定區域的資料。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 2,041,325 | 版本: 2026.6 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXL.Excel
執行範例 觀看您的資料變成試算表。