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

如何基于DAX度量值Yearly_Leavers_Result聚合Hours字段?

解决DAX度量值结果聚合问题

错误原因

VALUES()函数仅支持表的物理列,无法直接引用度量值——因为度量值是依赖上下文动态计算的结果,不属于表的固定列。

解决方案

方案1:基于行级粒度(ID)汇总后分组求和

如果数据的行级粒度是ID,可以先计算每个ID对应的类别和Hours,再按类别聚合:

YearlyResultCategories = 
VAR IDLevelSummary = 
    SUMMARIZE(
        'TableName',
        'TableName'[ID],
        "@Category", [Yearly_Leavers_Result],
        "@IDHours", SUM('TableName'[Hours])
    )
RETURN
    SUMX(
        GROUPBY(IDLevelSummary, [@Category], "@TotalHours", SUMX(CURRENTGROUP(), [@IDHours])),
        [@TotalHours]
    )

方案2:配合辅助表实现动态类别分组(更灵活)

如果需要支持切片器等动态筛选,先创建一个包含所有可能类别的辅助表:

LeaverCategories = DATATABLE(
    "Category", STRING,
    {
        {"Left"},
        {"Joined"},
        {"Remained"}
    }
)

再创建度量值,匹配辅助表的类别并求和:

TotalHoursByCategory = 
CALCULATE(
    SUM('TableName'[Hours]),
    FILTER(
        VALUES('TableName'[ID]),
        [Yearly_Leavers_Result] = SELECTEDVALUE(LeaverCategories[Category])
    )
)

使用方法

  • 方案1:将新度量值拖到数据透视表的「值」区域,同时将Yearly_Leavers_Result拖到「行」区域(若数据透视表不允许直接拖度量值到行区域,优先使用方案2)
  • 方案2:将LeaverCategories[Category]拖到「行」区域,TotalHoursByCategory拖到「值」区域,即可得到每个类别的总Hours

内容的提问来源于stack exchange,提问作者Gabriel H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:32:41