如何使用 QUERY 函数匹配 Google Sheet 中不同工作表中的两个单元格?

Posted

技术标签:

【中文标题】如何使用 QUERY 函数匹配 Google Sheet 中不同工作表中的两个单元格?【英文标题】:How to match two cells in different sheets in Google Sheet using QUERY function? 【发布时间】:2019-07-01 10:46:26 【问题描述】:

我有一张有两个标签的工作表:

Tab1:第一个选项卡包含名为 A、B 和 C 的三列中的数据

Tab2:第二个选项卡包含名为 A、B 和 C 的三列中的数据。它还包括两个单元格,我将使用条件。我在 D2 单元格中将它们称为 OpenTime,在 D3 单元格中将它们称为 CloseTime。

目标:我正在尝试使用查询功能搜索 Tab1 中的列,并检查它们的条件是否为真,返回值。 这是三个条件: 1.开放时间>(2019年6月30日下午5点) 2. 关闭时间

=query(Tab1!$A:$C,"select $B where $A> timestamp '"& text(D2,"yyyy-MM-dd HH:mm:ss")&"'" & "AND $A < timestamp '"&text(D3,"yyyy-MM-dd HH:mm:ss")&"'" & " AND $C Like '"&C2&"'",0)

如果我在 Tab1 中应用上述查询,它可以工作,但是,当我将它粘贴到第二个 Tab (Tab2) 中时,它会返回错误。 我做错了什么?

这是错误:

无法解析函数 QUERY 参数 2 的查询字符串: PARSE_ERROR:在第 1 行,第 1 列遇到“”$“” 8. 期待以下之一:“true”...“false”...“date”...“timeofday”...“datetime”...“timestamp”...“min”...“最大”...“平均”... “计数” ... “总和” ... “no_values” ... “no_format” ... “是” ... “空” ... “年” ... “月” ... “日” ... “小时” ... “分钟” ... “秒” ...“毫秒”...“与”...“包含”...“开始”...“结束” ...“匹配”...“喜欢”...“现在”...“dateDiff”...“季度”... “下” ... “上” ... “dayOfWeek” ... “toDate” ... ... ………… ... "(" ... "*" ... "-" ...

更新: Link to the spreadsheet:

【问题讨论】:

@player0 我已将链接添加到电子表格。 【参考方案1】:

正确的语法应该是:

=IF(IFERROR(QUERY(LiveAttendanceForm!$A:$C,
 "select B 
  where A > timestamp '"&TEXT(D$1, "yyyy-MM-dd HH:mm:ss")&"'
    and A < timestamp '"&TEXT(D$2, "yyyy-MM-dd HH:mm:ss")&"'
    and C = "&$C4, 0))=$A4, TRUE)

【讨论】:

谢谢。它和我写的完全一样,但是,它不起作用。请查看我共享的电子表格。 谢谢。有效。请您编辑您的答案并解释最后一句话。我不明白为什么最后一句中只有一个没有单引号的&符号:我的意思是:“&$C4 原因是因为C4包含一个数字。如果它是文本,那么它需要是' "&amp;C4&amp;" ' ",但 QUERY 中的数字会被区别对待。单引号表示“文本即将到来”

以上是关于如何使用 QUERY 函数匹配 Google Sheet 中不同工作表中的两个单元格?的主要内容,如果未能解决你的问题,请参考以下文章

应用电子商务操作过滤器时,Big Query 和 Google Analytics UI 不匹配

Google 电子表格“=QUERY”join() 等效函数?

使用 Google Big Query 在 Google App 脚本上超过最大执行时间

power query中M函数和处理数据

Google表格中的QUERY内的IF语句

如何在 Google 电子表格的 WHERE 子句 QUERY 中使用一系列单元格