Power BI中COUNTAX用度量值作筛选条件无输出问题咨询
Power BI DAX 度量值作为筛选条件返回空白问题解决
核心原因
- 第一是DAX迭代函数的上下文转换问题:你当前写的公式里,
FILTER函数会逐行迭代Table_Name表,迭代过程中产生的行上下文会强制触发[Optimal Price Calculation]度量值的上下文转换,此时这个最优价格度量值的计算范围被限制在当前迭代行的筛选上下文里,而非你预期的外部全局/父级筛选上下文,导致匹配不到符合条件的行。 - 第二是潜在的浮点精度/数据类型不匹配问题:如果
[Optimal Price Calculation]返回的是货币类型或者带多位小数的浮点值,和Table_Name'[Price]列的存储精度不一致(比如度量值实际计算结果为1.0000000002,而价格列存储的是整数1),直接用等于匹配也会返回空。
解决方案
最直接的修复方式是提前用变量捕获外部上下文下的最优价格计算结果,避免迭代过程中的上下文转换干扰,修正后的度量值代码如下:
Optimal_Price_Count = -- 提前在外部上下文计算最优价格,不受后续FILTER行上下文影响 VAR Target_Optimal_Price = [Optimal Price Calculation] VAR Target_Product = SELECTEDVALUE ( 'First Product'[Product] ) RETURN COUNTAX ( FILTER ( 'Table_Name', 'Table_Name'[Price] = Target_Optimal_Price && 'Table_Name'[Product] = Target_Product ), 'Table_Name'[Price] )
如果修改后依然返回空白,可以增加精度统一逻辑规避浮点误差,将筛选条件修改为:ROUND('Table_Name'[Price], 2) = ROUND(Target_Optimal_Price, 2)
(可根据实际价格精度调整ROUND的第二个参数)
内容的提问来源于stack exchange,提问作者Alex Navarro
相关产品推荐
相关产品推荐

