如何使用 QUERY 函数匹配 Google Sheet 中不同工作表中的两个单元格?
How to match two cells in different sheets in Google Sheet using QUERY function?
我有一个带有两个选项卡的 sheet:
Tab1:第一个选项卡包含名为 A、B 和 C 的三列中的数据
Tab2:第二个选项卡包含名为 A、B 和 C 的三列中的数据。它还包括我将要使用条件的两个单元格。我在单元格 D2 中称它们为 OpenTime,在单元格 D3 中称它们为 CloseTime。
目标:我正在尝试使用查询功能来搜索 Tab1 中的列并检查它们的条件是否为真,return 值。
这是三个条件:
1. 开放时间 > (2019.06.305:00下午)
2. 关闭时间 < (2019.06.30 6:00 PM)
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) 时,它 return 出现错误。
我做错了什么?
这里是错误:
Unable to parse query string for Function QUERY parameter 2:
PARSE_ERROR: Encountered " "$ "" at line 1, column
8. Was expecting one of: "true" ... "false" ... "date" ... "timeofday" ... "datetime" ... "timestamp" ... "min" ... "max" ... "avg" ...
"count" ... "sum" ... "no_values" ... "no_format" ... "is" ... "null"
... "year" ... "month" ... "day" ... "hour" ... "minute" ... "second"
... "millisecond" ... "with" ... "contains" ... "starts" ... "ends"
... "matches" ... "like" ... "now" ... "dateDiff" ... "quarter" ...
"lower" ... "upper" ... "dayOfWeek" ... "toDate" ... ...
... ... ...
... "(" ... "*" ... "-" ...
正确的语法应该是:
=IF(IFERROR(QUERY(LiveAttendanceForm!$A:$C,
"select B
where A > timestamp '"&TEXT(D, "yyyy-MM-dd HH:mm:ss")&"'
and A < timestamp '"&TEXT(D, "yyyy-MM-dd HH:mm:ss")&"'
and C = "&$C4, 0))=$A4, TRUE)
我有一个带有两个选项卡的 sheet:
Tab1:第一个选项卡包含名为 A、B 和 C 的三列中的数据
Tab2:第二个选项卡包含名为 A、B 和 C 的三列中的数据。它还包括我将要使用条件的两个单元格。我在单元格 D2 中称它们为 OpenTime,在单元格 D3 中称它们为 CloseTime。
目标:我正在尝试使用查询功能来搜索 Tab1 中的列并检查它们的条件是否为真,return 值。 这是三个条件: 1. 开放时间 > (2019.06.305:00下午) 2. 关闭时间 < (2019.06.30 6:00 PM) 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) 时,它 return 出现错误。 我做错了什么?
这里是错误:
Unable to parse query string for Function QUERY parameter 2: PARSE_ERROR: Encountered " "$ "" at line 1, column 8. Was expecting one of: "true" ... "false" ... "date" ... "timeofday" ... "datetime" ... "timestamp" ... "min" ... "max" ... "avg" ... "count" ... "sum" ... "no_values" ... "no_format" ... "is" ... "null" ... "year" ... "month" ... "day" ... "hour" ... "minute" ... "second" ... "millisecond" ... "with" ... "contains" ... "starts" ... "ends" ... "matches" ... "like" ... "now" ... "dateDiff" ... "quarter" ... "lower" ... "upper" ... "dayOfWeek" ... "toDate" ... ... ... ... ... ... "(" ... "*" ... "-" ...
正确的语法应该是:
=IF(IFERROR(QUERY(LiveAttendanceForm!$A:$C,
"select B
where A > timestamp '"&TEXT(D, "yyyy-MM-dd HH:mm:ss")&"'
and A < timestamp '"&TEXT(D, "yyyy-MM-dd HH:mm:ss")&"'
and C = "&$C4, 0))=$A4, TRUE)