POWER PIVOT 進階篇


一、時間智能

1.1 日歷表要求

  • 向模型中指定一張日歷表
  • 包含至少一列是日期格式,且包含需要計算的日期
  • 周、月份、年份可自由添加
  • 日期列不能重復,但可以不連續,如果最小單位為月,可以只設置每月1號

標記為日期表

 

1.2常用時間計算指標

縮寫 英文 解釋
YTD Year To Date 年初至今的累積
QTD Quarter  To Date    季度初至今的累積
MTD Month To Date     月初至今的累積
YOY Year On Year    同比去年
MOM Month On Month          環比上月

 

 

 

 

 

 

 

 

 

  

1.3常用時間智能函數

函數 說明 類似函數
TOTALYTD 年累積 DATESYTD
TOTALQTD 季度累積 DATESQTD
TOTAMTD 月累積 DATESMTD
DATEADD 日期推移 SAMEPERIODLASTYEAR
PARALLELPERIOD     某一區間的總數    

 

 

 

 

 

 

 

 

 

 

求同環比常與calculate搭配使用

 

二、鏈接回表

2.1 創建鏈接回表

 

 

 

 

 

 

 

2.2 Summarize

Summarize(表格,匯總列1,..."名稱1",表達式1)

數據匯總功能,相當於生成一張透視表,就是SQL中的group by

SELECT  C1(匯總列1),C2(匯總列2),sum(C3)(表達式1) AS 'N1'(名稱1),COUNT(C4)(表達式2)as 'N2'(名稱2)

FROM T1(表格) 

 

2.3Generate

generate(T1,T2)

生成笛卡爾積表

 

三、高級DAX函數

3.1高級聚合函數

函數 說明
SUMX 求和
AVERAGEX 求平均值
MAXX 求最大值
MINX 求最小值
COUNTX 數值格式的計數
COUNTAX 所有格式的計數
MEDIENX 求中位數
RANKX 排名

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUMX(Table,expression)

sumx(t1,單價*數量):表格t1中求銷售額(單價*數量),銷售額=單價1*數量1+...+單價n*數量n

 

3.2常用篩選器函數

 

函數 說明
FILTER 按條件篩選數據
VALUES 返回列或者表去重后的結果
TOPN 返回前幾名的數據
ALL 所有數據
ALLEXCEPT 所有數據除了
ALLNONBLANKROW 返回非空白的數據

 

 

                                                                                                                                                                                    

 

 

 

 

 

 

 

 

 

 FILTER(表,FilterExperssion) 

ALLEXCEPT(表,ColumnName1,...)

FILTER實現對行的篩選,ALLEXCEPT實現對列的篩選。

VALUSE(TabelNameOrColumnName)等於只按一列進行SUMMARIZE

TOPN(N Value,表,[OrderBy_Expression1],[Order1]...)。在表中選擇前N項,按OrderBy_Expression排序,排序方式為Order(ASC,DESC)

 

SUMX經常與FILTER一起使用,能夠實現無關系的數據獲取(可能需要搭配RELATED使用)。

 

3.3earlier函數

 與SUMX,FILTER連用。可以創建一個輔助列。

 

 

 

四、計值與上下文

4.1篩選上下文與行上下文

上下文:context、語境、環境。

篩選上下文:行區域、列區域、篩選、切片器。

行上下文:增加輔助列:銷售額 = 單價 * 數量。是一行一行計算的。

 

  

 

4.2使用filter、all進行上下文交互

當使用filter是,會將行上下文帶入到透視中,也會受篩選上下文的控制。

當使用all時,將強制取消篩選上下文。

當使用calculate:當外部的上下文與內部上下文沖突時,以內部為准,強制替換外部的上下文。

 

  表達式 相同 區別
SUMX SUMX(Table,expression) 都可以被篩選  expression不同。比如求金額。sumx(table,金額)而calculate為calculate(sum(金額),filter)
CALCULATE CALCULATE(expression,filter) 如果篩選條件不是filter中的限制條件,則結果相同 當外部的上下文與內部上下文沖突時,以內部為准,強制替換外部的上下文。

 

 

 

 建議使用CALCULATE。

 

4.2使用CALCULATE進行上下文轉換(占比)

主要函數:CALCULATE、FILTER、ALL。

 

 

 

 

 

 占比:占比:=DIVIDE(SUM([金額]),CALCULATE(SUM([金額]),ALL('產品分類'[產品分類])))

也可以寫成

 占比:占比:=DIVIDE(SUM([金額]),CALCULATE(SUM([金額]),ALL('產品分類')))

 

 

 

   

 

 

五、多對多關系

 

 

 首先要建立聯系。

USERELATIONSHIP(ColumnName1,ColumnName2)

ColumnName1一般為多段,ColumnName2一般為為一端。

 

 

 

 

 

 

六、常用分析

6.1、占比分析

主要是82分析和721分析。

用到的函數SUMX、FILTER、EARILIER、DIVIDE、SUM、IF

思路:

  1. 將占比列進行累加,並求出累計占比;
  2. 用IF函數判斷判斷占比所屬的范圍。

 

6.2、占比分析

 

 

 用到的函數IF、HASONEVALUE、VALUSE。

思路:

  1. 創建鏈接表,添加到模型,方便更改匯率。
  2. 書寫函數。 

 

 6.3分組分析,可以看成是占比分析的模糊版

 

 

 

用到的函數VALUS、CALCULATE、FILTER、

思路:

  1. 將占比列進行累加,並求出累計占比;
  2. 用IF函數判斷判斷占比所屬的范圍。

 

 6.4排名分析

將排名列進行排名,然后進行分析。

用到的函數:ALLSELECT、RANKX、HASONEVALUES(去除匯總列排名)

思路:

  1. 用RANKX進行排名

 

 

 6.5排名分析進階

 

 

 

 

 6.4排名分析

將排名列進行排名,然后進行分析。

用到的函數:ALLSELECT、RANKX、HASONEVALUES(去除匯總列排名)

思路:

  1. 用RANKX進行排名

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM