Power BI DAX实现按12个月周期过滤tbl_Homeless数据集
解决tbl_Homeless表的12个月周期过滤问题
方法1:修改[# Homeless]度量值
直接在现有度量值中嵌入筛选逻辑,确保仅计算符合条件的记录:
# Homeless = CALCULATE( -- 替换成你原有的[# Homeless]度量值表达式 COUNT(tbl_Homeless[ClientID]), -- 筛选条件1:仅保留每个ClientID的最大Month≥12的记录 FILTER( ALL(tbl_Homeless[ClientID], tbl_Homeless[Month]), CALCULATE(MAX(tbl_Homeless[Month]), ALLEXCEPT(tbl_Homeless, tbl_Homeless[ClientID])) >= 12 ), -- 筛选条件2:明确排除ClientID=44(可选,因为条件1已能过滤,但按需求保留) tbl_Homeless[ClientID] <> 44 )
逻辑说明:通过ALLEXCEPT计算每个ClientID对应的最大居住周期(Month),仅保留周期≥12的客户数据,同时直接排除指定ClientID。
方法2:创建符合条件的计算表
如果需要生成独立的过滤后数据集,可创建DAX计算表:
Filtered_Homeless = VAR ValidClients = SELECTCOLUMNS( FILTER( SUMMARIZE(tbl_Homeless, tbl_Homeless[ClientID]), CALCULATE(MAX(tbl_Homeless[Month])) >= 12 && tbl_Homeless[ClientID] <> 44 ), "ValidClientID", tbl_Homeless[ClientID] ) RETURN FILTER(tbl_Homeless, tbl_Homeless[ClientID] IN ValidClients)
逻辑说明:先通过SUMMARIZE和FILTER筛选出符合周期要求的有效ClientID,再从原表中提取这些客户的所有记录,生成独立的过滤表。
方法3:表级筛选器(无需DAX)
如果不想修改度量值或创建计算表,可直接给tbl_Homeless表添加筛选:
- 进入Power BI数据视图,选中tbl_Homeless表
- 打开右侧「筛选器」面板,添加两个筛选条件:
- 选择
ClientID,设置为「不等于」44 - 选择
Month,点击「高级筛选」,设置为「最大值」≥12
- 选择
内容的提问来源于stack exchange,提问作者Hell-1931
相关产品推荐
相关产品推荐

