運行總計(也稱為累積總和)在許多情況下非常常用。這是一個指標,可以告訴您到目前為止的值的總和是多少。
例如,如果您有每月的銷售數據,那麼運行總計將告訴您從該月的第一天到特定日期的銷售量。
還有其他一些經常使用總計的情況,例如計算銀行對賬單/分類帳中的現金餘額,計算膳食計劃中的卡路里等。
在 Microsoft Excel 中,有多種不同的方法來計算運行總計。
您選擇的方法還取決於數據的結構。
例如,如果您有簡單的表格數據,那麼您可以使用簡單的 SUM 公式,但如果您有 Excel 表格,那麼最好使用結構化引用。您也可以使用 Power Query 來執行此操作。
在本教程中,我將介紹所有這些在 Excel 中計算運行總計的不同方法。
所以讓我們開始吧!
Contents
使用表格數據計算運行總計
如果您有表格數據(即 Excel 中未轉換為 Excel 表格的表格),您可以使用一些簡單的公式來計算運行總計。
使用加法運算符
假設您有按日期計算的銷售數據,並且您想在 C 列中計算運行總計。
以下是執行此操作的步驟。
步驟 1 – 在單元格 C2 中,這是您想要運行總計的第一個單元格,輸入
=B2
這只會在單元格 B2 中獲得相同的銷售值。
第 2 步– 在單元格 C3 中,輸入以下公式:
= C2 + B3
第 3 步– 將公式應用於整個列。您可以使用填充手柄來選擇並拖動它,或者簡單地將單元格 C3 複製粘貼到所有剩餘的單元格(這將自動調整參考並給出正確的結果)。
這將為您提供如下所示的結果。
這是一種非常簡單的方法,在大多數情況下都可以很好地工作。
邏輯很簡單——每個單元格獲取它上面的值(這是到前一天的累積總和),並添加相鄰單元格中的值(這是當天的銷售值)。
只有一個缺點 – 如果您刪除此數據集中的任何現有行,則下面的所有單元格都會返回引用錯誤(#REF!)
如果您的數據集有這種可能性,請使用使用 SUM 公式的下一個方法
將 SUM 與部分鎖定的單元格引用一起使用
假設您有按日期計算的銷售數據,並且您想計算 C 列中的運行總計。
下面是 SUM 公式,它將為您提供運行總計。
=SUM($B$2:B2)
讓我解釋一下這個公式是如何工作的。
在上面的 SUM 公式中,我使用了引用添加為 $B$2:B2
- $B$2 – 這是一個絕對引用,這意味著當我在下面的單元格中復制相同的公式時,這個引用不會改變。因此,在下面的單元格中復制公式時,公式將更改為 SUM($B$2:B3)
- B2 – 這是參考的第二部分,它是相對參考,這意味著當我向下或向右複製公式時,這會調整。所以在復制下面單元格中的公式時,這個值會變成B3
這種方法的好處是,如果您刪除數據集中的任何行,這個公式會調整併仍然為您提供正確的運行總計。
在 Excel 表中計算運行總計
在 Excel 中處理表格數據時,最好將其轉換為 Excel 表格。它使管理數據變得更加容易,並且還可以輕鬆使用 Power Query 和 Power Pivot 等工具。
使用 Excel 表格會帶來一些好處,例如結構化引用(這使得引用表格中的數據並在公式中使用它變得非常容易),以及在您從表格中添加或刪除數據的情況下自動調整引用。
雖然您仍然可以使用我在 Excel 表格中向您展示的上述公式,但讓我向您展示一些更好的方法來做到這一點。
假設您有一個如下所示的 Excel 表格,並且您想要計算 C 列中的運行總計。
下面是執行此操作的公式:
=SUM(SalesData[[#Headers],[Sale]]:[@Sale])
上面的公式可能看起來有點長,但你不必自己寫。您在求和公式中看到的內容稱為結構化引用,這是 Excel 引用 Excel 表中特定數據點的有效方法。
例如,SalesData[[#Headers],[Sale]] 指的是SalesData表中的Sale表頭(SalesData是我創建表時給的Excel表的名稱)
而 [@Sale] 指的是 Sale 列中同一行的單元格中的值。
我只是在這裡解釋了這一點以供您理解,但即使您對結構化引用一無所知,您仍然可以輕鬆創建此公式。
以下是執行此操作的步驟:
- 在單元格 C2 中,輸入 =SUM(
- 選擇單元格 B1,它是具有銷售價值的列的標題。您可以使用鼠標或使用箭頭鍵。您會注意到 Excel 會自動輸入該單元格的結構化引用
- 添加:(冒號)
- 選擇單元格 B2。Excel 將再次自動插入單元格的結構化引用
- 關閉括號並按 Enter
您還會注意到,您不必復制整個列中的公式,Excel 表格會自動為您完成。
這種方法的另一個好處是,如果您在這個數據集中添加一條新記錄,Excel 表格會自動計算所有新記錄的運行總計。
雖然我們在公式中包含了列的標題,但請記住,公式會忽略標題文本而只考慮列中的數據
使用 Power Query 計算運行總計
在連接數據庫、從多個來源提取數據以及在將其放入 Excel 之前對其進行轉換時,Power Query 是一個了不起的工具。
如果您已經在使用 Power Query,則在 Power Query 編輯器本身中轉換數據時添加運行總計會更有效(而不是首先在 Excel 中獲取數據,然後使用上述任何方法添加運行總計上述方法)。
雖然 Power Query 中沒有內置功能來添加運行總計(我希望有),但您仍然可以使用簡單的公式來做到這一點。
假設您有一個如下所示的 Excel 表格,並且您希望將運行總計添加到此數據中:
以下是執行此操作的步驟:
- 選擇 Excel 表格中的任何單元格
- 點擊數據
- 在 Get & Transform 選項卡中,單擊 from Table/Range 圖標。這將在 Power Query 編輯器中打開表
- [可選] 如果您的日期列尚未排序,請單擊日期列中的過濾器圖標,然後單擊升序排序
- 單擊 Power Query 編輯器中的添加列選項卡
- 在 General 組中,單擊 Index Column 下拉菜單(不要單擊 Index Column 圖標,而是單擊它旁邊的黑色小傾斜箭頭以顯示更多選項)
- 單擊“從 1”選項。這樣做將添加一個新的索引列,該列將從 1 開始,並在整個列中輸入以 1 遞增的數字
- 單擊“自定義列”圖標(也在“添加列”選項卡中)
- 在打開的自定義列對話框中,輸入新列的名稱。在本例中,我將使用名稱“Running Total”
- 在自定義列公式字段中,輸入以下公式:List.Sum(List.Range(#”Added Index”[Sale],0,[Index]))
- 確保對話框底部有一個複選框,上面寫著“未檢測到語法錯誤”
- 單擊確定。這將添加一個新的運行總計列
- 刪除索引列
- 單擊“文件”選項卡,然後單擊“關閉並加載”
上述步驟將在您的工作簿中插入一個新工作表,其中包含一個包含運行總計的表格。
現在,如果您認為與以前使用簡單公式的方法相比,這些步驟太多了,那麼您是對的。
如果您已經有一個數據集並且您需要做的只是添加運行總計,那麼最好不要使用 Power Query。
在您必須從數據庫中提取數據或組合來自多個不同工作簿的數據並且在此過程中還向其中添加運行總計的情況下,使用 Power Query 是有意義的。
此外,一旦您使用 Power Query 執行此自動化操作,下次您的數據集更改時,您不必再次執行此操作,您只需刷新查詢,它會根據新數據集為您提供結果。
這是如何運作的?
現在讓我快速解釋一下這種方法會發生什麼。
我們在 Power Query 編輯器中做的第一件事是插入一個索引列,該索引列從 1 開始,並隨著它沿單元格向下遞增而遞增。
我們這樣做是因為我們需要在計算在下一步插入的另一列中的運行總計時使用此列。
然後我們插入一個自定義列並使用以下公式
List.Sum(List.Range(#"Added Index"[Sale],0,[Index]))
這是一個 List.Sum 公式,它將為您提供其中指定的範圍的總和。
該範圍是使用 List.Range 函數指定的。
List.Range 函數將 sale 列中的指定範圍作為輸出,並且該範圍根據 Index 值變化。例如,對於第一條記錄,範圍就是第一個銷售價值。當你沿著細胞往下走時,這個範圍會擴大。
所以,對於第一個單元格。List.Sum 只會給你第一個銷售價值的總和,對於第二個單元格,它會給你前兩個銷售價值的總和,依此類推。
雖然這種方法效果很好,但對於大型數據集(數千行)會變得非常慢。
根據標準計算運行總計
到目前為止,我們已經看到了計算列中所有值的運行總計的示例。
但在某些情況下,您可能想要計算特定記錄的運行總計。
例如,下面我有一個數據集,我想在兩個不同的列中分別計算打印機和掃描儀的運行總數。
這可以使用 SUMIF 公式來完成,該公式在確保滿足指定條件的同時計算運行總計。
下面是對打印機列執行此操作的公式:
=SUMIF($C$2:C2,$D$1,$B$2:B2)
同樣,要計算掃描儀的運行總數,請使用以下公式:
=SUMIF($C$2:C2,$E$1,$B$2:B2)
在上面的公式中,我使用了 SUMIF,它會在滿足指定條件時給我一個範圍內的總和。
該公式採用三個參數:
- range:這是將根據指定條件檢查的條件範圍
- criteria:這是僅在滿足此標準時才檢查的標準,然後將添加第三個參數中的值,即總和範圍
- [sum_range]:這是在滿足條件時添加值的總和範圍
另外,在range和sum_range參數中,我已經鎖定了引用的第二部分,這樣當我們向下移動單元格時,範圍會不斷擴大。這允許我們只考慮和添加直到該範圍的值(因此運行總計)。
在這個公式中,我使用標題列(打印機和掃描儀)作為標準。如果您的列標題與標准文本不完全相同,您還可以對標准進行硬編碼。
如果您需要檢查多個條件,則可以使用 SUMIFS 公式。
在數據透視表中運行總計
如果您想在數據透視表結果中添加運行總計,您可以使用數據透視表中的內置功能輕鬆完成此操作。
假設您有一個如下所示的數據透視表,其中一列中有日期,另一列中有銷售價值。
以下是添加一個附加列的步驟,該列將按日期顯示銷售的累計:
- 拖動 Sale 字段並將其放在 Value 區域中。
- 這將添加另一個包含銷售值的列
- 單擊價值區域中的銷售總額 2 選項
- 單擊“值字段設置”選項
- 在“值字段設置”對話框中,將“自定義名稱”更改為“運行總計”
- 單擊“將值顯示為”選項卡
- 在將值顯示為下拉菜單中,選擇“Running Total in”選項
- 在基本字段選項中,確保選擇日期
- 點擊確定
上述步驟會將第二個銷售列更改為“運行總計”列。
因此,這些是您可以用來在 Excel 中計算運行總計的一些方法。如果您有表格格式的數據,則可以使用簡單的公式,如果您有 Excel 表格,則可以使用利用結構化引用的公式。
我還介紹瞭如何使用 Power Query 和數據透視表計算運行總計。
我希望您發現本教程很有用。