You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DAX查询计算一对多关系下各项目的最大值

解决方案

你的DAX表达式仅计算出了每个项目对应的VALUE最大值,但没有筛选出对应这个最大值的整行数据,所以会返回所有市场行。以下几种方法可以实现目标:

方法一:创建计算表直接获取结果

通过先计算每个项目的最大VALUE,再关联原表筛选出对应行:

MaxValueRows = 
VAR ProjectMaxValues = 
    SUMMARIZE(
        'Table 2',
        'Table 2'[PROJECT_NUMBER],
        "MaxValue", MAX('Table 2'[VALUE])
    )
RETURN
    NATURALINNERJOIN(
        'Table 2',
        ProjectMaxValues
    )

你可以将这个计算表与Table1关联,就能同时获取项目名称和对应最大VALUE的行数据。

方法二:用度量值标记并筛选

如果是在报表视觉对象中使用,可创建度量值标记当前行是否为该项目的VALUE最大行:

IsMaxValueRow = 
VAR CurrentValue = MAX('Table 2'[VALUE])
VAR ProjectMaxValue = 
    CALCULATE(
        MAX('Table 2'[VALUE]),
        ALLEXCEPT('Table 2', 'Table 2'[PROJECT_NUMBER])
    )
RETURN
    IF(CurrentValue = ProjectMaxValue, 1, 0)

之后在视觉对象的筛选器中,将该度量值设置为等于1,即可只显示每个项目VALUE最大的行,再关联Table1添加项目名称字段即可。

方法三:用TOPN直接提取每行

通过GENERATE遍历每个项目,配合TOPN取每个项目的VALUE最大行:

MaxValueRows = 
GENERATE(
    DISTINCT('Table 1'[PROJECT_NUMBER]),
    TOPN(
        1,
        FILTER('Table 2', 'Table 2'[PROJECT_NUMBER] = EARLIER('Table 1'[PROJECT_NUMBER])),
        'Table 2'[VALUE], DESC
    )
)

这个计算表会直接返回每个项目对应VALUE最大的完整行数据,包含MARKET、VALUE和PROJECT_NUMBER,可直接关联Table1获取项目名称。

内容的提问来源于stack exchange,提问作者Uddhava Swaminathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:04:59