Фильтруйте динамически созданный диапазон с помощью QUERY в Google Sheets - PullRequest
1 голос
/ 13 февраля 2020

Я сейчас использую этот запрос

=sort({IFERROR(query('PI Calcs'!C4:K51,"select C,G,H, K where C is not null and G > 0"),{"","","",""});IFERROR(query('PI Calcs'!C54:P101,"select C,J,K,P where C is not null and J > 0"),{"","","",""});IFERROR(query('PI Calcs'!C104:P127,"select C,J,K,P where C is not null and J > 0"),{"","","",""})},2,false)

Я соединяю 3 диапазона вместе, используя QUERY. Я использую IFERROR, потому что если какой-либо из запросов возвращает пустой набор, то я не могу объединить их вместе, результатом сбоя является пустая строка из 4 значений.

Моя сложность заключается в удалении этих пустых значений из окончательного набора , так как при сортировке их я получаю 1 пустую строку для каждого неудачного запроса. Я пытался использовать FILTER, но у меня нет возможности ссылаться на столбец в диапазоне, поскольку он создается динамически.

Как я могу отфильтровать пустые строки из динамически создаваемого диапазона? Есть ли способ запросить и объединить результаты, не возвращаясь к пустому диапазону?

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

попробуйте этот более короткий:

=QUERY(SORT({IFERROR(QUERY('PI Calcs'!C4:K51, 
 "select C,G,H,K 
  where C is not null 
    and G > 0"), {"","","",""});
 IFERROR(QUERY({'PI Calcs'!C54:P101; 'PI Calcs'!C104:P127},
 "select Col1,Col8,Col9,Col14 
  where Col1 is not null 
    and Col8 > 0"), {"","","",""}), 2, 0), 
 "where Col1 is not null", 0)

или даже более короткий:

=QUERY({'PI Calcs'!C54:P101; 'PI Calcs'!C104:P127; 
 {'PI Calcs'!C4:I51, 'PI Calcs'!G4:L51,'PI Calcs'!K4:K51}},
 "select Col1,Col8,Col9,Col14 
  where Col1 is not null 
    and Col8 > 0
  order by Col2 desc", 0)
0 голосов
/ 13 февраля 2020

почему бы не запросить ваши запросы?

=QUERY({IFERROR(query('PI Calcs'!C4:K51,"select C,G,H, K where C is not null and G > 0"),{"","","",""});IFERROR(query('PI Calcs'!C54:P101,"select C,J,K,P where C is not null and J > 0"),{"","","",""});IFERROR(query('PI Calcs'!C104:P127,"select C,J,K,P where C is not null and J > 0"),{"","","",""})},"where Col1 is not null order by Col2 desc",0)
...