在DAX的IF函数中引用文本列报错问题求助
解决Power BI中DAX计算列引用文本列的错误问题
可能的错误原因及排查步骤
- 确认表名准确性:检查你的表是否真的命名为
ProductList,如果表名包含空格或特殊字符,必须用单引号包裹,比如'Product List'。 - 核对列名拼写:确保
Product列的拼写与表中完全一致,DAX虽不区分大小写,但拼写错误会导致引用失败。 - 确认创建对象类型:你要创建的是计算列,而非度量值。如果是度量值,直接引用列会因上下文问题报错,需用迭代函数(如
SUMX)处理。
修正后的嵌套IF公式
如果上述排查都没问题,修正后的公式可以正常运行(本质和你写的一致,但需确保表名和列名完全匹配):
VALUE = IF ( 'ProductList'[Product] = "A", 1500, IF ( 'ProductList'[Product] = "B", 2000, IF ( 'ProductList'[Product] = "C", 3000, 0 ) ) )
更简洁的替代方案(推荐)
嵌套IF在产品数量增多时会变得冗余,推荐使用SWITCH函数,可读性更强:
VALUE = SWITCH ( 'ProductList'[Product], "A", 1500, "B", 2000, "C", 3000, 0 // 默认值 )
额外提示
如果你的VALUE列其实就是要返回Amount列的值,完全不需要写条件判断,直接用:
VALUE = 'ProductList'[Amount]
内容的提问来源于stack exchange,提问作者Dinesh Suranga
相关产品推荐
相关产品推荐

