iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
AI & Data

Power BI 資料分析與技術運用系列 第 15

D-15.Power BI的Dax資料表函數

  • 分享至 

  • xImage
  •  

在Power BI進行常見的資料表函數,需要佐以純量函數,這樣可以用於導出量值和導出資料行,以便對資料進行過濾、擷取等加工,再進行運算。

【篩選與清除篩選】
要在Power BI中進行條件篩選,用語法結構是:

FILTER (<資料表>,<篩選條件>)

舉例:要從台糖的歷史資料庫中,要計算「"單價"大於50元的包裝價總和」,需要從資料中,篩選出符合條件的資料後再計算。

由於SUMx是純量函數,「逐一筆數進行計算」為其第一個引數,故能替換為任一可回傳資料表的函數。以filter函數進行篩選,符合條件的紀錄會以資料表的形式回傳到SUMx匯合,產生純量值的結果。可以利用導出資料表來檢視函數的計算結果。
另外,搭配邏輯函數、邏輯運算子,使FILTER寫成巢狀結構滿足多個過濾條件的語法,這時的執行順序是由內而外,所以建議將大範圍先放內層,這樣可以提供執行效率:

FILTER(<資料表>,AND(<篩選條件1>,<篩選條件2>))
FILTER(<資料表>,<篩選條件1>&&<篩選條件2>)
FILTER(FILTER(<資料表>,<篩選條件1>,<篩選條件2>)

DAX進行移除篩選的常用函數是All\AllExpect\AllSelected,功能分別如下:
• All:忽略已套用篩選,回傳所有值給資料表,且引數為資料行時,會排除重複。
• AllExcept:意旨除了指定,其餘資料行移除。
• AllSelected:保留來自外部過濾,忽略查詢內的篩選,回傳所有值。

這三種情的語法分別如下:

ALL([<資料表/行>][,<資料行>[,…]]]])
ALLEXCEPT(<資料表>,<資料行>[,<資料行>]]]])
ALLSELECTED([<資料表\行>][,<資料表>[,…]]]])

【排除重複的函數】
前面的ALL函數,在引數為資料行時,會排除重複的資料。此外還有兩個類似效果的和樹可以用。
• VALUES:限制指定既存的資料表。如果參考的資料表以建立關聯,則沒關聯的會產生空白資料。
• DISTINCT:以資料表函數作為引數。

VALUES(<資料表\行>)
DISTINCT(<資料表\行、運算式>)


上一篇
D-14.在Power BI建立關聯資料
下一篇
D-16.在Power BI管理DAX語境與函數篩選
系列文
Power BI 資料分析與技術運用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言