Как сопоставить две ячейки на разных листах в Google Sheet с помощью функции QUERY? - PullRequest
1 голос
/ 01 июля 2019

У меня есть лист с двумя вкладками:

Tab1: первая вкладка содержит данные в трех столбцах с именами A, B и C

Tab2: вторая вкладка содержит данные в трех столбцах с именами A, B и C. Она также включает в себя две ячейки, которые я собираюсь использовать условия. Я назвал их OpenTime в ячейке D2 и CloseTime в ячейке D3.

Цель: я пытаюсь использовать функцию запроса для поиска столбцов в Tab1 и проверки их условий, верните значение. Это три условия: 1. Открытое время> (30 июня 2019 г., 17:00) 2. Время закрытия <(30 июня 2019 г. 18:00) 3. C (значение в столбце C в Tab1) равно C2 в Tab2 (столбец C, строка 1 в Tab 2) Вот что я написал: </p>

=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), он возвращает ошибку. Что я делаю не так?

Вот ошибка:

Невозможно проанализировать строку запроса для параметра 2 функции QUERY: PARSE_ERROR: Обнаружено "" $ "" в строке 1, столбец 8. Ожидал одного из: "true" ... "false" ... "date" ... "timeofday" ... "datetime" ... "timestamp" ... "min" ... " max "..." avg "... "count" ... "sum" ... "no_values" ... "no_format" ... "is" ... "null" ... "год" ... "месяц" ... "день" ... "час" ... "минута" ... "секунда" ... "миллисекунда" ... "с" ... "содержит" ... "начинается" ... "заканчивается" ... "соответствует" ... "как" ... "сейчас" ... "dateDiff" ... "четверть" ... "нижний" ... "верхний" ... "dayOfWeek" ... "toDate" ... ... ... ... ... ... "(" ... "*" ... "-" ...

Обновление: Ссылка на электронную таблицу:

1 Ответ

1 голос
/ 01 июля 2019

правильный синтаксис должен быть:

=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

...