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

基于日期在其他工作表同步行数据的技术问题求助

解决每日工作表自动提取主日志对应行的问题

现有公式问题分析

QUERY公式错误原因

你当前的QUERY公式:

=QUERY('Freewire Log Template'!A3:O, "Select * where J contains '"&B$1&"'",1)

问题出在单元格引用的拼接方式错误:你把B$1放在了双引号包裹的查询字符串内部,且引号嵌套混乱,导致QUERY无法识别B$1的实际值,反而把&B$1&当成了要匹配的文本内容,自然返回不匹配的行。

INDEX+MATCH公式错误原因

你的INDEX+MATCH公式:

=INDEX('Freewire Log Template'!A3:O$22, MATCH(B$1,{'Freewire Log Template'!J3:J$22},0))

问题在于只能返回第一个匹配项,当你下拉公式时,没有处理多匹配场景,导致重复显示第一行数据;另外用{}包裹J列范围属于多余操作,不影响结果但没必要。


修正后的解决方案

方案1:修正QUERY公式(推荐)

根据J列数据类型选择对应写法:

  • 如果J列是日期格式:
    =QUERY('Freewire Log Template'!A3:O, "Select * where J = date '"&TEXT(B$1,"yyyy-mm-dd")&"'", 1)
    
    用TEXT函数把B1的日期转成QUERY能识别的yyyy-mm-dd格式,再拼接进查询字符串,实现精确匹配。
  • 如果J列是文本格式的日期/标识:
    =QUERY('Freewire Log Template'!A3:O, "Select * where J = '"&B$1&"'", 1)
    
    直接把B1的文本值拼接进查询字符串,注意单引号包裹文本内容。

方案2:INDEX+MATCH数组公式(返回所有匹配行)

如果需要提取所有符合条件的行,用数组公式实现逐行返回:

=ARRAYFORMULA(IFERROR(INDEX('Freewire Log Template'!A3:O, SMALL(IF('Freewire Log Template'!J3:J=B$1, ROW('Freewire Log Template'!J3:J)-ROW('Freewire Log Template'!J3)+1), ROWS(A$1:A1)), COLUMN(A:O))))

把公式放在每日工作表的起始单元格(比如A3),下拉即可依次显示所有匹配的行,IFERROR用于处理无匹配时的空白显示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:37:46