你了解PowerBI中的去年同期吗

同比分析在数据工作中至关重要。在PowerBI中,使用DATEADD或SAMEPERIODLASTYEAR函数可能在某些情况下无法准确反映去年同期数据,尤其是在日期粒度细化到天时。文章通过实例说明,即使使用MTD,仍可能在月度对比时计算整月数据而非实际同期。正确做法是根据当前数据截止日期计算去年同期,若当期未发生,则不计算。同时,对于闰年等特殊情况,需要考虑全年天数差异,确保去年同期的计算正确性。

同比是分析指标中最基础的指标,但是你真的了解PowerBI中同比的实现吗?

我们先来看一下常见的我们书写同比的方式

sales = SUM( 'FactSales'[sales] )

sales.PY = 
CALCULATE(
    [sales],
    DATEADD( 'DimDate'[Date], -1, YEAR )
)

sales.PY2 = 
CALCULATE(
    [sales],
    SAMEPERIODLASTYEAR( 'DimDate'[Date] )
)

无论是使用DATEADD还是SAMEPERIODLASTYEAR都可以实现同比的计算,

一如上图所示,看起来没有任何问题,但是当我们把粒度细到天时再来看数据,2022年7月的数据只24号,可是上面两种方法在月维度时计算同比时计算的是2021年7月整月。

这时候很人很多可能会想到用月度至今计算就会正确了,是这样吗,我们来看一下

sales.MTD = TOTALMTD( [sales], 'DimDate'[Date] )

sales.MTD.PY = 
CALCULATE(
    [sales.MTD],
### Power BI 中计算去年同期累计值并进行同比分析 在 Power BI 的 DAX 表达式中,可以通过 `CALCULATE` 和其他时间智能函数实现对去年同期累计值的计算以及同比分析。以下是具体的解决方案: #### 1. 计算去年同期累计值 为了获取去年同期的累计值,可以结合 `TOTALYTD` 和 `SAMEPERIODLASTYEAR` 函数完成此操作。 ```dax 去年同期累计值 := CALCULATE( TOTALYTD(SUM('Sales'[Amount]), 'Date'[Date]), SAMEPERIODLASTYEAR('Date'[Date]) ) ``` 上述公式的作用是从年初到当前日期范围内的销售金额总和,并将其应用到去年同一时间段上[^1][^4]。 #### 2. 当期累计值 对于当期的累计值,则可以直接使用 `TOTALYTD` 函数来计算本年度从年初至当前日期的累计销售额。 ```dax 当期累计值 := TOTALYTD(SUM('Sales'[Amount]), 'Date'[Date]) ``` 该表达式的逻辑是基于指定的时间字段 `'Date'[Date]' 来累积当年的数据[^2]。 #### 3. 同比增长率计算 同比增长率是指今年累计值相对于去年同期累计值的增长百分比。其基本定义如下所示: ```dax 同比增长率 % := DIVIDE( [当期累计值] - [去年同期累计值], [去年同期累计值], BLANK() ) ``` 这里采用了 `DIVIDE` 函数以安全处理分母可能为零的情况,如果分母等于0则返回空白值 (BLANK()) 而不是错误。 以上三步构成了完整的从去年累计值到同比变化的整体流程描述。 ### 示例代码总结 ```dax -- 度量值用于显示去年同期累计值 去年同期累计值 := CALCULATE(TOTALYTD(SUM('Sales'[Amount]),'Date'[Date]),SAMEPERIODLASTYEAR('Date'[Date])) -- 度量值表示截至今日为止本年的累计总额 当期累计值 := TOTALYTD(SUM('Sales'[Amount]),'Date'[Date]) -- 度量值代表同比增长比例 同比增长率 % := DIVIDE([当期累计值]-[去年同期累计值],[去年同期累计值],BLANK()) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值