PowerBI跨关联表创建计算列求助:按AGENTE匹配乘法计算
PowerBI计算列匹配关联表值相乘的错误解决方法
错误原因
这个错误是因为当前行的AGENTE在Tarifa表中对应多条PREZZO_RICORRENTE记录,PowerBI无法自动确定使用哪一个值参与计算,必须明确指定聚合方式,或者先修正表关系。
解决方案分两种情况处理:
情况1:每个AGENTE在Tarifa表中应唯一对应一条记录
- 进入模型视图,检查Foglio3和Tarifa基于AGENTE的关系:确保是一对一关联(而非一对多)。
- 如果Tarifa表中存在AGENTE重复的行,先清理数据:
- 进入数据视图,选中Tarifa表,点击开始选项卡的删除重复项,选择AGENTE列去重;
- 或者用分组功能,将同一AGENTE的PREZZO_RICORRENTE合并为单一值(比如取平均、最大或最小值)。
- 修正后,直接使用
RELATED函数即可:
注意替换计算列 = Foglio3[需要相乘的列名] * RELATED(Tarifa[PREZZO_RICORRENTE])[需要相乘的列名]为Foglio3中实际要参与计算的列名称。
情况2:允许一个AGENTE对应多个PREZZO_RICORRENTE记录
此时必须指定聚合规则,从多个值中选取一个参与计算,以下是常用示例:
- 取第一条非空匹配值:
计算列 = Foglio3[需要相乘的列名] * FIRSTNONBLANK(Tarifa[PREZZO_RICORRENTE], 1) - 取最后一条非空匹配值:
计算列 = Foglio3[需要相乘的列名] * LASTNONBLANK(Tarifa[PREZZO_RICORRENTE], 1) - 取所有匹配值的平均值:
计算列 = Foglio3[需要相乘的列名] * AVERAGE(Tarifa[PREZZO_RICORRENTE]) - 取所有匹配值的最大值:
计算列 = Foglio3[需要相乘的列名] * MAX(Tarifa[PREZZO_RICORRENTE])
内容的提问来源于stack exchange,提问作者AtyFlow
相关产品推荐
相关产品推荐

