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

PowerBI需求:计算客户首12个月营收及对应首尾月份

Power BI DAX 解决方案:客户首12个月营收统计

核心逻辑

基于事实表Sales和维度表Dates,实现客户首12个月营收的计算,并配合Year/Customer切片器完成动态显示控制:

  • 仅在所选年份与客户首12个月周期重叠时,显示该客户数据
  • 严格限定统计范围为客户首次销售起的连续12个月

步骤1:添加基础计算列(Sales表)

在Sales表中创建以下计算列,用于确定每个客户的首销周期:

首次销售月份

首次销售月份 = CALCULATE(MIN(Sales[Date]), ALLEXCEPT(Sales, Sales[Customer]))

首12个月结束月份

首12个月结束月份 = EDATE(Sales[首次销售月份], 11)

注:EDATE函数自动处理跨年月计算,例如2024年7月加11个月将返回2025年6月


步骤2:创建核心度量值

1. 首12个月营收

首12个月营收 = 
VAR CurrentCustomer = SELECTEDVALUE(Sales[Customer])
VAR FirstSaleMonth = CALCULATE(MIN(Sales[Date]), ALLEXCEPT(Sales, Sales[Customer]))
VAR LastMonthOfFirst12 = EDATE(FirstSaleMonth, 11)
VAR SelectedYear = SELECTEDVALUE(Dates[Year])
VAR YearStart = DATE(SelectedYear, 1, 1)
VAR YearEnd = DATE(SelectedYear, 12, 31)
VAR IsOverlap = NOT(YearEnd < FirstSaleMonth || YearStart > LastMonthOfFirst12)
RETURN
IF(
    IsOverlap,
    CALCULATE(
        SUM(Sales[sales Value]),
        DATESBETWEEN(Dates[Date], FirstSaleMonth, LastMonthOfFirst12)
    ),
    BLANK()
)
  • 逻辑:判断所选年份与客户首12个月周期是否重叠,仅重叠时返回营收总额,否则返回空值(客户将自动隐藏)

2. 首12个月最后月份(格式化)

首12个月最后月份 = 
VAR FirstSaleMonth = CALCULATE(MIN(Sales[Date]), ALLEXCEPT(Sales, Sales[Customer]))
VAR LastMonthOfFirst12 = EDATE(FirstSaleMonth, 11)
RETURN
FORMAT(LastMonthOfFirst12, "YYYY年MM月")

3. 首次销售月份(可选补充列)

首次销售月份_展示 = 
VAR FirstSaleMonth = CALCULATE(MIN(Sales[Date]), ALLEXCEPT(Sales, Sales[Customer]))
RETURN
FORMAT(FirstSaleMonth, "YYYY年MM月")

验证规则匹配

  • 客户A(首销2024年1月):首12个月周期为2024.1-2024.12,当Year切片器选2025年时,无周期重叠,度量值返回空,客户A自动隐藏
  • 客户B(首销2024年7月):首12个月周期为2024.7-2025.6,当Year切片器选2025年7月及以后时,日期超出周期范围,度量值返回空,客户B自动隐藏

报表设置

将表格视觉对象的筛选条件设置为:首12个月营收 ≠ 空白,确保仅显示符合条件的客户数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:33:18