@vrplayk

Как исправить ошибки фильтров чисел и дат в QUERY?

Строковые данные фильтруются в QUERY нормально. Как только это числа или даты, возникает ошибка #Н/Д - запрос не вернул никаких результатов.

Есть широкая таблица
Скачайте себе на гугл диск для теста.
spoiler
Она заполнена данными, среди которых есть колонки со временем и числами, которые дают сбой, при попытке их задействовать в фильтрации.
На соседнем листе с таким листом "Test", т.е. на листе "Filter", есть система фильтрации и вывод результата в колонке "BC".

В первой паре листов Test и Filter, формула не задействует каверзный фильтр колонки M, названной SEED с числами. Можно посмотреть как оно работает. Во второй паре задействует... Там формула дописана в конце этим фильтром и не работает.

В третьей паре есть моё временное решение изменять числа на строковые данные, добавляя к числу слово в конце. Так это работает. Этим костылём не воспользуешься при динамических данных, добавляемых через гугл-форму.

Что я упустил? Попытка убрать одинарные кавычки, чтобы обозначить фильтру что это числа, у меня не увенчались успехом. Формула сложноватая.

В конце я оставил лист "FilterWrong" для упражнений с компактной системой фильтров, которая работает, пока в формулу не добавишь фильтр по колонке с датами. С ними такая же проблема.

Вот формула в виде удобном только для понимания. Перед использованием, нужно будет свести её в единую строку.

=QUERY(TestWork!A4:AJ; 
	"select * where " 
& ЕСЛИ(СУММПРОИЗВ(A11:A15); " (C = '" & JOIN("' or C = '";FILTER(B11:B15;A11:A15)) & "')";" C <> '@@@@@'") 
& ЕСЛИ(СУММПРОИЗВ(A2:A5); " and (G = '" & JOIN("' or G = '";FILTER(B2:B5;A2:A5)) & "')";" and G <> '@@@@@'") 
& ЕСЛИ(СУММПРОИЗВ(C2:C25); " and (M = '" & JOIN(" or M = ";FILTER(D2:D25;C2:C25)) & "')";" and M <> '@@@@@'") 
& ЕСЛИ(СУММПРОИЗВ(E3:E); " and (J = '" & JOIN("' or J = '";FILTER(F3:F;E3:E)) & "')";" and J <> '@@@@@'")

)


Добавление следующего пласта формулы, с фильтром по датам, приведёт к ошибке
& ЕСЛИ(СУММПРОИЗВ(G3:G); " and (B = '" & JOIN("' or B = '";FILTER(H3:H;G3:G)) & "')";" and B <> '@@@@@'")

Так же, если данные колонки M будут всё-таки числами, то и добавленая до этого соответственная строка так же обрушит результат.

Как исправить ошибки фильтров чисел и дат в QUERY?
На что стоит обратить внимание в таких недоразумениях?
  • Вопрос задан
  • 448 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы