基于Index列按Asset分组计算Value差值的DAX实现求助
用DAX实现按Asset分组计算Value与前一Index的差值
你可以通过添加计算列来实现这个需求,以下是对应的DAX表达式:
Diff = VAR CurrentIndex = 'Table'[Index] VAR CurrentAsset = 'Table'[Asset] VAR PreviousValue = CALCULATE( MAX('Table'[Value]), FILTER( 'Table', 'Table'[Asset] = CurrentAsset && 'Table'[Index] = CurrentIndex - 1 ) ) RETURN IF(CurrentIndex = 1, 0, 'Table'[Value] - PreviousValue)
公式说明:
CurrentIndex和CurrentAsset:分别存储当前行的索引值和资产类型,用于后续筛选匹配的历史数据PreviousValue:通过CALCULATE+FILTER组合,筛选出同一资产下索引值比当前小1的行,获取对应的Value(由于每个Asset+Index组合唯一,用MAX/MIN/SUM均可,这里选MAX是为了避免空值报错)- 最终返回逻辑:如果当前索引是1,直接返回0;否则用当前行的Value减去前一索引对应的Value,得到差值
将上述公式添加到你的数据表中作为计算列,即可得到你期望的结果。
内容的提问来源于stack exchange,提问作者Matheus Assumpção Solinho
相关产品推荐
相关产品推荐

