Power BI - 篩選上下文(context)與CALCULATE函數的計算概念
目錄
- 篩選上下文是什麼
- CALCULATE()
- Excel樞紐分析表的明細表
- 簡單來說
- 篩選上下文是什麼
- 篩選上下文是來自於英文單字「context」,本意是語境、前後關係、文章的上下文
- 如果我們才剛開始接觸,可以先把篩選上下文想像成是經過了篩選之後的環境、整體情況
- 實際上,篩選上下文是數據模型中的基礎表經過所有篩選器的交互之後,最終得到的可見數據(先看過就好,後面再慢慢理解)
- 基礎表:數據模型中存在的表
- 篩選器:可以想像成是篩選的條件
- 可見數據:參與計算的數據
- CALCULATE()
- 如果我們只放第一參數
量值1 = CALCULATE(SUM('支出'[交易金額]))
- 我們要計算的表達式,即是對交易金額做加總
- 這時在Power BI中使用資料表這個視覺效果,放入一級分類與量值1
- 如果我們再放入第二參數
量值2 = CALCULATE(SUM('支出'[交易金額]), '支出'[日期] >= DATE(2022, 10, 1))
- 我們一樣要計算交易金額的加總,而這個計算會是基於日期在2022-10-01之後的數據來做計算的
- 將量值2放入資料表
- 實際上,量值是在放入了視覺效果中才會開始計算的,也就是CALCULATE()是在放入了視覺效果中才開始計算的,內部篩選器會與外部計值環境交互後生成了篩選上下文,在這個已修改的篩選上下文中計算第一參數的表達式
- 外部計值環境:對某個函數而言,在其開始計算時就已經存在的計值環境
- 我們試著以例子來看看CALCULATE()與篩選上下文的關係
- 以量值2在一級分類為交通的那一列(row)為例,如圖中紅框
- 對於CALCULATE()來說,外部計值環境只有一個篩選器為
'支出'[一級分類] = "交通"
,其來自於資料表的列標籤 - 初始篩選器:資料表(矩陣)的列標籤、篩選窗格、交叉分析篩選器、圖表聯動(順帶一提,之後的篇章會再多做提及)
- 對於CALCULATE()來說,內部篩選器只有一個篩選器為
'支出'[日期] >= DATE(2022, 10, 1)
- 這時候所有的篩選器交互,也就是內部篩選器會與外部計值環境的篩選器交互,成為篩選器組合為
'支出'[一級分類] = "交通" && '支出'[日期] >= DATE(2022, 10, 1)
- 篩選器組合會對數據模型中的基礎表做篩選,得出最終的可見數據,也就是已修改的篩選上下文
- 在已修改的篩選上下文中計算第一個參數的表達式
SUM('支出'[交易金額])
- 因此一級分類為交通的那一列,在量值2的數值即為1420
- Excel樞紐分析表的明細表
- 在Excel中,如果我們對樞紐分析表的單元格雙擊就會出現明細表,其實就是該單元格的篩選上下文
- 建立樞紐分析表
- 在樞紐分析表中的單元格以滑鼠雙擊
- 雙擊後跑出來的明細表,其實就是樞紐分析表中我們所雙擊的單元格的篩選上下文,也就是該單元格最終的可見數據,因此對交易金額做加總後會得到1420
- 簡單來說
- 篩選上下文:數據模型中的基礎表經過所有篩選器的交互之後,最終得到的可見數據
- CALCULATE():在已修改的篩選上下文中計算第一個參數的表達式
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容 你可能也想看
發表回應
© 2024 vocus All rights reserved.