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

Google Sheets:跨表提取指定日期且去重连续重复行的多列数据

解决方法

1. 动态关联日期的基础公式

先修改QUERY公式,实现动态引用Stats表B16单元格的日期,同时在Stats表中直接调用Calendar表的数据:

=QUERY(Calendar!A:K,"select H,I,J,K where F = date '"&TEXT(B16,"yyyy-mm-dd")&"'")
  • 核心逻辑:用TEXT(B16,"yyyy-mm-dd")将B16的日期转换为QUERY要求的yyyy-mm-dd格式字符串,再通过字符串拼接嵌入到QUERY语句中,替代原有的固定日期值。

2. 过滤连续重复的I/J/K行记录

在此基础上添加过滤逻辑,仅保留I、J、K列与上一行内容不完全相同的记录,用LET函数封装中间步骤提升可读性:

=LET(
  filtered_data, QUERY(Calendar!A:K,"select H,I,J,K where F = date '"&TEXT(B16,"yyyy-mm-dd")&"'"),
  ijk_cols, INDEX(filtered_data,,2):INDEX(filtered_data,,4),
  keep_row, BYROW(SEQUENCE(ROWS(filtered_data)), LAMBDA(row_num, 
    IF(row_num=1, TRUE, NOT(EXACT(TEXTJOIN("|",TRUE,INDEX(ijk_cols,row_num,)), TEXTJOIN("|",TRUE,INDEX(ijk_cols,row_num-1,))))
  )),
  FILTER(filtered_data, keep_row)
)
  • 步骤说明:
    • filtered_data:先获取符合目标日期的H、I、J、K列数据
    • ijk_cols:提取结果中的I、J、K列(对应filtered_data的第2到4列)
    • keep_row:生成过滤判断列,第一行默认保留;从第二行开始,通过TEXTJOIN将I/J/K列内容拼接成字符串,用EXACT精确比较当前行与上一行的拼接结果,仅保留内容不同的行
    • 最后用FILTER返回符合条件的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:15:26