MS Excel DAX中基于行[ID]值的SWITCH函数使用故障排查求助
解决DAX计算字段无法识别透视表行[ID]的问题
你原来的公式存在两个核心问题:一是SWITCH的条件分支末尾缺少分隔逗号,二是直接引用[ID]没有匹配DAX的上下文规则,导致无法识别透视表行的单个ID值。
修正后的DAX公式如下(请把'表名'替换成你实际使用的表名称):
=SWITCH( TRUE(), HASONEVALUE('表名'[ID]) && VALUES('表名'[ID]) = "Alpha" && [Calc] > 0.75, "G", HASONEVALUE('表名'[ID]) && VALUES('表名'[ID]) = "Alpha" && [Calc] <= 0.75, "R", // 如需给其他ID设置规则可在此继续添加,否则保留默认值 "N/A" )
关键说明:
- 数据透视表的计算字段上下文默认是聚合维度,直接写
[ID]会触发DAX的聚合逻辑(如求和、计数),而非提取当前行的单个ID值。使用VALUES('表名'[ID])可以精准获取当前行上下文里的唯一ID。 HASONEVALUE('表名'[ID])用于校验当前透视表行仅包含一个ID值,避免因上下文存在多个ID导致的公式错误。- SWITCH语法要求每个条件与结果之间必须用逗号分隔,你之前的代码遗漏了这个分隔符,这也是公式无法运行的直接原因之一。
内容的提问来源于stack exchange,提问作者user1706975
相关产品推荐
相关产品推荐

