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

谷歌表格:基于工作日周一计算销售额周环比变化的问题

谷歌表格计算周一销售额周环比(跳过无数据节假日周一)

解决方案

假设你的表格结构为:

  • A列:日期(需设置为日期格式)
  • B列:对应日期的销售额
  • C列:用于计算周环比差值(当前周一销售额 - 上一个存在数据的周一销售额)

在C2单元格输入以下公式,下拉填充即可:

=IF(WEEKDAY(A2,2)=1, 
   B2 - IFERROR(XLOOKUP(MAX(FILTER(A$1:A1, WEEKDAY(A$1:A1,2)=1, A$1:A1 < A2)), A$1:A1, B$1:A1), ""), 
   "")

公式逻辑说明

  • WEEKDAY(A2,2)=1:判断当前行是否为周一(参数2设定周一=1,周日=7),非周一的行返回空值
  • MAX(FILTER(A$1:A1, WEEKDAY(A$1:A1,2)=1, A$1:A1 < A2)):筛选当前行之前所有是周一且日期早于当前日期的记录,取其中最大的日期(即最近的上一个有数据的周一)
  • XLOOKUP(...):根据找到的上一个周一日期,匹配对应的销售额
  • IFERROR(..., ""):处理第一个周一的情况,若没有上一个周一数据,返回空值(你也可以改成0,让结果等于当前销售额)

替代方案(用INDEX+MATCH实现)

如果习惯用INDEX和MATCH组合,可使用以下公式:

=IF(WEEKDAY(A2,2)=1,
   B2 - IFERROR(INDEX(B$1:A1, MATCH(MAX(FILTER(A$1:A1, WEEKDAY(A$1:A1,2)=1, A$1:A1 < A2)), A$1:A1, 0)), ""),
   "")

注意事项

  • 确保A列的日期是日期格式,而非文本格式,否则函数无法正确识别日期大小
  • 若需要将差值转为百分比(环比增长率),可将公式改为:=IF(WEEKDAY(A2,2)=1, (B2 - IFERROR(XLOOKUP(MAX(FILTER(A$1:A1, WEEKDAY(A$1:A1,2)=1, A$1:A1 < A2)), A$1:A1, B$1:A1), B2))/IFERROR(XLOOKUP(MAX(FILTER(A$1:A1, WEEKDAY(A$1:A1,2)=1, A$1:A1 < A2)), A$1:A1, B$1:A1), B2), "")(避免除以0的情况)

内容的提问来源于stack exchange,提问作者vk-code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:50:28