如何在PowerBI中编写DAX公式为客户表添加本年销售总额列?
计算客户本年销售总额的DAX实现
给客户表添加计算列,统计每位客户的本年销售总额,有两种常用的DAX写法:
方法一:使用CALCULATE(推荐)
这种写法利用DAX的上下文自动筛选当前客户,代码简洁高效:
本年销售总额 = CALCULATE( SUM(销售表[销售额]), 日历表[IsCurrentYear] = TRUE() )
说明
- CALCULATE会自动识别当前客户表行的
AccountID上下文,只统计该客户的销售数据 - 第二个参数添加本年筛选条件,限定只计算日历表中
IsCurrentYear为TRUE的时段数据 - 如果存在额外的筛选上下文干扰,可添加
ALL(客户表)确保只聚焦当前客户:本年销售总额 = CALCULATE( SUM(销售表[销售额]), 日历表[IsCurrentYear] = TRUE(), ALL(客户表) )
方法二:使用SUMX+FILTER(适合理解筛选逻辑)
如果你更习惯用FILTER明确指定筛选条件,可以用这种写法:
本年销售总额 = SUMX( FILTER( 销售表, 销售表[AccountID] = 客户表[AccountID] && RELATED(日历表[IsCurrentYear]) = TRUE() ), 销售表[销售额] )
说明
- FILTER遍历销售表,筛选出与当前客户
AccountID匹配、且关联日历表中属于本年的记录 - SUMX对筛选后的销售记录求和,得到该客户的本年销售总额
- 需确保销售表与日历表已通过日期字段建立正确关系,否则
RELATED无法获取到IsCurrentYear的值
注意事项
确保你的模型表关系正确:
- 客户表 ↔ 销售表:通过
AccountID建立一对多关系 - 销售表 ↔ 日历表:通过日期字段(如销售日期)建立一对多关系
内容的提问来源于stack exchange,提问作者Hawsidog
相关产品推荐
相关产品推荐

