Синтаксис QUERY с использованием ссылки на ячейку
У меня возникли проблемы с выяснением довольно простой инструкции QUERY в таблицах Google. Я пытаюсь использовать ссылку на ячейку вместо статических значений, и у меня возникают проблемы. Ниже этого кода, который я использую, но я продолжаю получать ошибку "Ошибка: Формула разбора".
=QUERY(Responses!B1:I, "Select B where G contains"& $B1 &)
Я уверен, что это простая ошибка, но может кто-нибудь, пожалуйста, покажите мне, как написать выше, чтобы QUERY вытаскивал данные из B, где G содержит значение в ячейке B1 (ссылка на ячейку)?
Ответы
Ответ 1
У меня есть только обходной путь.
В этом специальном случае я использовал бы функцию FILTER
вместо QUERY
:
=FILTER(Responses!B:B,Responses!G:G=B1)
Предполагая, что ваши данные находятся на листе "Ответы", но ваше состояние (ссылка на ячейку) находится в фактической ячейке B1.
Надеюсь, что это поможет.
UPDATE:
После некоторого поиска исходного вопроса: проблема с вашей формулой - это, безусловно, второй знак &
, который предполагает, что вы хотите связать что-то более с вашим инструктором WHERE
. Попробуйте удалить его. Если он все еще не работает, попробуйте следующее:
=QUERY(Responses!B1:I, "Select B where G matches '^.\*($" & B1 & ").\*$'")
- Я не пробовал, но это помогло в другом сообщении: Запрос с диапазоном значений для предложения WHERE?
Ответ 2
Скопировано из веб-приложений:
=QUERY(Responses!B1:I, "Select B where G contains '"&$B1&"'")
Ответ 3
Старая тема, но я нашел это в своем путешествии к нижнему ответу и фигуре, кому это может понадобиться и кому-то другому.
=IFERROR(ArrayFormula(query(index(Sheet3!A:C&""),"select* Where Col1="""&B1&""" ")), ARRAYFORMULA({"* *","no cells","match"}));
Вот просто построенный текстовый фильтр из набора данных из 3 столбцов (A, B и C), расположенный в "sheet3", в текущий лист и вызывающий сравнение с ячейкой из текущего листа для фильтрации внутри Col1(A)
.
Этот бит должен просто избавиться от ошибки #N/A
, если фильтр не возвращает результатов //ARRAYFORMULA({"* *","no cells","match"}))
Ответ 4
Я знаю, что это старый поток, но у меня был тот же вопрос, что и OP, и нашел ответ:
Вы почти находитесь, способ включения ссылок на ячейки в языке запросов состоит в том, чтобы обернуть всю вещь в речевые метки. Поскольку весь запрос написан в речевых методах, вам нужно будет чередовать "и", как показано ниже.
Вам понадобится следующее:
=QUERY(Responses!B1:I, "Select B where G contains '"& B1 &"' ")
Если вы захотите обратиться к нескольким ячейкам, вы можете добавить еще что-то вроде этого
=QUERY(Responses!B1:I, "Select B where G contains '"& B1 &"' and G contains '"& B2 &"' ")
Вышеуказанное будет отфильтровывать ваши результаты дальше в зависимости от содержимого B1 и B2.