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

Tableau中[Listing Reward Final]计算字段总计值错误修复请求

Tableau仪表板总计值计算错误修复方案

问题背景

现有Tableau仪表板通过计算字段[Listing Reward Final]计算员工个人奖励,字段代码如下:

CASE attr([Calendar WeekInPeriod])
WHEN 4 THEN
    CASE sum([Listing Flag])
        WHEN 8 THEN 20 WHEN 9 THEN 25 WHEN 10 THEN 35 WHEN 11 THEN 50
        WHEN 12 THEN 70 WHEN 13 THEN 95 WHEN 14 THEN 125 WHEN 15 THEN 160
        WHEN 16 THEN 200 ELSE
            IF sum([Listing Flag]) < 8 THEN 0
            ELSE 200 + (sum([Listing Flag]) - 16) * 50
            END
    END
WHEN 3 THEN
    CASE sum([Listing Flag])
        WHEN 6 THEN 20 WHEN 7 THEN 25 WHEN 8 THEN 35 WHEN 9 THEN 50
        WHEN 10 THEN 70 WHEN 11 THEN 95 WHEN 12 THEN 125 WHEN 13 THEN 160
        WHEN 14 THEN 200 ELSE
            IF sum([Listing Flag]) < 6 THEN 0
            ELSE 200 + (sum([Listing Flag]) - 14) * 50
            END
    END
WHEN 5 THEN
    CASE sum([Listing Flag])
        WHEN 10 THEN 20 WHEN 11 THEN 25 WHEN 12 THEN 35 WHEN 13 THEN 50
        WHEN 14 THEN 70 WHEN 15 THEN 95 WHEN 16 THEN 125 WHEN 17 THEN 160
        WHEN 18 THEN 200 ELSE
            IF sum([Listing Flag]) < 10 THEN 0
            ELSE 200 + (sum([Listing Flag]) - 18) * 50
            END
    END
ELSE NULL
END

当前表现

  • 员工个人奖励计算逻辑正确;
  • 总计值错误:系统将奖励公式直接应用于所有员工Listing Flag的总和(122),得出结果5500,但实际正确总计应为所有员工个人奖励之和(905)。

期望表现

  • 员工个人奖励计算逻辑保持不变;
  • 总计值为所有员工个人奖励的累加值905。

相关数据表格

员工/总计Listing Flag奖励值
总计1225500
员工11150
员工217250
员工31270
员工470
员工5820
员工61395
员工730
员工81270
员工918300
员工1040
员工1160
员工12——
员工131150
员工14——

解决方案

核心思路是让总计行计算个人奖励的总和,而非对总Listing Flag应用奖励公式,以下是三种可行方法:

方法1:拆分计算字段(推荐)

先计算员工个人级别的奖励,再对结果求和:

  1. 创建基础计算字段[Individual Reward],改为行级别计算(假设[Calendar WeekInPeriod]在员工维度下唯一):
CASE [Calendar WeekInPeriod]
WHEN 4 THEN
    CASE [Listing Flag]
        WHEN 8 THEN 20 WHEN 9 THEN 25 WHEN 10 THEN 35 WHEN 11 THEN 50
        WHEN 12 THEN 70 WHEN 13 THEN 95 WHEN 14 THEN 125 WHEN 15 THEN 160
        WHEN 16 THEN 200 ELSE
            IF [Listing Flag] < 8 THEN 0
            ELSE 200 + ([Listing Flag] - 16) * 50
            END
    END
WHEN 3 THEN
    CASE [Listing Flag]
        WHEN 6 THEN 20 WHEN 7 THEN 25 WHEN 8 THEN 35 WHEN 9 THEN 50
        WHEN 10 THEN 70 WHEN 11 THEN 95 WHEN 12 THEN 125 WHEN 13 THEN 160
        WHEN 14 THEN 200 ELSE
            IF [Listing Flag] < 6 THEN 0
            ELSE 200 + ([Listing Flag] - 14) * 50
            END
    END
WHEN 5 THEN
    CASE [Listing Flag]
        WHEN 10 THEN 20 WHEN 11 THEN 25 WHEN 12 THEN 35 WHEN 13 THEN 50
        WHEN 14 THEN 70 WHEN 15 THEN 95 WHEN 16 THEN 125 WHEN 17 THEN 160
        WHEN 18 THEN 200 ELSE
            IF [Listing Flag] < 10 THEN 0
            ELSE 200 + ([Listing Flag] - 18) * 50
            END
    END
ELSE NULL
END
  1. 创建最终显示字段[Listing Reward Final],对个人奖励求和:
SUM([Individual Reward])
  1. 将该字段拖入视图,总计行自动计算所有员工奖励的总和。

方法2:使用LOD表达式(维度复杂场景)

如果[Calendar WeekInPeriod]是跨员工的维度,用固定级别表达式确保每个员工的奖励单独计算后再求和:

SUM({FIXED [员工ID], [Calendar WeekInPeriod]: 
    CASE [Calendar WeekInPeriod]
    WHEN 4 THEN
        CASE [Listing Flag]
            WHEN 8 THEN 20 WHEN 9 THEN 25 WHEN 10 THEN 35 WHEN 11 THEN 50
            WHEN 12 THEN 70 WHEN 13 THEN 95 WHEN 14 THEN 125 WHEN 15 THEN 160
            WHEN 16 THEN 200 ELSE
                IF [Listing Flag] < 8 THEN 0
                ELSE 200 + ([Listing Flag] - 16) * 50
                END
        END
    WHEN 3 THEN
        CASE [Listing Flag]
            WHEN 6 THEN 20 WHEN 7 THEN 25 WHEN 8 THEN 35 WHEN 9 THEN 50
            WHEN 10 THEN 70 WHEN 11 THEN 95 WHEN 12 THEN 125 WHEN 13 THEN 160
            WHEN 14 THEN 200 ELSE
                IF [Listing Flag] < 6 THEN 0
                ELSE 200 + ([Listing Flag] - 14) * 50
                END
        END
    WHEN 5 THEN
        CASE [Listing Flag]
            WHEN 10 THEN 20 WHEN 11 THEN 25 WHEN 12 THEN 35 WHEN 13 THEN 50
            WHEN 14 THEN 70 WHEN 15 THEN 95 WHEN 16 THEN 125 WHEN 17 THEN 160
            WHEN 18 THEN 200 ELSE
                IF [Listing Flag] < 10 THEN 0
                ELSE 200 + ([Listing Flag] - 18) * 50
                END
        END
    ELSE NULL
    END
})

方法3:临时修改总计计算逻辑

若不想修改计算字段,可直接调整视图设置:

  1. 右键点击视图中的总计行 → 总计 → 计算依据;
  2. 选择总和,确保是对个人奖励列求和而非对Listing Flag总和应用公式。

注意:此方法仅修改当前视图显示,调整维度后可能失效,仅作临时方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:40:56