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

如何用Google Sheet公式合并并展开客户与日期两列数据?

实现客户与月份的动态展开式组合列表(Google Sheets)

要在Google Sheets中实现客户列表与月份的动态展开式笛卡尔积组合(无需脚本,保持实时更新),可以用数组公式直接生成,以下是具体方案:

核心思路

通过ARRAYFORMULA结合SEQUENCE、INDEX、MOD等函数,实现两个列表的全量配对,且源数据更新时目标列表自动同步。

假设数据源结构

  • 客户列表:位于Sheet1的A2:A(从A2开始,包含所有客户,空行会自动忽略)
  • 可用日期列表:位于Sheet2的B2:B(从B2开始,包含所有日期,后续会提取月份)

生成组合列表

  1. 生成客户列(目标表的A2单元格输入):
=ARRAYFORMULA(INDEX(Sheet1!A2:A, CEILING(SEQUENCE(COUNTA(Sheet1!A2:A)*COUNTA(Sheet2!B2:B))/COUNTA(Sheet2!B2:B))))
  • 逻辑:用COUNTA统计两个列表的非空行数,计算总组合数;SEQUENCE生成对应数量的序列;CEILING让客户列表按月份行数循环重复,实现每个客户配对所有月份。
  1. 生成月份列(目标表的B2单元格输入):
=ARRAYFORMULA(INDEX(TEXT(Sheet2!B2:B, "yyyy-MM"), MOD(SEQUENCE(COUNTA(Sheet1!A2:A)*COUNTA(Sheet2!B2:B))-1, COUNTA(Sheet2!B2:B))+1))
  • 逻辑:TEXT将日期转换为年月格式(可按需修改,比如"yyyy年MM月"是中文格式,"MMMM yyyy"是英文月份全称);MOD让月份列表循环重复,实现每个月份配对所有客户。

注意事项

  • 如果你的数据源位置不同,直接替换公式中的Sheet1!A2:A和Sheet2!B2:B为实际的单元格范围即可。
  • 当源工作表中新增/删除客户或日期时,目标列表会自动更新,完全满足「live动态」需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:09:59