Power BI中DAX复制列遇两类报错,求解决方法
DAX复制Sales表[Total Basket]列的报错解决
错误原因及对应解决方法
1. DISTINCT函数报错:提供了多值表,但预期为单个值
- 原因:
DISTINCT(Sales[Total Basket])返回的是包含所有唯一值的表,而计算列要求每行返回单个值,类型不匹配导致报错。 - 解决:
- 若要新建一张仅包含[Total Basket]唯一值的表:直接在"建模"选项卡新建表,使用公式:
Unique Total Baskets = DISTINCT(Sales[Total Basket]) - 若要在已有表的计算列中获取对应行的[Total Basket]值:不要用DISTINCT,改用关联类函数(见下文解决方案)。
- 若要新建一张仅包含[Total Basket]唯一值的表:直接在"建模"选项卡新建表,使用公式:
2. RELATED函数报错:列'Sales[Total Basket]'不存在,或与当前上下文可用的任何表无关联
- 原因:
RELATED要求目标表与Sales表存在多对一的关系(目标表是关系的"多"端,Sales是"一"端),且关联字段已正确建立关系;如果没有关系、关系方向错误或不存在共有关联字段,就会触发此错误。 - 解决:
- 先检查表关系:进入"关系视图",确认目标表和Sales表通过共有的字段(如订单ID、交易ID)建立了多对一关系,且关系处于激活状态。
- 关系正确后,直接使用
RELATED即可:
Total Basket = RELATED(Sales[Total Basket])- 如果无法建立关系,改用
LOOKUPVALUE匹配:
(替换Total Basket = LOOKUPVALUE( Sales[Total Basket], Sales[关联字段], '目标表'[关联字段] )关联字段为两张表共有的匹配字段,比如订单号)
额外说明
如果Sales表的[Total Basket]是度量值而非计算列,无法用RELATED直接调用,需改用CALCULATE:
Total Basket = CALCULATE([Total Basket])
前提是两张表存在有效关系,确保上下文能正确筛选Sales表的数据。
内容的提问来源于stack exchange,提问作者Errefae
相关产品推荐
相关产品推荐

