在Power BI(DAX)中通过多对一关系从关联表返回汇总值
解决方法:在Table-One中获取Table-Many对应id的最小值
没问题,这个需求用DAX就能轻松实现,而且确实Power BI和Power Pivot的DAX逻辑是通用的——既然你已经建立好两张表的id关联关系,直接在Table-One里新建计算列就行:
方法1:使用CALCULATE + MIN(推荐)
在Table-One中添加计算列,输入以下DAX表达式:
minValueFromTableMany = CALCULATE(MIN('Table-Many'[value]))
原理说明
CALCULATE会自动利用你已建立的id关联关系,筛选出当前Table-One行对应的所有Table-Many记录MIN('Table-Many'[value])从这些筛选后的记录里提取value列的最小值,因为你Table-Many里id=1的value都是a,所以结果自然就是a
方法2:使用MINX + RELATEDTABLE
如果你想更直观地看到关联表的迭代过程,也可以用这个写法:
minValueFromTableMany = MINX(RELATEDTABLE('Table-Many'), 'Table-Many'[value])
原理说明
RELATEDTABLE('Table-Many')会返回当前Table-One行id对应的所有Table-Many记录组成的表MINX迭代这个表,逐个取出value值并返回其中的最小值
注意事项
确保两张表的id关联关系是正确的:Table-One作为关系的一端(每个id唯一),Table-Many作为多端(一个id对应多条记录),这样筛选逻辑才能正常生效。如果结果不对,先检查关系的方向和关联列是否匹配。
内容的提问来源于stack exchange,提问作者Sevyns
相关产品推荐
相关产品推荐

