DAX技术问题:如何计算非连续时间间隔下的运营成本涨幅
非连续时间间隔下运营成本涨幅的DAX度量值方案
当运营成本并非每月都有变动时,PARALLELPERIOD函数因固定取上月值无法满足需求,需要通过定位上一次有成本变动的时间点来计算涨幅,以下是具体的DAX度量值实现步骤:
步骤1:计算当前运营成本
先定义基础度量值获取当前上下文的运营成本:
当前运营成本 = SUM(业务数据表[运营成本])
替换业务数据表[运营成本]为你实际的表名和成本列名
步骤2:定位上一次成本变动的日期
通过筛选找到当前日期之前最近的、有有效成本记录的日期:
上一次变动日期 = CALCULATE( MAX(DIM_DATO[Dato]), FILTER( ALL(DIM_DATO[Dato]), DIM_DATO[Dato] < MAX(DIM_DATO[Dato]) && NOT(ISBLANK(CALCULATE(SUM(业务数据表[运营成本])))) ) )
ALL(DIM_DATO[Dato])移除当前日期筛选,遍历所有更早的日期NOT(ISBLANK(...))确保筛选出有成本记录的日期,若你的无变动值是0,可改为CALCULATE(...) > 0
步骤3:获取上一次变动时的运营成本
根据找到的日期,取出对应的成本值:
上一次运营成本 = CALCULATE( [当前运营成本], FILTER( ALL(DIM_DATO), DIM_DATO[Dato] = [上一次变动日期] ) )
步骤4:计算运营成本涨幅
用当前成本减去上一次成本,再除以上一次成本得到涨幅,用DIVIDE处理除零/空值报错:
运营成本涨幅 = DIVIDE( [当前运营成本] - [上一次运营成本], [上一次运营成本], BLANK() )
使用说明
将上述度量值添加到以月份为X轴的图表中,即可展示非连续变动下的运营成本涨幅,与你期望的效果一致。
内容的提问来源于stack exchange,提问作者Neri Kim
相关产品推荐
相关产品推荐

