一篇搞懂 Power BI 最強函數:CALCULATE 完全解析 (附實戰練習檔)

覺得 DAX CALCULATE 函數很難嗎?這篇終極指南將用「超級篩選器」的簡單比喻,帶你徹底搞懂它新增、覆蓋與移除篩選的三大超能力。文章附有免費實戰練習檔,讓你從此駕馭 DAX,不再害怕!

一篇搞懂 Power BI 最強函數:CALCULATE 完全解析 (附實戰練習檔)

你好,我是 Kiro。

在深入 DAX 的世界前,如果你對 Power BI 的核心概念與三大模組還不熟悉,我強烈建議你先閱讀《Power BI 是什麼?2025 年終極指南》,它會為你打下最穩固的基礎。

如果你曾在學習 Power BI DAX 的路上感到挫折,相信我,你並不孤單。而在那條陡峭的學習曲線上,有一座幾乎所有人初次見面都會感到恐懼的大山,它的名字,叫做 CALCULATE

網路上有無數文章告訴你,它是 DAX 中最重要、最強大的函數。甚至流傳著一句話:

「學會了 CALCULATE,你就學會了 DAX 的一半。」

這句話一點也不誇張。因為 CALCULATE 正是 DAX 引擎的核心,是你從一個只會拖拉欄位的「拉圖表專員」,蛻變為能洞悉數據背後真相的「數據分析師」的關鍵鑰匙 🔑。

但問題是,大多數教學都把它講得太複雜、太學術了。什麼「篩選上下文的轉換」、「擴展表」、「列上下文轉移」... 這些名詞足以勸退 90% 的新手。

這篇文章的目標只有一個:徹底撕掉 CALCULATE 可怕的標籤。我們將用最簡單的比喻,帶你理解它的核心運作邏輯,並掌握它足以改變遊戲規則的三大超能力。

🎁 邊讀邊做,學得更快!
我為這篇文章準備了一份專屬的 Power BI 練習檔 (.pbix),內含所有範例資料。免費訂閱我的電子報,即可立即前往會員資源中心下載,跟著文章一起動手操作!

前置觀念:我們先聊聊什麼是「篩選上下文 (Filter Context)」

在我們召喚 CALCULATE 這隻神獸之前,必須先理解它所處的「棲息地」——也就是 Power BI 的篩選上下文 (Filter Context)

忘掉所有複雜的定義,你只需要記住這個極簡的比喻:

Power BI 報表上的每一個數字,都活在一個被下了多重指令的「超級篩選框」裡。

想像上面這張圖。當你看著「北區」對應「服飾」的那個銷售額數字時,那個數字背後其實有一張隱形的「指令清單」:

  • 指令1 (來自交叉分析篩選器): 「只看 2024 年的訂單!」
  • 指令2 (來自矩陣的『資料列』): 「只看『北區』的訂單!」
  • 指令3 (來自矩陣的『資料行』): 「只看『服飾』類別的產品!」

Power BI 引擎會拿著這張完整的指令清單,去你的原始資料表中,篩選出完全符合所有指令的數據,然後才進行加總。這個由所有外部篩選器、圖表行列共同組成的「指令清單」,就是篩選上下文

記住這點: 在沒有 CALCULATE 的情況下,你的所有量值 (Measure) 都會 100% 聽話地遵守這個「篩選框」裡的每一條指令。

CALCULATE 的出現,就是為了打破這個規則。


CALCULATE 的三大超能力

CALCULATE 的語法很簡單:

CALCULATE( <你要計算的運算式>, <篩選條件1>, <篩選條件2>, ... )

它的第一個參數是你原本的量值(例如 [總銷售額]),而後面所有的參數,都是你對那個「超級篩選框」下的新指令。這些新指令,會讓它展現出三種強大的超能力。

超能力一:新增篩選 (Add a Filter) 🚀

這是 CALCULATE 最基本、也最直觀的能力:在現有的篩選框裡,再增加一條新的指令。

假設老闆想知道:「我們所有通路在 2024 年,藍色產品的總銷售額是多少?」

如果沒有 CALCULATE,你可能需要把「顏色」這個欄位也拉到交叉分析篩選器,然後手動點選「藍色」。但 CALCULATE 讓你可以在量值裡直接寫死這個條件:

藍色產品銷售額 = 
CALCULATE(
    [總銷售額],
    'Dim_Products'[Color] = "藍色"
)

當你把這個量值放到報表上時,它會發生什麼事?

它會先繼承原本「超級篩選框」裡的所有指令(例如:2024 年、北區),然後,它會再額外加上一條我們寫死的新指令:「而且,產品顏色必須是藍色!」。

這就是「新增篩選」,簡單直接,威力強大。


超能力二:覆蓋/修改篩選 (Overwrite a Filter) 👑

現在,準備好見證 CALCULATE 最霸道、也最神奇的地方了。

如果我們下的新指令,跟「超級篩選框」裡已有的指令發生衝突,會發生什麼事?

答案是:CALCULATE 的指令會獲勝!

假設你的報表長這樣,你已經在交叉分析篩選器上選擇了「藍色」:

現在,你想新增一個指標,叫做「紅色產品的銷售額」,無論外部怎麼篩選,它都只計算紅色的部分。你可以這樣寫:

