1. 概述
1.1 背景
在不使用 DEF 函式的時候,我們可以透過 BI 的快速計算,得出每年的銷售額月累計值。
但我們在日常工作時,經常需要將月累計值與去年的月累計值進行同比,而快速計算的結果無法再利用,這時候我們需要使用 DEF 函式。
1.2 預期效果
求得 每月累計值 與 去年同期累計值 的同比。如下圖所示:
可以看出截止 2014-6 ,2014 年的累計銷售額為 138.55 萬,而 2013-6 月的累計銷售額為 116.57 萬,同比提升 18.86%。
線上預覽:對月累計求同比
2. 操作步驟
2.1 新增資料
下載範例資料:超市銷售資料.xlsx
建立一個主題,將下載下來的範例資料上傳至主題。如下圖所示:
2.2 處理資料表
我們希望由小月份到大月份對銷售額進行累計,為了能夠月份之間方便進行比較,我們可以在處理資料表的時候就提取「月份」「年份」。
1)點選獲取時間,獲取「訂單日期」的年份,如下圖所示:
2)同樣的方法,獲取「訂單日期」的月份,如下圖所示:
3)點選「儲存並更新」。
2.3 製作組件
按照我們的預期實現效果,維度上需要拖入欄位訂單日期,將分組改為「年」和「月」,如下圖所示:
2.3.1 計算每年的月累計值
新增計算欄位,對滿足過濾條件【年份=當前年份,月份小於當前月份】的所有銷售額,進行求和。如下圖所示:
例如 2014 年 3 月的值便是 1-3 月的累計銷售額。
公式拆解 | 描述 | 說明文檔 |
---|---|---|
SUM_AGG(銷售額) | 對銷售額求和 | SUM_AGG 求和 |
DEF_ADD(SUM_AGG(銷售額),[],[年份=EARLIER(年份),月份<=EARLIER(月份)]) | 求每年的月銷售額累計值
|
2.3.2 計算去年同期的月累計值
計算去年同期的月累計值,僅需要在上一步的基礎上將過濾條件「年份取當前年份」改成「年份取去年」即可。如下圖所示:
公式拆解 | 描述 | 說明文檔 |
---|---|---|
DEF_ADD(SUM_AGG(銷售額),[],[年份=EARLIER(年份-1),月份<=EARLIER(月份)]) | 求去年同期的累計銷售額
| DEF_ADD(分析區域維度 指定維度) |
2.3.3 計算累計值同比
求累計值同比增長,同比增長=月累計值/上一年月累計值-1。如下圖所示:
公式拆解 | 描述 | 說明文檔 |
---|---|---|
月累計值/上一年月累計值-1 | 求累計銷售額的同比增長率 | - |
IF(ISNULL(上一年月累計值),"",月累計值/上一年月累計值-1) | 判斷「上一年月累計值」是否為null:若為null,結果顯示空值;若不為空,結果顯示同比 | IF 條件判斷 |
2.3.4 製作分組表
選擇圖示型別為「分組表」,將欄位拖入到分析區域。注意第一個訂單日期的分組為「年」,第二個訂單日期的分組為「月份」。如下圖所示:
使用者可以將所有「銷售額或累計值」的數值型別改為「萬」,「月累計同比增長」的數值型別改為「百分比」。
到此,我們便分析成功了。
2.4 效果查看
詳情請參見本文 1.2 節