如何在Power BI的DAX中编写等效于指定Tableau LOD的计算
把Tableau LOD表达式转换为Power BI的DAX计算
原Tableau LOD表达式:
{ FIXED [ID] : MIN(IF [Temp] >= 0 AND [Temp] <= 35.2 THEN [Value] END)}
作用是:按[ID]分组,筛选出[Temp]在0~35.2范围内的行,取这些行的[Value]最小值。
对应的DAX写法(计算列)
Min_Value_Fixed_ID = CALCULATE( MIN('你的表名'[Value]), FILTER( ALLEXCEPT('你的表名', '你的表名'[ID]), '你的表名'[Temp] >= 0 && '你的表名'[Temp] <= 35.2 ) )
逻辑说明
ALLEXCEPT('你的表名', '你的表名'[ID]):保留当前行的[ID]筛选上下文,清除其他所有筛选,确保计算范围限定在同一个ID的行内。FILTER(...):在同一个ID的行中,筛选出[Temp]符合0~35.2条件的记录。MIN('你的表名'[Value]):对筛选后的记录取[Value]的最小值。
度量值版本(适配报表交互场景)
如果需要作为度量值使用,适配报表的筛选上下文,写法如下:
Min_Value_Fixed_ID_Measure = CALCULATE( MIN('你的表名'[Value]), FILTER( ALLSELECTED('你的表名'), '你的表名'[Temp] >= 0 && '你的表名'[Temp] <= 35.2 ), ALLEXCEPT('你的表名', '你的表名'[ID]) )
注意:将代码中的
'你的表名'替换为你实际使用的表名称。
内容的提问来源于stack exchange,提问作者Jana N
相关产品推荐
相关产品推荐

