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

Google Sheets 如何在唯一日期列表前自动插入指定产品按月汇总行

解决方案

你之前用DAY(UNIQUE())=1的逻辑失效,核心原因是如果对应月份1号没有数据,UNIQUE返回的结果中不会包含1号的日期,自然无法触发汇总行插入。我们采用「月度汇总行+每日明细行合并后排序」的方案实现需求,完全适配欧洲版Google Sheets的语法规则,且支持数据新增时自动更新。


完整动态公式

将以下公式直接粘贴到TAB2工作表的A2单元格即可,会自动溢出所有行的日期、数值两列数据,原有你编写的UNIQUE、SUMIF公式可全部删除:

=SORT({UNIQUE(EOMONTH(FILTER('TAB1'!A2:A;'TAB1'!A2:A<>"";);0))\ARRAYFORMULA(SUMIF(EOMONTH('TAB1'!A2:A;0)&'TAB1'!C2:C;UNIQUE(EOMONTH(FILTER('TAB1'!A2:A;'TAB1'!A2:A<>"";);0))&"1";'TAB1'!B2:B))\SEQUENCE(ROWS(UNIQUE(EOMONTH(FILTER('TAB1'!A2:A;'TAB1'!A2:A<>"";);0)));1;0;0);UNIQUE(FILTER('TAB1'!A2:A;'TAB1'!A2:A<>"";))\ARRAYFORMULA(SUMIF('TAB1'!A2:A&'TAB1'!C2:C;UNIQUE(FILTER('TAB1'!A2:A;'TAB1'!A2:A<>"";))&"1";'TAB1'!B2:B))\SEQUENCE(ROWS(UNIQUE(FILTER('TAB1'!A2:A;'TAB1'!A2:A<>"";)));1;1;0)};1;TRUE;3;TRUE)

核心逻辑说明

  • 构造了一个3列的临时数组:第一列存日期(月度汇总行存对应月份的月末日期,每日明细行存实际日期),第二列存对应汇总值,第三列存排序标记(汇总行标记为0,明细行标记为1)
  • 按第一列日期升序、第三列标记升序排序,同月份的汇总行就会自动排在当月所有明细行的最上方
  • 公式动态引用TAB1全量数据,TAB1新增数据后会自动重算,新的日期行将自动插入到对应月份汇总行下方、同月份已有日期的上方,无需手动调整

日期显示配置

要实现汇总行显示「月份全称+年份」、明细行显示原有DD.MM.YYYY格式,选中TAB2的A列,点击顶部菜单「格式 > 数字 > 自定义数字格式」,输入以下规则后保存即可:
[=EOMONTH(@;0)]"mmmm yyyy";DD.MM.YYYY


自定义调整规则

  • 如需统计其他Product-ID的数值,将公式中两处的"1"修改为对应ID即可
  • 如需修改汇总行的排序规则,调整SORT函数的最后两个参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:36:04