如何计算度量值的最小值?DAX表达式返回空白问题求助
问题原因分析
你当前表达式返回空白的核心原因是:SELECTEDMEASURE()调用的是聚合后的NetSales(即SUM('Table'[SalesValue])),在MINX迭代'Table'行时,该度量值会基于当前筛选上下文(比如按Customer ID分组后的上下文)返回该客户的总销售额,而非单一行的SalesValue数值。这种情况下,MINX无法正确计算你需要的客户维度下基础列的最小值,甚至因上下文冲突返回空白。
解决方案
根据你的需求(按Customer ID分别计算Quantity和SalesValue的最小值),可以通过判断选中的度量名称,切换对应的基础列进行计算,以下是两种可行的DAX表达式:
方案1:直接基于筛选上下文计算最小值
MinByCustomer = VAR SelectedMeasureName = SELECTEDMEASURENAME() RETURN SWITCH( SelectedMeasureName, "NetSales", MIN('Table'[SalesValue]), "SalesQty", MIN('Table'[Quantity]) )
说明
当视觉对象按Customer ID分组时,MIN('Table'[SalesValue])会自动在当前Customer ID的筛选上下文下,计算该客户所有行中SalesValue的最小值,无需额外迭代整个表。
方案2:显式按客户分组计算
如果你需要更明确的分组逻辑,可以用VALUES('Table'[Customer ID])生成客户列表,再迭代计算每个客户的最小值:
MinByCustomer = VAR SelectedMeasureName = SELECTEDMEASURENAME() RETURN SWITCH( SelectedMeasureName, "NetSales", MINX(VALUES('Table'[Customer ID]), MIN('Table'[SalesValue])), "SalesQty", MINX(VALUES('Table'[Customer ID]), MIN('Table'[Quantity])) )
注意事项
- 确保字段参数中度量的名称(
NetSales、SalesQty)与SWITCH函数中的判断字符串完全一致,否则会匹配失败返回空白。 - 若后续新增度量,只需在
SWITCH中添加对应的分支即可。
内容的提问来源于stack exchange,提问作者user15235239
相关产品推荐
相关产品推荐

