数据分析中相对变量计算方式:环比和同比
数值分为绝对值和相对值,绝对值包括销售额、利润额等,而有些时候相对值更能体现数据的变化,比如说比上个月增长率,能体现一个指标的好坏程度,如果比上个月增长是正数的,那说明这个指标呈现上升趋势,相反表示可能要关注,所以在数据分析,或者是运营分析中,除了要观看绝对值的总体状况,还要看相对值的变动情况。相对值,一般来说就有两个较为重要的指标:环比和同比,今天就针对这两个指标,来分享一下,如何在DAX中表达出来。相对值DAX计算方式1、同比和环比的概念
同比,即同期相比,表示某个特定统计段今年与去年之间的比较。同比增长率=(本期数-同期数)/同期数×100%,反映本期比上期增长了多少。
环比的发展速度是报告期水平与前一时期水平之比,表明现象逐期的发展速度,环比增长率=(本期数-上期数)/上期数×100%,环比发展速度,一般是指报告期水平与前一时期水平之比,表明现象逐期的发展速度。
通过第一部分,我们不难发现到同比和环比的计算方式,基本元素是本期数、上期数以及同期数,这三个都是绝对值,也就是说要计算本期的绝对值,以及临近周期的绝对值(环比需要的上期数据)、跨上一级的同一周期的绝对数(同比需要的绝对数),通过这一个分析,其实要计算同比或者环比,我们只需要转换为计算这三个值,然后再通过简单的四则运算就可以计算出同比和环比。
先说说本期数据,按照月度来算,也就是说本月发生额,我们就能想到使用时间智能函数中的TOTALMTD 函数,表示从月初到现在的表达式的和,表达式我们大家可以使用聚合函数SUM,就可以求出本期数据。
而上期数据,我们还是用月度来说明,如果说本月的数据是完整的一个月数据,那么上个月的数据,我们也可以借助时间智能函数,比如说PREVIOUSMONTH 函数,或者使用DATEADD 函数都可以。但是如果不是完整的月度日期,比如说本期数是1-15日,对应的上期数据应该是上个月的1-15日,如果使用PREVIOUSMONTH 函数返回的是上个月完整月份的数据,那和我们同比的概念就不一样了,即我们不能用15天的数据和上个月整月的数据做比较。因此就需要换另一种方法,我们首先要计算本期最后一天的日期,能够正常的使用LASTDATE 函数,然后再用DATEADD函数,将这个日期往前退一个月,即DATEADD(LASTDATE (),-1,MONTH),返回就是上月本期最后一天的日期,最后再用TOTALMTD 函数的特点,即TOTALMTD(SUM(),DATEADD(LASTDATE (),-1,MONTH))就可以求得上个月1日至上个月和本期同一天日期一样的日期的表达式的和,即可以求出上期值。
当对DATE字段降序排序时,我们正真看到最大的一天是2021年3月23日,即本期的日期不是满月日期数据。
我们验证一下这组数据的准确性,首先第一个销售额度量值为11,224,296,这个表示的SalesAmount_USD字段的总和,我们通过原始数据计算一下,如下图所示:
通过手动计算,这个值和我们度量值计算的是一样的。我们再验证一下同期值的数据,计算的是最近一个月从1号到当前日期的数据,即2021年3月1日至2021年3月23日的数据,度量值计算的结果是256,123,手动计算的结果如下图所示:
通过对比,我们得到的结果是度量值计算的结果和手动计算的结果是一致的,同期的度量值,我们也可以用这种方法来多对比,发现也是一致的,如下图所示:
也就验证了我们这种算法是正确的,不管当前的数据是不是满月的,都可以计算出环比和同比来。
环比和同比是日常分析中一组很重要的指标,本期我们介绍的是在当期非满月的情况下的算法,希望有机会能够帮到大家解决这一个小的问题。