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

时间:2019-07-01 10:46:26

标签: if-statement google-sheets google-sheets-formula google-sheets-query google-query-language

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

Tab1:第一个标签包含名为A,B和C的三列数据

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

目标:我试图使用查询功能来搜索Tab1中的列,并检查其条件是否为真,然后返回该值。 这是三个条件:  1.开放时间>(2019年6月30日下午5:00)  2.关闭时间<(2019年6月30日下午6:00)  3. C(Tab1的C列中的值)等于Tab2的C2(Tab 2的C列第1行) 这是我写的:

=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” ...“ max“ ...” avg“ ...   “ count” ...“ sum” ...“ no_values” ...“ no_format” ...“ is” ...“ null”   ...“年” ...“月” ...“日” ...“小时” ...“分钟” ...“第二”   ...“毫秒” ...“具有” ...“包含” ...“开始” ...“结束”   ...“比赛” ...“喜欢” ...“现在” ...“ dateDiff” ...“季度” ...   “较低”……“较高”……“ dayOfWeek”……“ toDate”…………    ……    ...“(” ...“ *” ...“-” ...

更新: Link to the spreadsheet:

1 个答案:

答案 0 :(得分: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)

0