DAX需求:按项目筛选上下文汇总最新累计值(列)
DAX实现按项目筛选汇总最新累计值(列形式)
实现逻辑
核心是先定位每个项目的最新时间节点,提取该节点的累计值,再基于筛选上下文对这些值进行汇总,全程以计算列形式实现。
具体DAX代码
1. 计算每个项目的最新时间
最新时间 = CALCULATE( MAX('数据集'[时间]), ALLEXCEPT('数据集', '数据集'[项目]) )
2. 标记当前行是否为项目的最新记录行
是否最新行 = IF( '数据集'[时间] = '数据集'[最新时间], 1, 0 )
3. 获取每个项目的最新累计值
项目最新累计值 = CALCULATE( MAX('数据集'[累计值]), ALLEXCEPT('数据集', '数据集'[项目]), '数据集'[是否最新行] = 1 )
4. 汇总筛选范围内的项目最新累计值
汇总最新累计值 = SUMX( VALUES('数据集'[项目]), '数据集'[项目最新累计值] )
示例验证
假设数据集如下:
| 时间 | 累计值 |
|---|---|
| 2024-01-01 | 5 |
| 2024-01-02 | 7 |
| 2024-01-01 | 4 |
| 2024-01-03 | 6 |
当筛选项目x、y时,汇总最新累计值会计算7+6=13,符合预期结果。
内容的提问来源于stack exchange,提问作者Pawel Osipowski
相关产品推荐
相关产品推荐

