Power BI之DAX神功:答網(wǎng)友問11 使用期初和期末余額
一、網(wǎng)友問題

二、個人想法
遇到問題時,建議你化繁為簡,利用自己能聽懂的知識去測試。
我們可以使用通用語言來講清楚這件事,例如賣土豆。一年365天,每個月都有第1天和最后1天,以每個月為例,每月第1天就是月初庫存,每月最后1天就是月末庫存。
三、只有一張表時計算期末庫存
《DAX神功》第2卷第14回已經(jīng)做出詳解

【度量值】平均值 = AVERAGE('Sheet1'[庫存])?
// 依據(jù)個人業(yè)務(wù)需求,使用Sum或Avearage函數(shù),前者求和,后者求平均
【度量值】期末庫存 = CALCULATE([平均值],LASTDATE('Sheet1'[日期]))
四、使用日期表時計算期末庫存
《DAX神功》第2卷第14回已經(jīng)做了證明,并不只有書中提到的方法,我們有更簡單的方法,如無必要,不用LASTNONBLANK

第1步:新建動態(tài)日期表
日期表 = ADDCOLUMNS(?
CALENDAR(FIRSTDATE('Sheet2'[日期]),LASTDATE('Sheet2'[日期])),
"年", YEAR ( [Date] ),
"季度", ROUNDUP(MONTH([Date])/3,0),
"月", MONTH([Date]),
"周", weeknum([Date]),
"年季度", year([date]) & "Q" & ROUNDUP(MONTH([Date])/3,0),
"年月", year([Date]) * 100 + MONTH([Date]),
"年周", year([Date]) * 100 + weeknum([Date]),
"星期幾", WEEKDAY([Date])?
)
第2步:建立關(guān)系

第3步:使用更簡單的方法,避開LASTNONBLANK
因為1月31日在Sheet2中不存在,但是日期表是連續(xù)日期它有1月31日
所以:LASTDATE直接使用Sheet2表中的日期列
【度量值】平均值 = AVERAGE('Sheet2'[庫存])?
【度量值】期末庫存 = CALCULATE([平均值],LASTDATE('Sheet2'[日期]))
我們使用一端日期表Date列篩選度量值,根據(jù)一端可以篩選多端的特性,不影響結(jié)果。

五、計算期初庫存
既然我們期末庫存使用了LastDate,期初庫存同樣可以使用FIRSTDATE
方法同上。
但是,在《火力全開》27.03我們講了END與START系列函數(shù),例如:
ENDOFMONTH(日期列)? ? ? ? ??// 返回當月最后一天
STARTOFMONTH(日期列)? ? ? // 返回當月第一天
其實,END與START系列和FIRSTDATE與LastDate系列都要注意使用日期表時,您月初那一天在多端表中是否存在的問題。
但是這兩個系列最大的區(qū)別是:前者返回一天的,而后者返回每一天的。書中故意這樣使用,目的就是讓你看到二者區(qū)別。

第1步:新建日期表(略),并建立關(guān)系

第2步:度量值如下,使用多端表日期列,避開復(fù)雜原理,一端日期表仍然可以篩選多端表生成的度量值
【度量值】平均值 = AVERAGE('Sheet3'[庫存])
【度量值】期初庫存 = CALCULATE([平均值],STARTOFMONTH('Sheet3'[日期]) )
【度量值】期末庫存 = CALCULATE([平均值],LASTDATE('Sheet3'[日期]))
【度量值】增長 = DIVIDE([期末庫存]-[期初庫存],[期初庫存])


解讀:以1月份為例,1月1日無庫存,1月2日就是1月份的月初庫存50,月末是31,所以下降了38%。同時,你也看到了END與START系列和FIRSTDATE與LastDate系列的區(qū)別。
怎么用?根據(jù)自己的需求來選擇,您只想顯示那一天,END與START系列,所有日期都需要顯示FIRSTDATE與LastDate系列。
其實方法也不只這些,《火力全開》筆記27.05?OPENINGBALANCE系列 計算月初庫存,所謂的月初庫存就是上月底最后一天的庫存。

《孫興華講PowerBI火力全開》PowerBI必學課程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》視頻版合集:
https://www.bilibili.com/video/BV1YE411E7p3
PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動化、Python爬蟲、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等
https://www.bilibili.com/read/cv10222110?