一篇搞懂 Power BI Calculate DAX 函數:最強大的篩選神器完全解析 (附實戰練習)
最完整的 Power BI Calculate DAX 函數教學。本文將從篩選上下文 (Filter Context) 講起,用簡單比喻帶你精通 Calculate 函數新增、覆蓋、移除篩選三大用法。內附免費 Power BI 練習檔,助你從入門到實戰。

你好,我是 Kiro。
在深入 DAX 的世界前,如果你對 Power BI 的核心概念與三大模組還不熟悉,我強烈建議你先閱讀《Power BI 是什麼?2025 年終極指南》,它會為你打下最穩固的基礎。
如果你曾在學習 Power BI DAX 的路上感到挫折,相信我,你並不孤單。而在那條陡峭的學習曲線上,有一座幾乎所有人初次見面都會感到恐懼的大山,它的名字,叫做 CALCULATE
。
網路上有無數文章告訴你,它是 DAX 中最重要、最強大的函數。甚至流傳著一句話:
「學會了 CALCULATE,你就學會了 DAX 的一半。」
這句話一點也不誇張。因為 Calculate DAX 函數正是 DAX 引擎的核心,是你從一個只會拖拉欄位的「拉圖表專員」,蛻變為能洞悉數據背後真相的「數據分析師」的關鍵鑰匙 🔑。
但問題是,大多數教學都把它講得太複雜、太學術了。什麼「篩選上下文的轉換」、「擴展表」、「列上下文轉移」... 這些名詞足以勸退 90% 的新手。
這篇文章的目標只有一個:徹底撕掉 CALCULATE
可怕的標籤。我們將用最簡單的比喻,帶你理解它的核心運作邏輯,並掌握它足以改變遊戲規則的三大超能力。
🎁 邊讀邊做,學得更快!
我為這篇文章準備了一份專屬的 Power BI 練習檔 (.pbix
),內含所有範例資料。免費訂閱我的電子報,即可立即前往會員資源中心下載,跟著文章一起動手操作!
掌握 Power BI Calculate 函數前的必修課:篩選上下文 (Filter Context)
在我們召喚 CALCULATE
這隻神獸之前,必須先理解它所處的「棲息地」——也就是 Power BI 的篩選上下文 (Filter Context)。
忘掉所有複雜的定義,你只需要記住這個極簡的比喻:
Power BI 報表上的每一個數字,都活在一個被下了多重指令的「超級篩選框」裡。

想像上面這張圖。當你看著「北區」對應「服飾」的那個銷售額數字時,那個數字背後其實有一張隱形的「指令清單」:
- 指令1 (來自交叉分析篩選器): 「只看 2024 年的訂單!」
- 指令2 (來自矩陣的『資料列』): 「只看『北區』的訂單!」
- 指令3 (來自矩陣的『資料行』): 「只看『服飾』類別的產品!」
Power BI 引擎會拿著這張完整的指令清單,去你的原始資料表中,篩選出完全符合所有指令的數據,然後才進行加總。這個由所有外部篩選器、圖表行列共同組成的「指令清單」,就是篩選上下文。
記住這點: 在沒有 Power BI Calculate 的情況下,你的所有量值 (Measure) 都會 100% 聽話地遵守這個「篩選框」裡的每一條指令。
而 CALCULATE
的出現,就是為了打破這個規則。
徹底解析 Power BI Calculate 函數的三大超能力
CALCULATE
的語法很簡單:
CALCULATE( <你要計算的運算式>, <篩選條件1>, <篩選條件2>, ... )
它的第一個參數是你原本的量值(例如 [總銷售額]
),而後面所有的參數,都是你對那個「超級篩選框」下的新指令。這些新指令,會讓它展現出三種強大的超能力。
Calculate 函數超能力一:新增篩選 (Add a Filter) 🚀
這是 Calculate 函數最基本、也最直觀的能力:在現有的篩選框裡,再增加一條新的指令。
假設老闆想知道:「我們所有通路在 2024 年,藍色產品的總銷售額是多少?」
如果沒有 CALCULATE
,你可能需要把「顏色」這個欄位也拉到交叉分析篩選器,然後手動點選「藍色」。但 CALCULATE
讓你可以在量值裡直接寫死這個條件:
藍色產品銷售額 =
CALCULATE(
[總銷售額],
'Dim_Products'[Color] = "藍色"
)
當你把這個量值放到報表上時,它會發生什麼事?

它會先繼承原本「超級篩選框」裡的所有指令(例如:2024 年、北區),然後,它會再額外加上一條我們寫死的新指令:「而且,產品顏色必須是藍色!」。
這就是「新增篩選」,簡單直接,威力強大。
Calculate DAX 超能力二:覆蓋/修改篩選 (Overwrite a Filter) 👑
現在,準備好見證 Calculate DAX 最霸道、也最神奇的地方了。
如果我們下的新指令,跟「超級篩選框」裡已有的指令發生衝突,會發生什麼事?
答案是:CALCULATE
的指令會獲勝!
假設你的報表長這樣,你已經在交叉分析篩選器上選擇了「藍色」:

現在,你想新增一個指標,叫做「紅色產品的銷售額」,無論外部怎麼篩選,它都只計算紅色的部分。你可以這樣寫:
紅色產品銷售額 =
CALCULATE(
[總銷售額],
'Dim_Products'[Color] = "紅色"
)
當你把這個量值放進來,神奇的事情發生了:

