You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel公式实现:如何找出支出最集中的核心日期(类热力图分析需求)

Excel公式实现:如何找出支出最集中的核心日期(类热力图分析需求)

嘿,这个需求我太懂了!你要的不是单纯找单笔支出最高的日期,而是想定位一个「支出热度最高的核心日期」——也就是某段时间窗口内总支出最大的那个中心节点,就像热力图的峰值对吧?咱们一步步来搞定这个问题:

核心思路

你要的本质是**「时间窗口内总支出的峰值点」**,核心逻辑分三步:

  1. 先定义一个合理的「时间窗口」(比如前后15天、一周或一个月,可按需调整)
  2. 计算每个日期对应的窗口内总支出
  3. 找到总支出最高的窗口,再算出这个窗口的「加权平均核心日期」(用支出金额做权重,比单纯取某一天更精准)

方案一:新手友好的辅助列法(兼容所有Excel版本)

假设你的日期数据在A列(A2:A8),支出金额在B列(B2:B8)

  1. 添加辅助列计算窗口总支出
    在C2单元格输入公式,下拉填充到所有行:

    =SUMIFS(B:B,A:A,">="&A2-15,A:A,"<="&A2+15)
    

    这里的15是「前后15天」的窗口天数,你可以改成7(一周)或30(一个月),完全看你的需求。

  2. 找到总支出最高的窗口对应的日期
    用下面的公式直接定位窗口内的参考日期:

    =INDEX(A:A,MATCH(MAX(C:C),C:C,0))
    
  3. 计算更精准的加权平均核心日期
    如果你想得到像例子里04/16/22这种贴合支出权重的中心日期,用这个公式(把A2替换成上面得到的参考日期单元格):

    =SUMPRODUCT((A:A>=A2-15)*(A:A<=A2+15)*A:A*B:B)/SUMPRODUCT((A:A>=A2-15)*(A:A<=A2+15)*B:B)
    

    这个公式会用支出金额做权重,金额越高的日期对核心点的影响越大,结果更符合你想要的「热力中心」感觉。


方案二:Excel 365专属的数组公式(无需辅助列)

如果你用的是Excel 365或Office 365,可以用LET+LAMBDA函数一次性算出核心日期,更简洁:

=LET(
    Dates,A2:A8,
    Amounts,B2:B8,
    Window,15,
    TotalSpend,BYROW(Dates,LAMBDA(d,SUMIFS(Amounts,Dates,">="&d-Window,Dates,"<="&d+Window))),
    MaxTotal,MAX(TotalSpend),
    CoreDates,FILTER(Dates,TotalSpend=MaxTotal),
    WeightedDate,SUMPRODUCT((Dates>=MIN(CoreDates)-Window)*(Dates<=MAX(CoreDates)+Window)*Dates*Amounts)/SUMPRODUCT((Dates>=MIN(CoreDates)-Window)*(Dates<=MAX(CoreDates)+Window)*Amounts),
    TEXT(WeightedDate,"mm/dd/yy")
)

公式说明:

  • Window:可以直接修改数字调整时间窗口大小
  • 公式会自动计算所有日期窗口的总支出,找到总支出最高的窗口范围,最后输出格式化后的加权平均核心日期
  • 针对你的示例数据,运行后会得到04/16/22左右的结果,和你的直觉完全一致

注意事项

  • 时间窗口的选择很关键:如果窗口太小,可能会漏掉相邻的高支出日期;窗口太大,又会把无关的支出包含进来,建议根据你的数据密度调整
  • 旧版Excel(无365函数)优先用辅助列法,稳定性更高
  • 加权平均日期比单纯取某一天更能体现「支出集中的核心」,因为它考虑了不同金额的权重

备注:内容来源于stack exchange,提问作者justiceorjustus

火山引擎 最新活动