Функция медленной сортировки / фильтрации для Google Sheets с Importrange - PullRequest
1 голос
/ 19 марта 2020

Для нашей базы данных компании я создал работающую функцию сортировки / фильтрации, которая получает данные с другого листа через Importrange. Поиск можно сузить по определенным параметрам поиска.

В настоящее время база данных по-прежнему находится на том же листе, поэтому 20 000 строк и 18 столбцов информации по-прежнему работают нормально и быстро.

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

Я также пытался использовать решение для запросов, но там я не могу gr asp, как я могу используйте возможную функцию «и / или» (т. е. ищите все заказы пользователя C только с замечанием 1. Если параметр не указан, покажите все.)

query(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ea47tHXZ5QfSGQ2F9VN0RLXbP9HHg-7pdpZ4_9QTKY4/edit";"Sheet!A11:D");"
SELECT * WHERE 
Col1 = '"&B1&"'  
Col2 = '"&B2&"'
ORDER BY Col3 DESC
";0)

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

Лист 1 (здесь вы можете указать параметры поиска): https://docs.google.com/spreadsheets/d/18BUz7Qm0TPMB2xte4iJ31P5aYTQcZNlbiW_agxAfb4U/edit#gid = 0

Лист 2 (здесь записи базы данных): https://docs.google.com/spreadsheets/d/1ea47tHXZ5QfSGQ2F9VN0RLXbP9HHg-7pdpZ4_9QTKY4/edit#gid = 0

Ваша помощь очень ценится. :)

1 Ответ

2 голосов
/ 19 марта 2020

try:

=QUERY(IMPORTRANGE("1bb6reEx6QG8aAqiPHKrQAdNJKbBYNnGceFjgRAPpeo4"; "Sheet!F6:I"); 
 "where "&TEXTJOIN(" and "; 1; "1=1";
 IF(B1="";;"Col1 contains '"&A1&" "&B1&"'");
 IF(B2="";;"Col2 = '"&A2&" "&B2&"'");
 IF(B3="";;"Col3 = date '"&TEXT(B3; "yyyy-mm-dd")&"'");
 IF(B4="";;"Col4 = '"&A4&" "&B4&"'")); 1)

0


демонстрационная таблица

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...