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

DAX技术支持:按公司和期间汇总值并忽略视觉筛选

解决DAX度量值按公司/期间分组计算固定值并应用到所有行的问题

原始数据表

公司项目期间Value1Value2
AA131020
AA131020
AB1320
AB1320
AC131020
AC132020
AD1320
AD1310

需求

按公司和期间分组,计算非空Value1的总和除以非空Value2的总和,得到固定比率后,将该值应用到每一行(包括Value1为空的行)。

原度量值问题

原编写的度量值如下:

AVERAGEX (
    SUMMARIZE (
        CALCULATETABLE (
            'Table',
            'Table'[Value1] <> BLANK ()        
),
       'Table'[Company],
        'Table'[Period],
        "Result",
            VAR SumValue1=
                SUM ( 'Table'[Value1] )
            VAR SumValue2 =
                SUM ( 'Table'[Value2] )
            RETURN
                SumValue1/ SumValue2
    ),
    [Result]
)

当前问题:度量值受行上下文(如项目、单条记录的Value1/Value2)影响,导致逐行计算出不同结果,仅总计行显示正确的0.3333。

解决方案

使用以下DAX度量值,确保在公司+期间维度下计算固定比率,并忽略其他细分维度的影响:

固定比率 = 
VAR 公司期间上下文 = ALLEXCEPT('Table', 'Table'[公司], 'Table'[期间])
VAR 总Value1 = CALCULATE(SUM('Table'[Value1]), 公司期间上下文, NOT(ISBLANK('Table'[Value1])))
VAR 总Value2 = CALCULATE(SUM('Table'[Value2]), 公司期间上下文, NOT(ISBLANK('Table'[Value2])))
RETURN
DIVIDE(总Value1, 总Value2, 0)

代码说明

  • ALLEXCEPT('Table', 'Table'[公司], 'Table'[期间]):保留当前行的公司和期间筛选条件,移除其他所有维度(如项目、行级字段)的筛选影响,确保计算范围是整个公司+期间的数据集。
  • CALCULATE(SUM(...), 公司期间上下文, NOT(ISBLANK(...))):在上述上下文基础上,过滤出非空的Value1/Value2并计算总和。
  • DIVIDE函数:安全处理除法运算,避免除数为0时出现错误,第三个参数为除数为0时的默认返回值(此处设为0)。

最终效果

应用该度量值后,所有行将显示统一的固定比率:

公司项目期间Value1Value2固定比率
AA1310200.3333
AA1310200.3333
AB13200.3333
AB13200.3333
AC1310200.3333
AC1320200.3333
AD13200.3333
AD13100.3333
总计0.3333

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:18:10