Как проверить, пуст ли параметр запроса?

Идея состоит в том, чтобы создать список настольных игр на основе таких параметров, как количество игроков, время и / или уровень сложности. Я использую функцию QUERY в Google Таблицах.

У меня есть лист со списком настольных игр. У них есть отдельные столбцы для названия, минимального количества игроков, максимального количества игроков, сложности, времени игры.

На втором листе у меня есть 3 ячейки, которые пользователь может использовать для записи количества игроков (B1), сложности (B2) и / или времени воспроизведения (B3).

Идея состоит в том, что со всеми тремя пустыми ячейками ничего не отображается, но затем вы можете заполнить любую или даже все три ячейки, чтобы отфильтровать полный список игр.

Однако, если я использую один запрос со всеми тремя параметрами, если они пусты, я получаю сообщение об ошибке.

Я обошел проблему, используя несколько вложенных IF, которые проверяют, пусты ли какие-либо ячейки. Исходя из этого, он запускает немного другую функцию QUERY (т.е. исключает пустую ячейку). Однако это сложно устранить и будет сложно изменить, если я захочу добавить какие-либо дополнительные параметры.

Это полный запрос:

=QUERY('Lista gier'!A1:H424;"select A,C,D,E,F where C<="&B1&" AND D>="&B1&" AND E='"&B2&"' AND F<="&B12&" AND F>=(0.5*"&B12&") AND B='Gra'");

Ожидаемые результаты - это правильный список игр, но я всегда получаю сообщение об ошибке:

Невозможно проанализировать строку запроса для параметра функции QUERY 2: PARSE_ERROR: обнаружено "" C "" в строке 1, столбце 24. Ожидалось одно из: "(" ... "(" ...




Ответы (1)


правильный синтаксис:

=QUERY('Lista gier'!A1:H424; 
 "select A,C,D,E,F 
  where C <= "&B1&" 
    and D >= "&B1&" 
    and E  = '"&B2&"' 
    and F <= "&B12&" 
    and F >= "&0,5*B12&" 
    and B  = 'Gra'"; 0)

при условии, что B1 и B12 являются числовыми, а B2 - текстовой строкой

person player0    schedule 19.07.2019
comment
Когда я использую вашу формулу, я получаю ошибку синтаксического анализа формулы. В любом случае, чем это отличается, кроме того, что он пропускает заголовки? - person Exon9; 21.07.2019
comment
@ Exon9 исправлен, попробуйте сейчас - person player0; 21.07.2019