--- tags: 固定講義 --- # 大數據分析及互動式視覺效果-PowerBI ## 課程資訊 ### 本頁面網址 https://reurl.cc/6Ey7Vb 講師:李燕秋老師 ([FB](https://www.facebook.com/Hyonith2014/?ref=hl) / [YT](https://www.youtube.com/channel/UC8LZYIbGBOhTApJ09y9ldnQ)) :::danger ## [20240325課程素材](https://gesoft-my.sharepoint.com/:u:/g/personal/kris_gesoft_onmicrosoft_com/ESjGyj-Wj9tJnTrKrfmKhE4BFC788IWFMvEwd0NLCQux6A?e=VNr2VG) ::: --- <!-- * 素材下載 https://gesoft-my.sharepoint.com/:u:/g/personal/kris_gesoft_onmicrosoft_com/EXiRu0YyvyhEkbObOqTBnf0BizcGvMFDxQUcJ5km-PTDUg?e=N7bgQe ![](https://i.imgur.com/QnS82m9.png =30%x) ![](https://i.imgur.com/CoWYf27.png =30%x) * 說明簡報 https://gesoft-my.sharepoint.com/:p:/g/personal/kris_gesoft_onmicrosoft_com/EfIW6Y_RLyJIqUvkV5uPmh0BEDQrZzlxc356bAbswhwrcg?e=WAN3ll --> --- ## PowerBI Desktop 下載及註冊(只支援Windows,不支援MAC) ::: spoiler 軟體下載點我打開 * 目前最新版(進入後要按「查看下載或語言選項」,選擇中文繁體下載及安裝![](https://i.imgur.com/SGxCmlC.png =30%x)https://powerbi.microsoft.com/zh-tw/desktop/ * 下載及安裝PowerBI說明文件 https://hackmd.io/@hyonith/rkdFnqU8Y * 各版本的BI https://docs.microsoft.com/zh-tw/power-bi/desktop-latest-update-archive#december-2019-update-2765678661 * [Win7作業系統](https://gesoft-my.sharepoint.com/:u:/g/personal/kris_gesoft_onmicrosoft_com/ER7lDdJgL5dClk9d-JaXMMABtpnsnFVzTbkbo5njmavL9A?e=kCDlIM) * 免費版本註冊帳號 https://signup.microsoft.com/signup?sku=a403ebcc-fae0-4ca2-8c8c-7a907fd6c235&email=&ru=https%3A%2F%2Fapp.powerbi.com%3Fpbi_source%3Dweb%26redirectedFromSignup%3D1%26noSignUpCheck%3D1 * Microsoft Power BI Desktop (已針對 Power BI 報表伺服器最佳化 - 2021 年 5 月) https://www.microsoft.com/zh-tw/download/details.aspx?id=56723 * ![](https://i.imgur.com/atTVYjn.png =60%x) * 解法:所有檔案的工作表名稱要設成一樣的(資料夾匯入時的問題) ::: 儀表板範例 https://community.fabric.microsoft.com/t5/Data-Stories-Gallery/bd-p/DataStoriesGallery ### 將視覺效果發行及分享 * [內嵌報表](https://app.powerbi.com/view?r=eyJrIjoiNWQ5M2FlZWItZjQ1MS00OTgzLTgzMTctYTc1MmY5MTJmMmYwIiwidCI6ImYzNjZhYzdhLTVhNzUtNDVhNy04YWNiLWI1NTlmMzI2YjMwZSIsImMiOjEwfQ%3D%3D) <iframe title="20230609薪資資料" width="600" height="373.5" src="https://app.powerbi.com/view?r=eyJrIjoiNWQ5M2FlZWItZjQ1MS00OTgzLTgzMTctYTc1MmY5MTJmMmYwIiwidCI6ImYzNjZhYzdhLTVhNzUtNDVhNy04YWNiLWI1NTlmMzI2YjMwZSIsImMiOjEwfQ%3D%3D" frameborder="0" allowFullScreen="true"></iframe> * PowerBI增益集-Microsoft PowerBI / Web Viewer ![](https://i.imgur.com/YvLPZ96.png =60%x) * 管理員開啟PowerBI 發行至WEB選項 * https://www.notion.so/PowerBI-WEB-6da7b40890be4737a57bfbbd66959cfd * 登入管理員後台 * https://admin.microsoft.com/AdminPortal/Home#/alladmincenters ![](https://i.imgur.com/NwkQ8iv.png =80%x) --- ### 範例 * 政府單位範例-審計部 https://www.audit.gov.tw/ https://odap.audit.gov.tw/BIReport/pwbi.html * 政府資料開放平台 https://data.gov.tw/ * 案例分析-動畫條型圖 * 資料來源-傳染病統計資料查詢系統 https://nidss.cdc.gov.tw/ch/SingleDisease.aspx?dc=1&dt=5&disease=19CoV * Coronavirus Source Data https://ourworldindata.org/coronavirus-source-data * Animated Bar Chart Race(動畫條型圖) ![](https://i.imgur.com/2OPMVYS.png) ## 外掛視覺效果 下載視覺效果(須登入帳號) https://appsource.microsoft.com/en-us/marketplace/apps?page=1&src=office&product=power-bi-visuals * Scroller 跑馬燈 * https://drive.google.com/file/d/107Sn7FNgj5l2Q0lIb-mrUNBJVwY_1U2j/view?usp=sharing * **Word Cloud 文字雲** * https://drive.google.com/file/d/107Sn7FNgj5l2Q0lIb-mrUNBJVwY_1U2j/view?usp=sharing * **Enlighten Aquarium 水族箱** * https://drive.google.com/file/d/10CAJMkWcJHGAwnLpCQcnLjKnAz7hHdHP/view?usp=sharing * beyondsoft calendar * https://drive.google.com/file/d/107Sn7FNgj5l2Q0lIb-mrUNBJVwY_1U2j/view?usp=sharing * gantt 甘特圖 * https://drive.google.com/file/d/107Sn7FNgj5l2Q0lIb-mrUNBJVwY_1U2j/view?usp=sharing * **書附光碟中的視覺效果** * https://drive.google.com/file/d/1lMEzafvm8vbcdEtugXX5PRMhHro8329S/view?usp=sharing * 外掛視覺效果 https://xviz.com/pricing/ ## 關係模型:數據建模概念 Lookup表(維度表)-交易表&數據表(事實表)-資料表 關聯的重要性 * 視覺化是資料的展現形式 PowerView * 資料查詢是基礎資料處理 PowerQuery * 資料建模為真正意義的度量 PowerPivot <iframe width="600" height="373.5" src="https://app.powerbi.com/view?r=eyJrIjoiMTU5ZDU0NzItZWRlMS00MWNlLWE0YTEtNzE3ZDVjYjM0YzIzIiwidCI6ImYzNjZhYzdhLTVhNzUtNDVhNy04YWNiLWI1NTlmMzI2YjMwZSIsImMiOjEwfQ%3D%3D" frameborder="0" allowFullScreen="true"></iframe> --- ## 地圖功能無法顯示之解法:設定完成要關閉BI後重新開啟專案檔 ![image](https://hackmd.io/_uploads/SyJyZ2hQ6.png) ![image](https://hackmd.io/_uploads/SJGkW2n7a.png) --- ## Google 問卷補充資料 ::: spoiler 點我打開 ### 規則運算式 [語法內容](https://support.google.com/a/answer/1371415?hl=zh-Hant) * 範例 * 只能夠打10位數電話,並且開頭要是09 * ^09{1}[0-9]{8} * 打五個文字 * ^.{5} ### Google表單外掛套件 - Google表單外掛套件「formLimiter」,可設定人數與截止日期 > https://workspace.google.com/marketplace/app/formlimiter/538161738778 > - Form Notifications - Google表單提交後電子郵件提醒 > https://workspace.google.com/marketplace/app/form_notifications/573009629797 > - FormRanger 可設定選項答案的選擇上限,超過即呈現額滿內容 > https://workspace.google.com/marketplace/app/form_ranger/387838027286 ![image.png](https://hackmd.io/_uploads/r1SgeDQm6.png) * 選項消失: ``` =IF(C2<D2,B2,"") ``` * 改敘述 ``` =IF(C3<D3,B3,"名額已額滿,後續報名將以候補方式等候遞補") ``` ::: ## 與Google 試算表介接 若要使用上面的資料來源,請將網址複製後再貼至文字檔中,再複製回PowerBI * 將後面edit?usp=sharing改成export?format=xlsx 圖示 ![](https://i.imgur.com/oVw1xfa.png) * 於Power BI中,以WEB方式取得資料 * 後續如有新增了問卷的填寫,點選重新整理即可 ![](https://i.imgur.com/BJ5K0nr.png) ## 與One Drive 介接 ## One Drive 1.先點選檔案,選擇在Excel Online中開起 2.於Excel Online中,點選[檔案]>[共用]>[內嵌],複製內嵌程式碼 3. 將內嵌程式碼中src="開始複製到em=2結束[紅色區段] 4.於PowerBI中,選擇以WEB匯入,將紅色區段貼上後,將其中embed改為download,後段加上&app=Execl 5.確定後,即將資料匯入 https://onedrive.live.com/**download**?resid=AAXXXX @&authkey=AAXXXXXXX&em=x&app=Excel 內嵌程式碼範例: ``` > iframe width="402" height="346" frameborder="0" scrolling="no" src="https://onedrive.live.com/**embed**?resid=A7ABFC95198FF0DA%2111116&authkey=%21AKuCgRAJMDMdWHU&em=2&wdAllowInteractivity=False&wdHideGridlines=True&wdHideHeaders=True&wdDownloadButton=True&wdInConfigurator=True"></iframe ``` PowerBI中 ``` https://onedrive.live.com/download?resid=A7ABFC95198FF0DA%2111116&authkey=%21AKuCgRAJMDMdWHU&em=2&app=excel ``` ## SharePoint 1. 先點選檔案,選擇在Excel中開啟 ![image.png](https://hackmd.io/_uploads/HJvId87mp.png) 2.於Excel中,點選[檔案]>[資訊]>[複製路徑] ![image.png](https://hackmd.io/_uploads/rJpSO8mQp.png) 3.於PowerBI的查詢中,以web方式查詢,並貼上路徑 https://gesoft-my.sharepoint.com/personal/jocker229_gesoft_onmicrosoft_com/Documents/%E5%95%8F%E5%8D%B7.xlsx?web=1  ** 此時要將網址後端的 ?web=1刪除  4.點選確定後即可匯入資料進來 5.若有更新資料,重新整理即可匯入 ## 其餘問卷 - SurveyCake 將問卷回覆匯入 Google 試算表,表單應用更彈性 不會程式沒關係!SurveyCake 手把手教學,讓你三分鐘就上手 但必須是Pro版本 https://blog.surveycake.com/survey-google-sheets-d9d97572b40c ## DAX 基本概念 ::: spoiler 點我打開 ## 何謂 DAX? Data Analysis Expressions 數據分析表達式 **幫助您從模型中的原始資料建立新資料出來。** Excel公式引用為儲存格(A1),而DAX公式直接引用某張表中的某欄名稱 例如 銷售量=sum ('銷售表'[數量]) 欄位名稱= 運算式 '資料表'[欄位] --- ### Related related(要傳回的欄位) 傳回另一個表中的相關值,類似Vlookup 類似Query中的合併查詢,但只能針對單一欄位合併且必須建立起關聯性 --- **行式儲存資料表(Column-based Storage)** 有時候在樞紐分析表或是POWER BI,原有的資料如果不能滿足我們的需要,就需要建立新的資料行以及量值。 但 建立前先認識一下資料行與量值 | 名稱| 說明| | -------- | -------- | | 資料行 | 必須存在表中| | 量值 | 以公式形式存在,不使用時不佔用記憶體 --- ### 量值 * 內隱式量值:加總,平均,最大值等 * 明確式量值:自己建的新計算欄位 撰寫DAX時先了解到以下的基本概念 ### * 資料類型 能被計算的數值,文字是不能被計算(除了計數),建議先確定好資料型態 ### * 運算子 ![](https://i.imgur.com/uLT5xey.jpg =80%x) ![](https://i.imgur.com/KOGkoua.jpg =80%x) ![](https://i.imgur.com/JGfyIiy.jpg =80%x) 雙線的打法 ![](https://i.imgur.com/5CFEl4S.jpg =80%x) ## DAX參考 * https://docs.microsoft.com/zh-tw/dax/  ## 聚合函數-計算器類型 * SUM 數值加總 -----SUMX * AVERAGE 數值平均-----AVERAGEX * MAX 最大值 * MIN 最小值 * CountRows('資料表')求列個數,以整張表來看,不用給欄位 * Counta 計算儲存格不為空的數量-----COUNTX * CountBlank 計算資料行中儲存格為空白的數量 * DistinctCount 不重複值(唯一值)的總數 averagex(資料表, 運算式) 1_平均成本_averagex = averagex('交易資料','交易資料'[成本_單價]*'交易資料'[數量]) 1_平均售價_averagex = averagex('交易資料','交易資料'[單價]*'交易資料'[數量]) countrows(資料表) 1_筆數_countrows = countrows('交易資料') 小備註: 1. countx : 計算數值型筆數 2. countax : 計算文字、數值、錯誤 / 非空白筆數 3. countrows : 計算筆數 迭代函數-X系列函數 https://www.powerbigeek.com/aggregate-x-functions/ * SUMX * https://docs.microsoft.com/zh-tw/dax/sumx-function-dax * AVERAGEX * https://docs.microsoft.com/zh-tw/dax/averagex-function-dax * Countrows https://docs.microsoft.com/zh-tw/dax/best-practices/dax-countrows ## 迭代函數 ### _新增量值_ sumx(資料表, 運算式) 1_售價_sumx = sumx('交易資料','交易資料'[單價]*'交易資料'[數量]) 1_成本_sumx = sumx('交易資料','交易資料'[成本_單價]*'交易資料'[數量]) --- 所有語法均須以半形輸入 成本_小計 = '交易資料'[成本_單價]X'交易資料'[數量] ![](https://i.imgur.com/RUezIzt.png) 售價小計 = '交易資料'[單價]X'交易資料'[數量] ![](https://i.imgur.com/5Kq29mg.png) 成本_單價 = RELATED('商品資料'[成本單價]) 單價 = RELATED('商品資料'[單價]) 回收獎勵金 = '交易資料'[數量] * 3 ![](https://i.imgur.com/GcpYx0D.png) 單價 = RELATED('商品資料'[單價]) 成本_單價 = RELATED('商品資料'[成本單價]) 售價小計 = '交易資料'[單價] * '交易資料'[數量] 成本_小計 = '交易資料'[成本_單價] * '交易資料'[數量] ## CALCULATE函數 `銷售筆數 = CALCULATE( COUNT('銷售'[單位價格]) , '銷售'[單位價格]>10 )` `銷售筆數 = CALCULATE( 計算器 , 篩選器1 ,... ) ` ![](https://i.imgur.com/tnKpsxZ.png) calculate(計算器, 篩選器[, 篩選器2][, 篩選器3]) 2_大筆_售價 = calculate('交易資料'[1_售價_sumx], '交易資料'[數量]>=50) 2_大筆_筆數 = calculate('交易資料'[1_筆數_countrows], '交易資料'[數量]>=50) 使用篩選條件時,可搭配使用calculate函數將運算式套上篩選條件後,計算出符合條件的結果,這組合可以想像成Excel的Countif 當有多個篩選準則時,可以使用和 (&&) 邏輯運算子來評估它們,這表示所有條件都必須是 TRUE,或是由或 (| |) 邏輯運算子,表示任一個條件都可以是 true。 若要用三個以上要使用 in {A,b,c,d} 。 簡單地說在計算中套用一個或多個篩選來決定結果或值。 > in = CALCULATE([銷售量], > '產品表'[咖啡種類] in {"拿鐵","美式","卡布奇諾"}) ![](https://i.imgur.com/Mm9T5bQ.jpg =90%x) 若有特別要求,量值必須要限定資料行,若是要新增資料行,使用當前表中的資料行,則不受限 > 正確的寫法=CALCULATE([銷售量],'產品表'[咖啡種類]="拿鐵") > 錯誤的寫法=CALCULATE([銷售量],[咖啡種類]="拿鐵") 但若是量值要引用已建立的量值,則可以不限定資料表,且量值不是依附於表而存在的,可以放在任意表的下面。 ![](https://i.imgur.com/QEGwhtL.jpg =80%x) 可使用Alt+Enter or Shift+Enter來分隔公式 ## 篩選器 樞紐分析表中可以藉由**欄和列標籤的篩選按鈕以及交叉分析篩選器**來套用篩選內容 那在 DAX 中可以使用 **ALL, RELATED, FILTER, CALCULATE 和其他量值和資料行** 等來進行篩選。 | 名稱 | 內容| 範例 | | -------- | -------- | -------- | | ALL|忽略所有套用的篩選後傳回所有資料列或是資料行的所有值|`=ALL(<table>`) `=ALL(<table>,<table>[<column>],<table>[<column>],...)`| |FILTER|篩選表格中符合條件的資料列 *** 通常搭配整個資料表進行運算的公式|`= FILTER(<table>,<filter>)`| ### ALL 忽略所有套用的篩選條件(刪除篩選條件,擴大篩選範圍) ex: All銷售量 = calculate( [銷售量],all('銷售數據表')) 引用的資料行必須來自同一張表,若要多張來源,就要用all(),all(),all()... all(資料表) 3_售價_all = calculate('交易資料'[1_售價_sumx], all('交易資料')) 3_成本_all = calculate('交易資料'[1_成本_sumx], all('交易資料')) 3_大筆_售價_all = calculate('交易資料'[1_售價_sumx], filter('交易資料','交易資料'[數量]>=50), all('交易資料')) 或是 3_大筆_售價_all = CALCULATE('交易資料'[1_售價_sumx],'交易資料'[數量]>=50,all('交易資料')) <!-- 3_平均成本_all = calculate('交易資料'[1_平均成本_averagex], all('交易資料')) 3_平均售價_all = calculate('交易資料'[1_平均售價_averagex], all('交易資料')) --> #### Allexcept 除了指定列之外,清除篩選條件,也就是「除....之外」 ex: Allexcept = calculate(`[銷售量]`,`allexcept('產品表','產品表'[杯型])`) 杯型對資料篩選有影響,而其他不會對資料篩選有影響 #### Allselceted 對表中所顯示的篩選條件執行清除篩選,而其他篩選條件皆保留 ### 如何回傳個別項目數量? sum公式回傳來得全部總和,那如何針對個別項目加總? ### FILTER-進階篩選器 篩選器函數,無法單獨使用,通常與Calculate搭配,也可以與某些彙總函數搭配 例如 Countrows(Filter(資料表,篩選條件))來計算表的列數(筆數) 篩選表格中符合條件的資料列 FILTER('表',篩選條件) 何時會用到? 因之前的Calculate的條件只能針對固定值 (>10;=10;<>10 ..etc) 若要進一步判定就需用到Filter函數。 (可偵測資料行、量值、公式) 過濾 => `CALCULATE('銷售'[加總],FILTER('銷售','銷售'[銷售數量]>10)) ` 判定 => `CALCULATE('銷售'[加總],FILTER('銷售','銷售'[銷售數量]>'銷售'[銷售目標])) ` filter(資料表,篩選器) 2_大筆_售價 = calculate('交易資料'[1_售價_sumx], filter('交易資料','交易資料'[數量]>=50)) ### isfiltered isfiltered('交易資料'[店家名稱]) 判斷有無篩選 4_分店名_卡片 = if(isfiltered('交易資料'[店家名稱]),VALUES('交易資料'[店家名稱]),"未篩選") 4_分店營業額_卡片 = if(isfiltered('交易資料'[店家名稱]),'交易資料'[1_售價_sumx],"未篩選") --- 3_目標值 = {一個固定值, Ex: 300000} --- ## 日期智慧範圍 在使用這些公式前,需要先定義日期資料表 還有兩條限制 1. 必須為唯一值 2. 資料必須為連續值,不可有間隔 --> 除非日期資料有符合限制的條件,才考慮使用日期智慧範圍 | 名稱| 功用 | | -------- | -------- | | PREVIOUSDAY| 傳回前一日 | | PREVIOUSMONTH| 傳回前一月 | | PREVIOUSQUARTER| 傳回前一季| |PREVIOUSYEAR| 傳回前一年 | ## PARALLELPERIOD 平移期間 https://docs.microsoft.com/zh-tw/dax/parallelperiod-function-dax PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>) ![](https://i.imgur.com/5Xaqkce.jpg) ![](https://i.imgur.com/HzEpvjr.png) 8_上期_年 = CALCULATE('交易資料'[1_售價_sumx],PARALLELPERIOD('交易資料'[日期].[Date],-1,YEAR)) 8_季度_上期 = CALCULATE('交易資料'[1_售價_sumx],PARALLELPERIOD('交易資料'[日期].[Date],-4,QUARTER)) 8_月_上期 = CALCULATE('交易資料'[1_售價_sumx],PARALLELPERIOD('交易資料'[日期].[Date],-12,MONTH) ) ![](https://i.imgur.com/Dmqpvb1.png) ![](https://i.imgur.com/5sNDL1S.png) parallelperiod(日期,間隔數(可為負),間隔) ``` dax 8_年度_上期 = calculate('交易資料'[1_售價_sumx], parallelperiod('交易資料'[日期].[Date],-1,year)) 8_季度_上期 = calculate('交易資料'[1_售價_sumx], parallelperiod('交易資料'[日期].[Date],-4,quarter)) 8_月_上期 = calculate('交易資料'[1_售價_sumx], parallelperiod('交易資料'[日期].[Date],-12,month)) ``` --- # 營收成長率 營收成長率的計算方式,可以分為:**營收年增率(YoY)、營收季增率(QoQ)、營收月增率(MoM)**。 主要是將目前的總收入與某一時期(月、季、年)來進行比較,可以使不同公司(尤其是同行或市場中)之間的比較更容易,常用來衡量一間公司的成長與發展 ![](https://i.imgur.com/D754lhP.jpg) ![](https://i.imgur.com/bU5EXWy.png) ## YoY公式 ### 營收年增率(Year on Year,YoY) =(當年營收-去年營收)/去年營收x100% ### 營收季增率(Quarter On Quarter,QoQ) =當季營收-上季營收)/上季營收x100% ### 營收月增率(Month on Month,MoM) =(當月營收-上月營收)/上月營收100% YoYYoY年增長率(Year-on-year percentage,YoYYoY),是指當期的數據較去年同期變動多少,例如:甲公司今年11月營收115億元,去年11月營收為100億元,則營收YoY為15% 去(前)年**同期**都算YoY ### 說明 * 年增率的參考意義會比月增率高 * 原因1.產業有淡旺季之分,若和上個月、上一季比較很可能會有誤差 * 原因2.每月份天數不同,會產生誤差 其中,年營收有時候會用近四季營收合來計取代,年營收成長率和淨利成長率不一定相同,從季營收YoY來評估企業成長,因為年營收一年才能看一次,一般我們會使用季營收YoY來評估近期成長。 ![](https://i.imgur.com/SA6w0Gu.png) 3_20201101_20211031 = CALCULATE('交易資料'[0_sumx],DATESBETWEEN('交易資料'[日期],"2020/11/1","2021/10/31")) ![](https://i.imgur.com/zk1HirY.png) --- ### 營收年增率(Year on Year,YoY) =(當年營收-去年營收)/去年營收x100% ![](https://i.imgur.com/I068pPE.png) ![](https://i.imgur.com/3rpOLjI.png) ![](https://i.imgur.com/iHogXVZ.png) ### 營收季增率(Quarter On Quarter,QoQ) =當季營收-上季營收)/上季營收x100% 與去年同期的季比較 ![](https://i.imgur.com/VNFdFe8.png) ![](https://i.imgur.com/z9i7R0A.png) ![](https://i.imgur.com/sK3ERdz.png) ### 營收月增率(Month on Month,MoM) =(當月營收-上月營收)/上月營收100% 與去年同期的月比較 ![](https://i.imgur.com/UGSvlFk.png) ![](https://i.imgur.com/qtc7SRB.png) ![](https://i.imgur.com/hDZDG6Y.png) ![](https://i.imgur.com/YopKKd6.png =20%x) ### YoY寫法練習 6_營收年增率 = ('交易資料'[6_2021年度]-'交易資料'[6_2020年度])/'交易資料'[6_2020年度] ``` dax 6_2021年度 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2021) 6_2020年度 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2020) ``` 6_4月YoY = ('交易資料'[6_2021-4月]-'交易資料'[6_2020-4月])/'交易資料'[6_2020-4月] ``` dax 6_2021-4月 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2021,'交易資料'[月]=4) 6_2020-4月 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2020,'交易資料'[月]=4) ``` 6_第一季YoY = ('交易資料'[6_2021年度第一季]-'交易資料'[6_2020年度第一季])/'交易資料'[6_2020年度第一季] ``` dax 6_2021年度第一季 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2021,'交易資料'[季]=1) 6_2020年度第一季 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2020,'交易資料'[季]=1) ``` 或是 ``` dax 6_2021年度第一季 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2021,'交易資料'[月]<4) 6_2020年度第一季 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2020,'交易資料'[月]<4) ``` 5_202101 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2021,'交易資料'[月]=1) 5_202001 = calculate('交易資料'[1_售價_sumx], '交易資料'[年度]=2020,'交易資料'[月]=1) # 達成率 https://www.itsfun.com.tw/%E9%81%94%E6%88%90%E7%8E%87/wiki-422322 --- # if和switch邏輯判斷 if(條件,則,則) 第二個則可以省略,即傳回空值 switch 多條件 實例: switch = switch(TRUE(), '1-4月'[地區]="新北","北區", '1-4月'[地區]="台中","中區", '1-4月'[地區]="桃園","北區", '1-4月'[地區]="上海","大陸", "") 另一寫法 = switch('1-4月'[地區],"新北","北區","台中","中區","桃園","北區","") ``` dax 區域 = switch(TRUE(), '店家資料'[縣市]="台北市", "北區", '店家資料'[縣市]="新北市", "北區", '店家資料'[縣市]="台中市", "中區", "南區" ``` ![](https://i.imgur.com/mvsaVsV.png) 或是 ``` dax 區域 = switch('店家資料'[縣市], "台北市", "北區", "新北市", "北區", "台中市", "中區", "南區" ``` ![](https://i.imgur.com/LVrCXV9.png) 小技巧:shift + enter 可以維持縮排 --- 縣市2 = if('店家資料'[縣市]="高雄市", "Kaohsiung", '店家資料'[縣市]) --- 餐點滿意度文字 = SWITCH(TRUE(), '表單回應 1'[餐點滿意度]=1,"非常不滿意", '表單回應 1'[餐點滿意度]=2,"不滿意", '表單回應 1'[餐點滿意度]=3,"尚可", '表單回應 1'[餐點滿意度]=4,"滿意","非常滿意") --- 課程滿意度文字 = SWITCH(TRUE(), '表單回應 1'[課程滿意度?]=1,"非常不滿意", '表單回應 1'[課程滿意度?]=2,"不滿意", '表單回應 1'[課程滿意度?]=3,"尚可", '表單回應 1'[課程滿意度?]=4,"滿意", "非常滿意") 另一寫法 課程滿意度另一寫法 = SWITCH('表單回應 1'[課程滿意度?], 1,"非常不滿意", 2,"不滿意", 3,"尚可", 4,"滿意", "非常滿意") --- 薪資分群區間 = SWITCH(TRUE(), '人事資料表'[薪資分群]=<20000,"2萬以下", '人事資料表'[薪資分群]=<40000,"2萬到4萬", '人事資料表'[薪資分群]=<60000,"4萬到6萬", "賺很多") --- * 關聯函數 * Related * Relatedtable * lookupvalue * 時間智慧 * 日曆表使用技巧 DAX進階 * Values * Hasonevalue * Earlier * X函數SumX * RankX和TopN * 輔助表使用 * Var/Return * DAX查詢語言 Profits YoY% Shape = IF([Profits YoY%]>0,UNICHAR(9650),UNICHAR(9660)) https://www.dotblogs.com.tw/RYNote/2021/01/18/172048 ## 篩選器 視覺篩選器:所選的物件 頁面篩選器:整個頁面 報表篩選器:整個Pbix --- ::: # 講師連絡方式 燕秋老師教學頻道-FB https://www.facebook.com/Hyonith2014/ 燕秋老師教學頻道-YT https://www.youtube.com/%E7%87%95%E7%A7%8B%E8%80%81%E5%B8%AB%E6%95%99%E5%AD%B8%E9%A0%BB%E9%81%93 ![](https://i.imgur.com/sEpPwrB.png =80%x)