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

如何在Power BI中用DAX计算环比新增客户及季度实现方案

解决方案:Power BI中按月/季度获取新增客户

一、按月维度获取新增客户DAX实现

前提准备

建议先建立日期表并关联orders表的Date_Created列,时间维度筛选会更稳定。若暂时没有日期表,也可直接基于orders表的日期字段处理。

方式1:创建计算表返回新增客户列表

通过计算表直接输出选中月份的新增客户(即当月有记录、上月无记录的客户):

新增客户_月度 = 
VAR 选中月份 = MAX('日期表'[年份月份]) -- 日期表需包含格式化的年月字段,如"2022-07"
VAR 上月 = EDATE(选中月份, -1)
VAR 当前月客户 = VALUES(orders[Customer])
VAR 上月客户 = CALCULATE(VALUES(orders[Customer]), '日期表'[年份月份] = 上月)
RETURN
EXCEPT(当前月客户, 上月客户)

无日期表时的替代写法:

新增客户_月度 = 
VAR 选中日期 = MAX(orders[Date_Created])
VAR 当前月起始 = DATE(YEAR(选中日期), MONTH(选中日期), 1)
VAR 上月起始 = EDATE(当前月起始, -1)
VAR 当前月客户 = CALCULATE(VALUES(orders[Customer]), DATESMTD(orders[Date_Created]))
VAR 上月客户 = CALCULATE(VALUES(orders[Customer]), DATESMTD(DATEADD(orders[Date_Created], -1, MONTH)))
RETURN
EXCEPT(当前月客户, 上月客户)

方式2:用度量值标记新增客户

若需在现有表格中标记每个客户是否为当月新增,可编写以下度量值,后续筛选度量值为1的记录即可:

是否为月度新增客户 = 
VAR 选中月份 = MAX('日期表'[年份月份])
VAR 客户首次下单日期 = CALCULATE(MIN(orders[Date_Created]), ALLEXCEPT(orders, orders[Customer]))
VAR 首次下单月份 = DATE(YEAR(客户首次下单日期), MONTH(客户首次下单日期), 1)
RETURN
IF(首次下单月份 = 选中月份, 1, 0)

二、按季度维度实现的可行性

完全支持按季度维度实现,逻辑与月度一致,仅需将时间范围替换为季度:

方式1:计算表返回季度新增客户

新增客户_季度 = 
VAR 选中季度 = MAX('日期表'[年份季度]) -- 日期表需包含格式化的季度字段,如"2022-Q3"
VAR 上季度 = DATEADD('日期表'[日期], -1, QUARTER)
VAR 当前季度客户 = VALUES(orders[Customer])
VAR 上季度客户 = CALCULATE(VALUES(orders[Customer]), '日期表'[年份季度] = FORMAT(上季度, "YYYY-Qq"))
RETURN
EXCEPT(当前季度客户, 上季度客户)

方式2:度量值标记季度新增客户

是否为季度新增客户 = 
VAR 选中季度 = MAX('日期表'[年份季度])
VAR 客户首次下单日期 = CALCULATE(MIN(orders[Date_Created]), ALLEXCEPT(orders, orders[Customer]))
VAR 首次下单季度 = FORMAT(客户首次下单日期, "YYYY-Qq")
RETURN
IF(首次下单季度 = 选中季度, 1, 0)

示例验证

以你提供的6月、7月数据为例:

  • 选中2022年7月时,当前月客户集合为{A、C、D、E、F、G、H},上月客户集合为{A、B、C、D、E、F}
  • 通过EXCEPT函数计算后,得到新增客户G、H,符合需求预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:10:50