如何在Power BI中按月份批量计算单客平均消费
Power BI实现按月份筛选的单客平均消费方案
原始数据
| Date | Month | Offer | Customers | Spend |
|---|---|---|---|---|
| 2024-01-01 | 1 | A | 100,000 | 10,000 |
| 2024-01-02 | 1 | A | 100,000 | 20,000 |
| 2024-01-31 | 1 | B | 150,000 | 15,000 |
| 2024-02-01 | 2 | B | 150,000 | 20,000 |
| 2024-02-01 | 2 | B | 150,000 | 30,000 |
业务规则与需求
- 每个Offer的客户数为一次性触达的固定值,不会随时间变动
- Spend为累计消费值,单日新增消费为当日Spend与前期累计值的差值
- 核心需求:通过月份筛选器选择月份后,自动计算该月份内每个生效Offer的当月最大Spend除以对应客户数,再将所有Offer的计算结果求和(例如选择1月时,结果为0.30英镑)
最优实现方法:DAX度量值
直接创建以下DAX度量值,即可响应报表上的月份筛选,动态生成结果:
单客平均消费 = SUMX( SUMMARIZE( '你的数据表名', '你的数据表名'[Offer], "当月最大消费", MAX('你的数据表名'[Spend]), "触达客户数", MAX('你的数据表名'[Customers]) // 客户数固定,取MAX/MIN/LASTNONBLANK均可 ), [当月最大消费] / [触达客户数] )
度量值逻辑说明
SUMMARIZE函数会根据当前筛选的月份,按Offer分组,提取每个Offer在该月份的最大消费值和固定客户数,生成临时计算表SUMX遍历临时表,逐个计算每个Offer的单客消费(最大消费÷客户数),最后将所有结果累加得到总和
使用方式
- 在报表中添加月份切片器,关联数据表的
Month列 - 将该度量值拖入卡片视觉对象,即可看到选择不同月份时的动态计算结果
内容的提问来源于stack exchange,提问作者SRJCoding
相关产品推荐
相关产品推荐