看到了嗎?儘管整個報表的「篩選框」已經被下了「只看藍色」的指令,但 [紅色產品銷售額]
這個量值完全無視它。
它的內心戲是: 「哦,外部篩選器說要看『藍色』?但我老闆 CALCULATE
說了,要看『紅色』。聽老闆的!」
Calculate DAX 的篩選條件會覆蓋掉來自外部、針對同一個欄位的篩選條件。這個能力是進行各種複雜比較分析的基礎,例如計算特定產品線對整體營收的貢獻,而不需要更動使用者的篩選。
Power BI Calculate 超能力三:搭配 ALL 移除篩選 (Remove a Filter) 💥
Power BI Calculate 不僅能新增和修改指令,它甚至能直接「撕掉」篩選框裡的某條指令。而幫助它完成這件事的,就是它的最佳拍檔:ALL
函數。
最經典的商業問題:「各產品佔總銷售額的百分比是多少?」
這個指標的公式是:該產品的銷售額 / 所有產品的總銷售額
。
「該產品的銷售額」很簡單,就是 [總銷售額]
這個量值。但「所有產品的總銷售額」這個分母該怎麼算?
看看下面這張圖:

當計算「服飾」那一列時,篩選框裡的指令是「只看服飾」。如果我們只用 [總銷售額]
當分母,那結果也會是 $74,373,276,佔比永遠是 100%。
我們需要一個量值,它能無視「產品類別」這個篩選指令,永遠返回所有產品的總銷售額。這就是 Power BI Calculate + ALL
的用武之地:
所有類別總銷售額 =
CALCULATE(
[總銷售額],
ALL('Dim_Products'[Category])
)
ALL('Dim_Products'[Category])
的作用就像一張「豁免卡」,它告訴 CALCULATE
:「嘿,把篩選框裡所有關於『產品類別』的指令都暫時撕掉,然後再計算!」
於是,無論在哪一列,這個量值都能正確地計算出分母 $382,225,110,讓我們能完成佔比的計算。
進階觀念:為何每個 Calculate DAX 篩選都是一個表函數?
你可能會發現,CALCULATE
的篩選參數寫法很多樣,例如 'Dim_Products'[Color] = "藍色"
,或是 ALL('Dim_Products'[Category])
。
這裡有一個進階但非常重要的觀念:CALCULATE
的所有篩選參數,本質上都是「表函數 (Table Functions)」。
'Dim_Products'[Color] = "藍色"
其實是一個語法糖 (syntactic sugar),它在背後會被轉換成FILTER(ALL('Dim_Products'[Color]), 'Dim_Products'[Color] = "藍色")
。ALL()
本身就是一個會返回一張「移除了篩選的表」的表函數。
你現在不需要完全搞懂這背後的複雜機制,但請記住這個概念。當你未來遇到更複雜的篩選需求,需要用到 FILTER
、KEEPFILTERS
等函數時,這個觀念會幫助你更快地理解它們是如何與 Calculate DAX 協同作戰的。
結論:善用 Power BI Calculate 函數,成為數據分析高手
讓我們回到開頭的那句話:「學會了 CALCULATE,你就學會了 DAX 的一半。」
現在,你應該能體會到它的真實含義了。Power BI Calculate 函數賦予了你修改、覆蓋和移除「篩選上下文」的終極權力。掌握了它,你就能:
- 新增條件,進行更精細的分析。
- 覆蓋條件,進行不受外部干擾的特定比較。
- 移除條件,計算佔比、排名等高價值的商業指標。
CALCULATE
正是你從被動地「拉圖表」,進化到主動地「用數據回答商業問題」的關鍵鑰匙。它將解放你的分析潛力,讓你真正開始用數據創造價值。
下一步:將您的 Calculate DAX 技巧付諸實踐
🚀 準備好接受更深度的挑戰了嗎?
理解 CALCULATE
的三大超能力只是第一步。在真實的商業世界裡,你會遇到更複雜的場景,需要將這些能力與時間智慧、迭代函數等結合起來。
如果你已經準備好,想將這套「超級篩選器」應用在真實的商業專案中,我誠摯地邀請你加入我在 Hahow 好學校的線上課程。
【Power BI x AI 終極實戰:打造高效數據分析工作流】
在這門課程中,我們有超過 5 小時的 DAX 專門單元,會帶你逐行拆解 CALCULATE
在「潛在旅客分析」、「人力資源分析」等真實專案中的應用。這不只是一堂工具課,更是一趟將你打造成真正數據專家的旅程。
👉 點擊這裡,立即加入超過千名學員的行列,將 DAX 從你的夢魘,變為你的超能力!
延伸閱讀:權威資源參考
為了幫助你更全面地理解 CALCULATE 函數背後的運作原理,並為未來的進階學習鋪路,我為你整理了以下幾份由官方及業界公認權威所撰寫的資源。當你準備好挑戰更深層的知識時,它們會是你的最佳指南:
- CALCULATE function (DAX) - Microsoft Learn
- 來源: Microsoft 官方文件
- 摘要: 這是
CALCULATE
函數最原始、最權威的定義。當你對任何參數或行為有疑問時,都應該回到這裡尋找最標準的答案。
- The Definitive Guide to CALCULATE - SQLBI
- 來源: SQLBI (由 Marco Russo 與 Alberto Ferrari 撰寫)
- 摘要: Marco 和 Alberto 是 DAX 領域的頂尖大師,被譽為 DAX 之父。這篇文章深入剖析了
CALCULATE
的每一個細節,包括篩選上下文的轉換、內部運作機制等,是從入門邁向專家的必讀經典。
- DAX 101: Introducing CALCULATE in DAX
- 來源: DAX Guide (同樣由 SQLBI 維護)
- 摘要: 相較於長篇文章,DAX Guide 提供了更簡潔、易於查詢的語法和範例說明。當你需要快速查閱
CALCULATE
的特定用法時,這裡是最好的去處。