Power BI基于筛选上下文创建动态列:按名称计数返回对应结果
DAX筛选上下文问题解决方法
问题根源
你当前写的是计算列(通过=直接定义),计算列的结果在数据模型加载时就已固定,不会随报表中的筛选、切片器等上下文变化而更新。要实现动态响应筛选的需求,必须改用度量值。
正确的度量值代码
Name Status = VAR CurrentName = MAX(Table1[Name]) VAR NameCount = CALCULATE( COUNTROWS(Table1), ALLSELECTED(Table1), Table1[Name] = CurrentName ) RETURN IF(NameCount = 2, "In", "Out")
代码说明
MAX(Table1[Name]):在表格的行上下文里,提取当前行对应的名称(因每行对应单个名称,用MIN也可达成相同效果)CALCULATE(COUNTROWS(Table1), ...):ALLSELECTED(Table1):保留报表上已应用的所有筛选上下文(比如部门筛选)Table1[Name] = CurrentName:仅统计当前名称在筛选后的出现次数
- 最后根据次数返回指定结果:出现2次返回
In,其余情况返回Out
使用步骤
- 在Power BI界面点击「新建度量值」
- 粘贴上述代码并命名(比如
Name Status) - 将该度量值添加到表格视觉对象中,即可随筛选动态更新结果
内容的提问来源于stack exchange,提问作者QuirkCodingFox
相关产品推荐
相关产品推荐

