#sorting #google-apps-script #google-sheets #google-query-language
#сортировка #google-apps-script #google-sheets #google-query-language
Вопрос:
Я работаю с двумя электронными таблицами; первая электронная таблица принимает имя, а затем автоматически добавляет его в следующую электронную таблицу, которая сортируется в алфавитном порядке по имени. Проблема в том, что мне нужно создать новую строку, иначе данные из строки над ней будут добавлены вместе с именем. Вот запрос, который я использую: ‘=query(Рефералы!A2: O, «выберите *, где C не является нулевым порядком по D»)’. Я не думаю, что это можно сделать с помощью запроса, поэтому я изучал сценарии приложений Google. Однако я не уверен, как вставить в предварительно отсортированный список. Любая помощь приветствуется!
Комментарии:
1. Есть ли способ сделать это с помощью VLOOKUP?
Ответ №1:
Вы пробовали смещать заголовок, чтобы вы могли запускать его для диапазона листа?
=query(Referrals!A:O, "select * where C is not null order by D Offset 1")
Похоже, это устраняет некоторые проблемы, с которыми я столкнулся.
Редактировать:
Как насчет использования формулы фильтра?
=sort(FILTER(offset(Referrals!$A:$O,1,0),offset(Referrals!$C:$C,1,0)<>""),4,true)
Комментарии:
1. Потрясающе! Если вы считаете, что это ответ на ваш вопрос, пометьте его как ответ. Удачи!
2. К сожалению, данные по-прежнему сбиваются. Смещение просто перемещает листы вверх по строке, поэтому я фактически теряю некоторые данные. Когда создается новая строка, данные сверху помещаются в новую строку. Есть ли способ всегда создавать новую строку и соблюдать порядок?
Ответ №2:
При использовании скрипта приложений вы можете напрямую вставить строку (через Sheet.insertRow(RowIndex, numRows)) в лист с нужным индексом. Но я считаю, что вы можете добиться желаемого, сопоставив данные в «следующей таблице» с именами, импортированными с помощью «запроса» VLOOKUP
. Таким образом, при добавлении новых данных в «первую электронную таблицу» они будут отсортированы в соответствии с вашей формулой, но теперь связанные данные будут перемещать строки, чтобы продолжить сопоставление с соответствующей строкой.