DAX动态计算:统计保费等于当前最小保费的保单数量
DAX度量值:动态计算各公司等于当前最小保费的保单数量
需求说明
基于包含保单列表和各公司保费的数据集,创建支持切片器/筛选器动态调整的度量值,统计当前筛选上下文下,每个公司中保费等于全局最小保费的保单数量。例如:
- 全选所有公司时,TG计数为1、IF计数为3、CW计数为1;
- 筛选移除IF公司后,全局最小保费更新,TG计数变为4、CW计数仍为1。
核心DAX度量值
假设你的数据表名为保单表,包含字段公司、保费、保单ID(唯一标识保单),使用以下度量值:
等于最小保费的保单数 = VAR 当前全局最小保费 = CALCULATE(MIN('保单表'[保费]), ALLSELECTED('保单表'[公司])) RETURN CALCULATE( COUNT('保单表'[保单ID]), '保单表'[保费] = 当前全局最小保费 )
逻辑解释
- 计算全局最小保费:
- 使用
ALLSELECTED('保单表'[公司])保留用户通过切片器/筛选器选择的公司范围,忽略当前行的单个公司筛选,计算这些选中公司所有保单中的最小保费。当用户调整筛选器时,这个值会自动重新计算。
- 使用
- 统计符合条件的保单数:
- 在当前行的公司上下文里,统计保费等于
当前全局最小保费的保单数量,实现按公司分组统计的效果。
- 在当前行的公司上下文里,统计保费等于
注意事项
- 如果保费字段存在浮点精度问题(如小数位数不一致),可以在比较时加入
ROUND函数避免误差:等于最小保费的保单数 = VAR 当前全局最小保费 = CALCULATE(MIN('保单表'[保费]), ALLSELECTED('保单表'[公司])) RETURN CALCULATE( COUNT('保单表'[保单ID]), ROUND('保单表'[保费], 2) = ROUND(当前全局最小保费, 2) ) - 确保
保单ID是唯一标识,若使用其他字段统计,替换COUNT('保单表'[保单ID])为COUNTA('保单表'[保单编号])等对应统计函数即可。
内容的提问来源于stack exchange,提问作者Jayesh Surendran Menon
相关产品推荐
相关产品推荐

