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

如何在Power BI/Excel中从聚合数据计算每日销售额列

从Sales YTD反向计算每日销售额

核心逻辑

每日销售额 = 当日Sales YTD - 该人员上一日Sales YTD;如果是该人员的首次记录,直接取当日Sales YTD值。

示例数据

DatePersonSales YTDCalculated Daily Sales
1/1/2023John1,0001,000
1/1/2023Mark2,0002,000
1/2/2023John1,0000
1/2/2023Mark2,500500
1/3/2023John1,0000
1/3/2023Mark3,000500
1/4/2023John2,5001,500
1/4/2023Mark3,0000
1/5/2023John3,000500
1/5/2023Mark4,0001,000

Excel 实现方法

假设数据在A2:C11区域(A列=日期,B列=人员,C列=Sales YTD),在D2单元格输入公式后下拉填充:

适用于Excel 365/2021的公式

=IF(COUNTIFS($B$2:B2,B2,$A$2:A2,"<"&A2)=0,C2,C2-XLOOKUP(1,($B$2:B1=B2)*($A$2:A1<A2),$C$2:C1,0,0,-1))
  • 先判断当前行是否为该人员的第一条记录,是则直接取C列值;
  • 若不是,用XLOOKUP定位该人员上一日的Sales YTD,用当前值减去它得到当日销售额。

适用于旧版Excel的数组公式

=IF(COUNTIFS($B$2:B2,B2,$A$2:A2,"<"&A2)=0,C2,C2-INDEX($C$2:C1,MATCH(1,($B$2:B1=B2)*($A$2:A1<A2),0)))

注意:输入后需按Ctrl+Shift+Enter完成数组公式录入,Excel 365及以后版本无需此操作。


Power BI 实现方法

在数据视图中新建计算列,使用DAX公式:

Calculated Daily Sales = 
VAR PreviousYTD = 
    CALCULATE(
        MAX('Table'[Sales YTD]),
        ALLEXCEPT('Table','Table'[Person]),
        'Table'[Date] < EARLIER('Table'[Date])
    )
RETURN
    IF(ISBLANK(PreviousYTD), 'Table'[Sales YTD], 'Table'[Sales YTD] - PreviousYTD)
  • 用VAR定义变量PreviousYTD,筛选出当前人员上一日的Sales YTD;
  • 如果没有上一日数据(即首次记录),返回当前Sales YTD,否则返回差值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:10:25