Вы можете использовать в sort()
функции для этого, но вы должны иметь свои данные в одном месте, и автоматически отсортированных копии этих данных в другом месте.
Например, скажем, у меня есть Sheet1 с моими данными:
| A | B | C
=====================
1 | This | this | 2
2 | Is | is | 1
3 | Test | test | 3
Затем в Sheet2, ячейка A1, я бы поместил эту функцию:
= сортировка (Sheet1! A: C, 3, TRUE)
Это покажет мои данные, но отсортированы по столбцу C (третий столбец), по возрастанию.
| A | B | C
=====================
1 | Is | is | 1
2 | This | this | 2
3 | Test | test | 3
;
например= sort(Sheet1!A:C; 3; TRUE)
Сценарии Google Apps также можно использовать для автоматической сортировки данных на месте.
Это может быть более трудным для достижения и более подверженным ошибкам (я все еще пошел бы на решение Уильяма Джексона, +1 BTW), но я думал, что это было достаточно интересно показать.
У меня есть лист, который выглядит так:
Я добавил новый скрипт, используя эти шаги:
в появившемся окне пустого кода вставьте следующий код, который будет запускаться автоматически при редактировании ячейки:
вернитесь к листу и начните играть со значениями, чтобы сортировать таблицу каждый раз автоматически
Примечание:
В приведенном выше сценарии
4
представляет индекс столбца D (Value
столбец - объект, который будет отсортирован)"B3:E9"
представляет диапазон таблицы (исключая строку заголовка)Ваша таблица, скорее всего, будет отличаться от моей, поэтому эти значения должны быть соответствующим образом скорректированы.
источник
null
дляevent
параметра, который в противном случае правильно заполняется инфраструктурой электронных таблиц Google при запуске реального события.range.sort
строку:range.sort( { column : columnToSortBy, ascending: false } );
. Дополнительные параметры сортировки см. На developer.google.com/apps-script/class_range#sortВот общий сценарий, который будет автоматически сортировать на основе 1-го столбца и предполагает строку заголовка.
Чтобы создать скрипт:
В пустом окне кода вставьте следующий код, который будет запускаться автоматически при редактировании ячейки:
источник
var sheet = SpreadsheetApp.getActiveSpreadsheet();
вместо того, что здесь.Другой вариант без скрипта:
Диапазон ограничен (A1: C3), потому что там, где порядок возрастает, пустые записи будут появляться первыми.
источник
SELECT * WHERE C <> '' ORDER BY C
для игнорирования пустых записей, затем вы можете использовать достаточно большой диапазон, чтобы включить все текущие и будущие строки.Использование решения сценария, но сортировка по нескольким столбцам
Я хотел отсортировать по выпадающему столбцу меню, а затем по дате.
Для этого измените строку «range.sort» фрагментов кода Cristian или geekspotz следующим образом:
Разница заключается в добавлении прямых скобок вокруг всего оператора (массива) и разделении сортировки запятыми.
Модификация кода сортировки получена из ответа Сержа о переполнении стека здесь : Автоматическая сортировка на листах
источник
По этой причине в Google Sheets есть фильтры, и вам не нужно создавать новый лист в своем документе.
Документация: https://support.google.com/docs/answer/3540681.
источник