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

PowerPivot DAX:基于另一列最常见值创建计算列

在PowerPivot中按销售额权重填充缺失的账户ID(Acct_ID)

我的PowerPivot模型内有一张交易数据表,包含Cust_ID(客户ID)、Acct_ID(账户ID)与Sales(销售额)字段,部分Acct_ID记录缺失,需要为这些缺失记录(以及同一客户的所有记录)填充该客户下按销售额统计占比最高的Acct_ID。

原始数据

Cust_IDAcct_IDSales
225ABC10
225ABC50
225DEF0
22510
22520
588XYZ500

预期结果

Cust_IDAcct_IDSalesFinal_Acct_ID
225ABC10ABC
225ABC50ABC
225DEF0ABC
22510ABC
22520ABC
588XYZ500XYZ

解决方案:创建DAX计算列

通过嵌套DAX函数实现需求,核心逻辑是先按客户分组计算各账户的总销售额,再筛选出销售额最高的账户ID:

Final_Acct_ID = 
VAR CurrentCust = '交易数据表'[Cust_ID]
-- 汇总当前客户下非空Acct_ID的总销售额
VAR AccountSalesSummary = 
    SUMMARIZE(
        FILTER('交易数据表', '交易数据表'[Cust_ID] = CurrentCust && NOT(ISBLANK('交易数据表'[Acct_ID]))),
        '交易数据表'[Acct_ID],
        "TotalSales", SUM('交易数据表'[Sales])
    )
-- 提取总销售额最高的Acct_ID(多账户销售额相同时取第一个)
VAR TopAccount = 
    MAXX(
        TOPN(1, AccountSalesSummary, [TotalSales], DESC),
        '交易数据表'[Acct_ID]
    )
RETURN
TopAccount

逻辑拆解

  1. CurrentCust:锁定当前行的客户ID,确保后续计算仅针对该客户。
  2. AccountSalesSummary:过滤当前客户的非空账户记录,计算每个账户的累计销售额。
  3. TopAccount:从汇总结果中筛选出销售额最高的账户,若存在并列最高,返回排序后的第一个账户ID。
  4. 返回值:所有记录的Final_Acct_ID统一为该客户的最优账户ID,完全匹配示例需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:28:01