---
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)