Для нашей базы данных компании я создал работающую функцию сортировки / фильтрации, которая получает данные с другого листа через 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
Ваша помощь очень ценится. :)
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)