在Tableau中如何按IDnum汇总数据并显示各IDnum的最新名称?
在Tableau中实现每个ID的最新名称+收入汇总(全计算字段方案)
嘿,这个需求完全可以通过Tableau的计算字段来实现,我帮你梳理一下具体的步骤,全程不用复杂操作,跟着走就行:
步骤1:先处理收入字段(如果是字符串类型的话)
看你的示例里Income是带$的字符串(比如$30),Tableau没法直接对字符串求和,所以先创建一个计算字段转成数值:
- 计算字段名称:
Numeric Income - 公式:
INT(REPLACE([Income], "$", ""))
这个公式会把$替换掉,再转成整数,方便后续求和。
步骤2:计算每个ID对应的最新日期
接下来用LOD表达式固定每个IDnum,找出它的最晚日期:
- 计算字段名称:
Latest Date per ID - 公式:
{FIXED [IDnum] : MAX([Date])}
FIXED [IDnum]表示以每个ID为分组,MAX([Date])会取出该ID下的最新日期(比如A1的Sep-20)。
步骤3:提取每个ID的最新名称
基于上面的最新日期,我们可以直接拿到对应的最新名称:
- 计算字段名称:
Latest Name per ID - 公式:
{FIXED [IDnum] : MAX(IF [Date] = [Latest Date per ID] THEN [Name] END)}
这里的逻辑是:只保留最新日期那一行的Name,然后用MAX(因为其他行都是Null,MAX会直接取到有效的那个名称),最终每个ID会得到唯一的最新名称。
步骤4:计算每个ID的总收入
同样用LOD表达式汇总每个ID的所有收入:
- 计算字段名称:
Total Income per ID - 公式:
{FIXED [IDnum] : SUM([Numeric Income])}
这个会把每个ID下的所有收入加总,比如A1就是30+10+30=70,B1是70+20+10=100。
步骤5:在视图中展示结果
现在把这几个字段拖到视图里就行:
- 把
IDnum拖到行(维度) - 把
Latest Name per ID拖到行(维度) - 把
Total Income per ID拖到行(度量,默认就是求和,不用改) - 最后可以调整一下格式,比如给收入加回
$符号,右键Total Income per ID→设置格式→选择货币格式即可。
这样就能得到你想要的结果:A1 JamesSt $70;B1 AliceBet $100。
内容的提问来源于stack exchange,提问作者lil chill
相关产品推荐
相关产品推荐

