You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI动态筛选:上一年到店本年未到店的健身房会员

解决方案:动态筛选上一年到店本年未到店的会员

核心问题在于你写的是静态计算表(New Table),这类表在数据加载阶段就固定生成,不会响应报表切片器的交互筛选。要实现动态效果,必须改用度量值+视觉筛选的方式,搭配独立维度表构建逻辑。

步骤1:创建独立年份维度表(关键)

不要直接用事实表的年份做切片器,先构建一个包含目标5年的年份表,再和事实表的Year列建立一对多关系:

年份表 = SELECTCOLUMNS(GENERATESERIES(2019, 2023), "Year", [Value])

步骤2:编写度量值标记流失会员

这个度量值会根据切片器选中的年份,动态判断每个会员是否符合“上一年到店、本年未到店”的条件:

是否流失会员 = 
VAR 选中年份 = SELECTEDVALUE('年份表'[Year])
VAR 本年有到店 = CALCULATE(COUNTROWS('Fact'), 'Fact'[Year] = 选中年份) > 0
VAR 上年有到店 = CALCULATE(COUNTROWS('Fact'), 'Fact'[Year] = 选中年份 - 1) > 0
RETURN
IF(上年有到店 && NOT(本年有到店), 1, 0)

步骤3:在报表中实现动态筛选

  • 用年份表的Year字段制作切片器
  • 将会员ID(优先从独立会员维度表选择,无维度表则用VALUES('Fact'[Id]))拖入表格视觉对象
  • 把是否流失会员度量值添加到视觉对象的筛选器中,设置筛选条件为「等于1」

原写法无效的原因

  • 计算表(New Table)是静态结构,加载时没有切片器的筛选上下文,SELECTEDVALUE('Fact'[Year])会返回空值,导致后续逻辑无法执行
  • 直接用事实表年份做切片器会过滤掉非选中年份的记录,无法同时获取上年和本年的会员到店数据

内容的提问来源于stack exchange,提问作者Mystic-1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:03:11