如何在DAX中获取RELATEDTABLE筛选后单行的指定列值
在DAX中提取筛选后单行数据的指定列值
当你已经通过FILTER(RELATEDTABLE(Config), AND([ConfigColumn1]="Value1", [ConfigColumn2]=[LocalColumn]))得到唯一一行的数据集,要获取其中ConfigColumn3的值,有以下几种实用方法:
方法1:用
LOOKUPVALUE(最直观)
这个函数就是为按条件查找单列值设计的,适合你这种明确只有一个匹配结果的场景:ConfigColumn3_Value = LOOKUPVALUE( Config[ConfigColumn3], Config[ConfigColumn1], "Value1", Config[ConfigColumn2], [LocalColumn] )方法2:用
MAXX/MINX聚合函数
因为筛选结果只有一行,最大值和最小值就是该行的实际值,用这类聚合函数可以直接提取目标列:ConfigColumn3_Value = MAXX( FILTER(RELATEDTABLE(Config), AND([ConfigColumn1]="Value1", [ConfigColumn2]=[LocalColumn])), [ConfigColumn3] )换成
MINX效果完全一致,毕竟单行不存在多值差异。方法3:
SELECTCOLUMNS+VALUES组合
先把筛选后的数据集精简到只包含目标列,再用VALUES提取唯一值:ConfigColumn3_Value = VALUES( SELECTCOLUMNS( FILTER(RELATEDTABLE(Config), AND([ConfigColumn1]="Value1", [ConfigColumn2]=[LocalColumn])), "TargetCol", [ConfigColumn3] )[TargetCol] )
注意:如果筛选条件意外返回多行,LOOKUPVALUE会抛出错误,MAXX/MINX会返回最大/最小值,VALUES会返回一个多值列表(可能影响后续计算)。所以建议保留你之前的COUNTROWS验证逻辑,确保筛选结果始终是单行。
内容的提问来源于stack exchange,提问作者Adamarla
相关产品推荐
相关产品推荐

