Power BI分页报表中含字母数字的FirmNumber筛选度量值报错求助
问题解决:Power BI字母数字FirmNumber筛选错误修复
错误原因
你写的度量值里,CALCULATE的第二个参数直接放了'Employer Dimensions'[FirmNumber],这不符合语法要求。CALCULATE的筛选参数需要是布尔表达式或者合法的筛选器函数,直接引用列名会被Power BI当作“判断该列值是否为真”的布尔条件,但FirmNumber是文本类型(比如a1234),无法转换为布尔值(True/False),因此触发类型转换错误。
解决方案
根据你的场景,分两种情况处理:
情况1:两个表已通过FirmNumber建立关系
如果'Employer Dimensions'(维度表)和'LoadCostStmtPayees'(事实表)已经通过FirmNumber字段建立了正确的关系(通常是维度表到事实表的一对多关系),那么分页报表中用户选择的FirmNumber会自动通过关系筛选事实表,此时可以简化度量值:
AdminCost = CALCULATE( SUM('LoadCostStmtPayees'[COST]), 'LoadCostStmtPayees'[FUNDTYPE] = "Administration Fund" )
情况2:未建立关系/需要手动关联筛选
如果没有建立关系,或者需要明确指定筛选逻辑,用ALLSELECTED获取用户在分页报表中选择的FirmNumber集合,再匹配事实表的对应字段:
AdminCost = CALCULATE( SUM('LoadCostStmtPayees'[COST]), 'LoadCostStmtPayees'[FUNDTYPE] = "Administration Fund", 'LoadCostStmtPayees'[FirmNumber] IN ALLSELECTED('Employer Dimensions'[FirmNumber]) )
或者用FILTER函数包裹筛选条件:
AdminCost = CALCULATE( SUM('LoadCostStmtPayees'[COST]), FILTER( 'LoadCostStmtPayees', 'LoadCostStmtPayees'[FUNDTYPE] = "Administration Fund" && 'LoadCostStmtPayees'[FirmNumber] IN ALLSELECTED('Employer Dimensions'[FirmNumber]) ) )
内容的提问来源于stack exchange,提问作者user2301821
相关产品推荐
相关产品推荐

