怎么做蒙特卡洛计算npv_PowerBI非标准日历下的同比环比计算,你知道怎么做吗?...
?對于按照自然年月日來分析的業(yè)務(wù)數(shù)據(jù),在PowerBI中可以輕松的使用時(shí)間智能函數(shù)來進(jìn)行各種時(shí)間指標(biāo)的計(jì)算,但如果不是按標(biāo)準(zhǔn)的日歷,很多人就開始有點(diǎn)懵,不知道該如何計(jì)算了。
比如有的公司的業(yè)務(wù)月份是從26號到下個月的25號,如何計(jì)算本月收入和上月收入呢?
這種還比較簡單,雖然不是標(biāo)準(zhǔn)的日歷,其實(shí)還是很日歷相關(guān)的,只是錯位了幾天而已,可以構(gòu)建一個業(yè)務(wù)日歷表,然后還是可以用時(shí)間智能函數(shù)來計(jì)算。
考慮個更加不標(biāo)準(zhǔn)的業(yè)務(wù)日歷,假如某公司是按25天為一個業(yè)務(wù)周期,這種情況下,完全和自然的年月沒有關(guān)系,時(shí)間智能函數(shù)無法使用,如何計(jì)算本期、上期、環(huán)比等指標(biāo)呢?
這篇文章就來給你一個普遍意義上的時(shí)間指標(biāo)計(jì)算思路。
以業(yè)務(wù)周期25天為例,首先根據(jù)業(yè)務(wù)的周期,在日期表中添加業(yè)務(wù)周期的字段,如下圖,
添加了兩個字段,其中一個是文本的期間P1、P2等,便于閱讀,另外一個是數(shù)值的期數(shù)1、2……,便于排序以及不同期間的邏輯運(yùn)算。
依然用這個表的日期與業(yè)務(wù)數(shù)據(jù)表的訂單日期建立關(guān)系,
先寫一個基礎(chǔ)度量值:
收入 = SUM('訂單表'[銷售額])
下面就用度量值來計(jì)算幾個常用的時(shí)間指標(biāo)。
上期
收入 上期 =
VAR _period=SELECTEDVALUE('日期表'[期數(shù)])
RETURN
CALCULATE(
[收入],
FILTER(
ALL('日期表'),
'日期表'[期數(shù)]=_period-1
)
)
這個度量值的邏輯是,先利用VAR找到當(dāng)前上下文的期數(shù),然后在日期表中,找出比當(dāng)前期數(shù)少一期的日期,并用這些日期篩選訂單表中的對應(yīng)訂單日期的業(yè)務(wù),求和即為上一期的收入。
這里用到的函數(shù)組合:
VAR+CALCULATE+FILTER+ALL
它是非常經(jīng)典的DAX套路,在很多場合都會用到,即使還不理解也要先記住它,建議你重復(fù)練習(xí)直至徹底掌握。
有了上期數(shù)據(jù),計(jì)算同比就很簡單了,
同比 = DIVIDE([收入]-[收入 上年同期],[收入 上年同期])
結(jié)果如下:
同理還可以計(jì)算上年同期,不過這里假設(shè)的是25天一個業(yè)務(wù)月度周期,并沒有上年的概念,不如再假設(shè)一個業(yè)務(wù)年度,仍然以12期為一年,那么上年同期就可以這么計(jì)算。
上年同期
收入 上年同期 =
VAR _period=SELECTEDVALUE('日期表'[期數(shù)])
RETURN
CALCULATE(
[收入],
FILTER(
ALL('日期表'),
'日期表'[期數(shù)]=_period-12
)
)
仔細(xì)觀察就會發(fā)現(xiàn),上年同期的度量值和上期的度量值非常相似,只是把 "_period-1" 替換為 "_period-12" 而已。
自然日歷的計(jì)算不是同樣如此嗎,上月是本月之前1個月的月份,而上年同期就是本月往前推12個月的月份。
同比 = DIVIDE([收入]-[收入 上年同期],[收入 上年同期])
結(jié)果如下:
看以上幾個度量值,好像沒有用到日期,只用到期數(shù),這是因?yàn)樯厦娴挠?jì)算粒度都是按"期"計(jì)算,并沒有按"日"計(jì)算。
假設(shè)計(jì)算本期至今的數(shù)據(jù),應(yīng)該怎么寫呢?
本期至今
收入 本期至今 =
VAR _period=SELECTEDVALUE('日期表'[期數(shù)])
VAR _date=MAX('日期表'[日期])
RETURN
CALCULATE(
[收入],
FILTER(
ALL('日期表'),
'日期表'[期數(shù)]=_period
&&'日期表'[日期]<=_date
)
)
本期至今的邏輯就是期數(shù)和當(dāng)前上下文的期數(shù)相等,但小于等于當(dāng)前日期的訂單銷售額之和。
所以用了兩個變量來分別獲取當(dāng)前上下文的期數(shù)和日期。
結(jié)果如下:
通過上面幾個時(shí)間指標(biāo)的計(jì)算,你是不是已經(jīng)知道非標(biāo)準(zhǔn)日期的計(jì)算邏輯了呢,其實(shí)這才是最普遍意義上的時(shí)間指標(biāo)計(jì)算,就是根據(jù)業(yè)務(wù)的邏輯,按條件篩選匯總而已。
時(shí)間智能函數(shù)內(nèi)部也是這樣的邏輯,比如本月至今,有個時(shí)間智能函數(shù)是DATESMTD,它內(nèi)部的運(yùn)行邏輯依然是:
收入 本月至今 =
VAR _month=SELECTEDVALUE('日期表'[月份])
VAR _date=MAX('日期表'[日期])
RETURN
CALCULATE(
[收入],
FILTER(
ALL('日期表'),
'日期表'[月份]=_month
&&'日期表'[日期]<=_date
)
)
這個度量值和上面的本期至今,除了把 [期數(shù)] 替換為 [月份] ,其他完全一致;等于當(dāng)前月份,但小于等于當(dāng)前日期的數(shù)據(jù)之和不就是本月至今嗎?
把常用時(shí)間維度的業(yè)務(wù)計(jì)邏輯進(jìn)行封裝,就形成了時(shí)間智能函數(shù),大家平時(shí)只知道用,因?yàn)楹芊奖?#xff0c;只要能計(jì)算出結(jié)果,就不去深入理解時(shí)間智能函數(shù)到底是如何工作的,這導(dǎo)致了實(shí)際業(yè)務(wù)中,日歷稍微一變化,就不知道怎么計(jì)算了。
如果徹底理解了這些計(jì)算邏輯,并學(xué)會利用本文的DAX思路,再碰到各種奇葩日歷的時(shí)間指標(biāo)計(jì)算,都可以迎刃而解。
其實(shí)之前寫過的按周分析的思路,同樣的計(jì)算邏輯:
學(xué)會了這個思路,你也可以輕松進(jìn)行周分析!
-精彩推薦-
使用日期制作Power BI切片器,竟然這么好用!
認(rèn)識Power BI這個炫酷的圖表:旭日圖
分析報(bào)告還不會用動態(tài)分析?利用Power BI參數(shù)輕松實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的怎么做蒙特卡洛计算npv_PowerBI非标准日历下的同比环比计算,你知道怎么做吗?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fsmb32.exe是什么进程 作用是什
- 下一篇: wifisetting.java_Wif