細數(shù)計算去年同期的種種陷阱

前言

去年同期和同比是日常業(yè)務(wù)中常見的計算指標(biāo),但是就是這么簡單的業(yè)務(wù)指標(biāo)也往往充滿了陷阱。日常工作中,經(jīng)常不是在月末就需要查看去年同期值了,如果簡單的使用SAMEPERIODLASTYEAR往往會得到錯誤的結(jié)論。

常見情況

舉個例子

通常情況下,大家會使用以下表達式計算去年同期

總銷售額.PY =
CALCULATE ( 
    [總銷售額], 
    SAMEPERIODLASTYEAR ( '日期'[日期] ) 
)

通過此度量值,可以在報告中查看當(dāng)年銷售額和去年同期銷售額

P1_基本計算.png

但是這種方式并不完美,檢查源數(shù)據(jù),不難發(fā)現(xiàn)9月14日之后并未發(fā)生銷售行為,即訂單數(shù)據(jù)僅到2019年9月14日為止。但是度量值總銷售額.PY在2018年9月的計算中,計算了整個9月的銷售額,這樣比較時不公平的,容易產(chǎn)生錯誤的結(jié)論。

解決方案

所以這時就需要增加一個計算條件,用于限制2018年的銷售額,使其僅計算到2018年9月14日為止(即最后一天發(fā)生銷售額的去年同期)。表達式如下:

總銷售額.PY.考慮訂單日期 =
VAR LastOrderDate =
    LASTDATE ( '訂單_2019不完整'[訂單日期] )
VAR LastOrderDatePY =
    EDATE ( LastOrderDate, -12 )
RETURN
    CALCULATE (
        [總銷售額],
        SAMEPERIODLASTYEAR ( '日期'[日期] ),
        '日期'[日期] <= LastOrderDatePY
    )

我們放圖中進行對比。

P2_進階計算.png

顯然這樣算出的去年同期值會合理的多,更能反應(yīng)事實。

其他情況

那么會不會有其他類似的情況?必須有啊,例如常用的指標(biāo)年累計值( Year to date ),同樣會有這樣的陷阱,常見的寫法如下。

總銷售額.YTD =
CALCULATE ( 
    [總銷售額], 
    DATESYTD ( '日期'[日期] ) 
)

同時去年年累計會按照如下寫法所示:

總銷售額.YTD.PY = 
CALCULATE(
    [總銷售額.YTD],
    SAMEPERIODLASTYEAR('日期'[日期])
)

那么結(jié)果如下:

P3_YTD基本.png

顯然按照這種結(jié)果比較,完全無法得出正確結(jié)論,所以改寫YTD和去年同期YTD的表達式:

銷售額.YTD.考慮訂單日期 = 
IF(
    FIRSTDATE('日期'[日期])>LASTDATE('訂單_2019不完整'[訂單日期]),
    BLANK(),
    [總銷售額.YTD]
)
銷售額.YTD.PY.考慮訂單日期 =
VAR LastOrderDate =
    LASTDATE ( '訂單_2019不完整'[訂單日期] )
VAR LastOrderDatePY =
    EDATE ( LastOrderDate, -12 )
RETURN
    CALCULATE (
        [總銷售額.YTD],
        SAMEPERIODLASTYEAR ( '日期'[日期] ),
        '日期'[日期] <= LastOrderDatePY
    )

于是得到了如下結(jié)果:

P4_YTD進階.png

總結(jié)

像文中這樣的陷阱,日常工作中還有很多,希望各位能多多留意,避免得出錯誤結(jié)論。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我,很簡單,一個正常人,平平的,沒有太多追求,不敢再問黑暗,人很現(xiàn)實,胡子長了就刮去曾經(jīng)的滄桑,海啊,大海,快...
    筆斷流閱讀 423評論 0 1
  • 昨天看了戰(zhàn)隼大神的帖子,你懂的,瞬間又被打了雞血【100天習(xí)慣養(yǎng)成大法】大神養(yǎng)成讀書、碼字、記賬、記錄時間、總結(jié)、...
    2a73c200eb05閱讀 307評論 0 0
  • 從更深的層面上,我是這樣看的:自戀,也需要被鏡子看見;我們一直在試著追求“我是對的”“我比你強”,但在這個追求過程...
    醉死貓閱讀 643評論 0 0
  • 更換Ruby鏡像 (1)檢查當(dāng)前鏡像 gem sources -l(2)移除當(dāng)前鏡像 ...
    XLsn0w閱讀 299評論 0 0
  • (此文適合小學(xué)3年級以下學(xué)生家長閱讀) 年過完了,轉(zhuǎn)眼就到了又重新開學(xué)的日期。很多爸爸媽媽不由開始擔(dān)心起來:過完...
    1橙子的晨閱讀 354評論 0 1

友情鏈接更多精彩內(nèi)容