Как я могу сделать некоторые данные в автоматической сортировке Google Таблиц?

Предположим, я хочу, чтобы в Google Таблицах были автоматически отсортированы некоторые данные, например столбец C .

Как это сделать?

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

42 голоса | спросил Diego Petrucci 1 +04002010-10-01T00:59:55+04:00312010bEurope/MoscowFri, 01 Oct 2010 00:59:55 +0400 2010, 00:59:55

4 ответа


35

Вы можете использовать функцию sort () для этого , но вы должны иметь свои данные в одном месте и автоматически отсортированную копию этих данных в другом месте.

Например, скажем, у меня есть Sheet1 с моими данными:

  | A | B | С
=====================
 1 | Это | это | 2
 2 | Это | это | 1
 3 | Тест | тест | 3
 

Тогда в Sheet2, ячейке A1, я бы поставил эту функцию:

  

= sort (Sheet1! A: C, 3, TRUE)

Это будет показывать мои данные, но отсортировано по столбцу C (третий столбец), по возрастанию.

  | A | B | С
=====================
 1 | Это | это | 1
 2 | Это | это | 2
 3 | Тест | тест | 3
 
ответил William Jackson 7 PMpThu, 07 Apr 2011 20:55:57 +040055Thursday 2011, 20:55:57
29

Также можно использовать Скрипты Google Apps для автоматической сортировки данных на месте.

Это может быть труднее достичь и более подвержено ошибкам (я все равно поеду за решением Уильяма Джексона, +1 BTW), но я подумал, что это достаточно интересно показать.

У меня есть лист, который выглядит так:

лист автоматической сортировки

Я добавил новый скрипт, используя следующие шаги:

  • в меню, перейдите в Инструменты -> Редактор сценариев ...
  • выберите Создайте новый проект
  • в появившемся окне пустого кода вставьте следующий код, который будет запускаться автоматически всякий раз, когда редактируется ячейка:

      function onEdit (событие) {
      var sheet = event.source.getActiveSheet ();
      var editCell = sheet.getActiveCell ();
    
      var columnToSortBy = 4;
      var tableRange = "B3: E9";
    
      if (отредактированCell.getColumn () == columnToSortBy) {
        var range = sheet.getRange (tableRange);
        range.sort ({column: columnToSortBy});
      }
    }
     
  • вернитесь к листу и начните играть со значениями, чтобы автоматически сортировать таблицу каждый раз

<сильный> Примечание:

В приведенном выше скрипте

  • значение 4 представляет индекс столбца D (столбец Value ), который будет сортироваться)
  • значение "B3: E9" представляет диапазон таблицы (исключая строку заголовка)

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

ответил GolfWolf 10 PMpTue, 10 Apr 2012 23:51:58 +040051Tuesday 2012, 23:51:58
7

Вот общий сценарий, который будет автосортироваться на основе 1-го столбца и предполагает строку заголовка.

Чтобы создать сценарий:

  • В меню выберите Tools -> Редактор скриптов ...

В пустое окно кода вставьте следующий код, который будет запускаться автоматически всякий раз, когда редактируется ячейка:

  //Ссылка на этот скрипт:
 //http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036

 /**
 * Автоматически сортирует 1-й столбец (не строку заголовка) По возрастанию.
 * /
function onEdit (событие) {
  var sheet = event.source.getActiveSheet ();
  var editCell = sheet.getActiveCell ();

  var columnToSortBy = 1;
  var tableRange = "A2: T99"; //Что нужно сортировать.

  if (отредактированCell.getColumn () == columnToSortBy) {
    var range = sheet.getRange (tableRange);
    range.sort ({column: columnToSortBy, по возрастанию: true});
  }
}
 
ответил geekzspot 14 AMpSun, 14 Apr 2013 03:17:06 +040017Sunday 2013, 03:17:06
3

Другой вариант без скрипта:

  = QUERY (A1: C3, "SELECT * ORDER BY C")
 

Диапазон ограничен (A1: C3), потому что там, где порядок начинается по возрастанию, будут отображаться первые записи.

ответил pnuts 25 +04002014-10-25T22:41:19+04:00312014bEurope/MoscowSat, 25 Oct 2014 22:41:19 +0400 2014, 22:41:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132