紅色產品銷售額 = 
CALCULATE(
    [總銷售額],
    'Dim_Products'[Color] = "紅色"
)

當你把這個量值放進來,神奇的事情發生了:

看到了嗎?儘管整個報表的「篩選框」已經被下了「只看藍色」的指令,但 [紅色產品銷售額] 這個量值完全無視它。

它的內心戲是: 「哦,外部篩選器說要看『藍色』?但我老闆 CALCULATE 說了,要看『紅色』。聽老闆的!」

CALCULATE 的篩選條件會覆蓋掉來自外部、針對同一個欄位的篩選條件。這個能力是進行各種複雜比較分析的基礎,例如計算特定產品線對整體營收的貢獻,而不需要更動使用者的篩選。


超能力三:移除篩選 (Remove a Filter) 💥

CALCULATE 不僅能新增和修改指令,它甚至能直接「撕掉」篩選框裡的某條指令。而幫助它完成這件事的,就是它的最佳拍檔:ALL 函數。

最經典的商業問題:「各產品佔總銷售額的百分比是多少?

這個指標的公式是:該產品的銷售額 / 所有產品的總銷售額

「該產品的銷售額」很簡單,就是 [總銷售額] 這個量值。但「所有產品的總銷售額」這個分母該怎麼算?

看看下面這張圖:

當計算「服飾」那一列時,篩選框裡的指令是「只看服飾」。如果我們只用 [總銷售額] 當分母,那結果也會是 $74,373,276,佔比永遠是 100%。

我們需要一個量值,它能無視「產品類別」這個篩選指令,永遠返回所有產品的總銷售額。這就是 CALCULATE + ALL 的用武之地:

所有類別總銷售額 = 
CALCULATE(
    [總銷售額],
    ALL('Dim_Products'[Category])
)

ALL('Dim_Products'[Category]) 的作用就像一張「豁免卡」,它告訴 CALCULATE:「嘿,把篩選框裡所有關於『產品類別』的指令都暫時撕掉,然後再計算!

於是,無論在哪一列,這個量值都能正確地計算出分母 $382,225,110,讓我們能完成佔比的計算。


一個常見的錯誤與提醒

你可能會發現,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() 本身就是一個會返回一張「移除了篩選的表」的表函數。

你現在不需要完全搞懂這背後的複雜機制,但請記住這個概念。當你未來遇到更複雜的篩選需求,需要用到 FILTERKEEPFILTERS 等函數時,這個觀念會幫助你更快地理解它們是如何與 CALCULATE 協同作戰的。


結論:開始駕馭你的超級篩選器

讓我們回到開頭的那句話:「學會了 CALCULATE,你就學會了 DAX 的一半。」

現在,你應該能體會到它的真實含義了。CALCULATE 賦予了你修改、覆蓋和移除「篩選上下文」的終極權力。掌握了它,你就能:

  • 新增條件,進行更精細的分析。
  • 覆蓋條件,進行不受外部干擾的特定比較。
  • 移除條件,計算佔比、排名等高價值的商業指標。

CALCULATE 正是你從被動地「拉圖表」,進化到主動地「用數據回答商業問題」的關鍵鑰匙。它將解放你的分析潛力,讓你真正開始用數據創造價值。


下一步:從理論到實戰

🎁 下載練習檔,親手操作!

紙上談兵終覺淺,絕知此事要躬行。為了讓你真正掌握 CALCULATE 的威力,我已經準備好了這篇文章的完整 Power BI 練習檔 (.pbix),包含所有範例資料和 DAX 量值。

立即免費訂閱我的「人生算法」實踐筆記,即可前往會員資源中心下載練習檔!

🚀 準備好接受更深度的挑戰了嗎?

理解 CALCULATE 的三大超能力只是第一步。在真實的商業世界裡,你會遇到更複雜的場景,需要將這些能力與時間智慧、迭代函數等結合起來。

如果你已經準備好,想將這套「超級篩選器」應用在真實的商業專案中,我誠摯地邀請你加入我在 Hahow 好學校的線上課程。

【Power BI x AI 終極實戰:打造高效數據分析工作流】

在這門課程中,我們有超過 5 小時的 DAX 專門單元,會帶你逐行拆解 CALCULATE 在「潛在旅客分析」、「人力資源分析」等真實專案中的應用。這不只是一堂工具課,更是一趟將你打造成真正數據專家的旅程。

👉 點擊這裡,立即加入超過千名學員的行列,將 DAX 從你的夢魘,變為你的超能力!

Read more

n8n 自動化流程選擇最佳資料庫:Google Sheets、Notion、Airtable 與 Baserow 深度對決

n8n 自動化流程選擇最佳資料庫:Google Sheets、Notion、Airtable 與 Baserow 深度對決

在為我的 n8n 自動化流程尋找完美資料庫的旅程中,我深度評比了 Google Sheets、Notion、Airtable 與 Baserow。從最初的熟悉工具,到專業級的正面對決,這不僅是一場技術選擇,更是一場關於成本、擴展性與未來自由的戰略思考。最終,我找到了一條從 Baserow 雲端版起步,邁向 Zeabur 自架無限宇宙的最佳路徑。一同來看看我的完整決策過程。

By Kiro