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

Google Sheets公式开发:两列多日期列表匹配检测需求问询

两列逗号分隔日期的匹配判断方案

核心需求

判断表格中Incoming列和Outgoing列(均为逗号分隔的日期集合)是否存在至少一个相同日期,存在则标记True,否则标记False。

实现思路与公式

1. 单单元格公式(以C2为例)

适用于手动下拉的场景:

=IF(OR(A2="", B2=""), FALSE, REGEXMATCH(B2, TEXTJOIN("|", TRUE, SPLIT(A2, ", "))))
  • 逻辑:将Incoming列的日期拆分后用|连接成正则匹配模式,检查Outgoing列是否包含任意一个匹配日期;空值时返回False。

2. 批量自动处理公式(整列应用)

使用BYROW+LAMBDA实现逐行批量计算:

=BYROW(A2:B, LAMBDA(row, 
  LET(
    in_dates, SPLIT(INDEX(row, 1), ", "),
    out_dates, SPLIT(INDEX(row, 2), ", "),
    IF(OR(COUNTA(in_dates)=0, COUNTA(out_dates)=0), 
      FALSE, 
      SUMPRODUCT(--COUNTIF(in_dates, out_dates))>0
    )
  )
))
  • 逻辑:
    1. 用LET定义每行拆分后的日期数组in_dates和out_dates
    2. 检查任意一列无日期时返回False
    3. 用COUNTIF统计两个数组的交集数量,数量大于0则返回True

3. 另一种正则批量写法

=BYROW(A2:B, LAMBDA(row, 
  IF(OR(INDEX(row,1)="", INDEX(row,2)=""), 
    FALSE, 
    REGEXMATCH(INDEX(row,2), TEXTJOIN("|", TRUE, SPLIT(INDEX(row,1), ", ")))
  )
))
  • 逻辑与单单元格公式一致,通过BYROW遍历每行实现批量处理。

关键函数说明

  • SPLIT: 将逗号分隔的字符串拆分为日期数组
  • TEXTJOIN: 将数组元素用指定符号(如|)连接,生成正则匹配的“或”模式
  • REGEXMATCH: 检查字符串是否匹配指定正则模式
  • BYROW+LAMBDA: 逐行处理表格区域,实现批量计算
  • SUMPRODUCT+COUNTIF: 统计两个数组的交集数量,判断是否存在重叠项

内容的提问来源于stack exchange,提问作者Aleister Tanek Javas Mraz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:13:09