Сортировка по произвольным элементам вложенных списков. Сортировка данных по нескольким столбцам

Word может выполнить сортировку по алфавиту от А до Я (по возрастанию) и от Я до А (по убыванию).

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

Для сортировки элементов необходимо создать из них или расположить каждый элемент с новой строки в отдельном абзаце. Теперь разберемся, как сортировать по алфавиту в ворде простые списки и данные в таблице.

Сортировка списка по алфавиту

Для расположения элементов списка по алфавиту (от А до Я) выполните следующие действия:

Если необходимо выполнить сортировку в обратном порядке, то поставьте переключатель в положение По убыванию (смотри рисунок выше)

Сортировка списка в таблице

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


Отсортируем данные: фамилии - в алфавитном порядке.

Получим следующий результат


Сортировка списка в таблице по нескольким полям

Теперь отсортируем данные в таблице следующим образом: Фамилии по алфавиту, должность по алфавиту и год рождения по убыванию (молодые сотрудники вверху списка)

Получим следующий результат


Как видно, записи отсортированы по алфавиту сначала по должности. Затем по фамилиям в пределах должности. Третий ключ в данном примере не показал своего действия из-за небольшого количества записей и отсутствия одинаковых фамилий.

Дорогой читатель! Вы посмотрели статью до конца.
Получили вы ответ на свой вопрос? Напишите в комментариях пару слов.
Если ответа не нашли, укажите что искали .

В жизни случаются ситуации, когда человеку (зачастую — солдату или призывнику) жизненно необходимо узнать звания армии России по возрастанию. Или же просто увидеть перед глазами список воинских званий по порядку для того, чтобы определить, кто кому подчиняется. Да что я вам тут рассказываю! Каждый из нас сам знает, что такие случаи случаются и их не избежать.

Именно поэтому я решил сделать небольшую статью-заметку, которая содержит в себе максимум пользы в ответах на следующие вопросы:

  1. Как располагаются звания в армии России по возрастанию?
  2. Как располагаются погоны военнослужащих в армии России по возрастанию?

От слов к делу. Поехали!

Звания в армии России по возрастанию

Сделаю одну ремарку перед списком. Нужно понимать, что в нашей армии существуют 2 вида воинских званий военнослужащих — войсковые и корабельные. Если грубо описать разницу этих двух видов званий, то можно сказать так: войсковые — это звания тех, кто служит на земле и в воздухе. Корабельные — тех, кто служит на воде и под ней.

Кроме того, я условно разделил все звания на 2 категории: офицерские звания и звания прочих военнослужащих. Очевидно, что офицер > прочих военнослужащих. Такова иерархия. А вот, кстати, и она:

Неофицерские звания в армии по порядку (от низших к высшим)

  1. Рядовой ~ Матрос.
  2. Ефрейтор ~ Старший матрос.
  3. Младший сержант ~ Старшина второй статьи.
  4. Сержант ~ Старшина первой статьи.
  5. Старший сержант ~ Главный старшина.
  6. Прапорщик ~ Мичман.
  7. Старший прапорщик ~ Старший мичман.

Офицерские звания в армии по порядку (от низших к высшим)

Войсковое звание ~ Корабельное звание.

  1. Младший лейтенант ~ Младший лейтенант.
  2. Лейтенант ~ Лейтенант.
  3. Старший лейтенант ~ Старший лейтенант.
  4. Капитан ~ Капитан-лейтенант.
  5. Майор ~ Капитан 3-го ранга.
  6. Подполковник ~ Капитан 2-го ранга.
  7. Полковник ~ Капитан 1-го ранга.
  8. Генерал-майор ~ Контр-адмирал.
  9. Генерал-лейтенант ~ Вице-адмирал.
  10. Генерал-полковник ~ Адмирал.
  11. Генерал армии ~ Адмирал флота.
  12. Маршал Российской Федерации ~ Аналогов нет.

Итого: более 35 званий. Сложно будет запомнить? Надеюсь, что нет! А также на то, что вы нашли ответ на вопрос, благодаря которому пришли на мой сайт. Если же нет, то уверен, что вы найдете ответ на него в полной версии статьи о званиях и погонах в Армии России в 2017 году. Вот на нее. Переходите и читайте!

Кстати, там в конце статьи вас ждет интересный тест из 10 вопросов, который позволит закрепить полученных знания в ходе прочтения обоих статей.

Ну а для тех, кто пришел сюда за погонами, я как и обещал, прилагаю список погон военнослужащих армии России по возрастанию. Вот он!

Погоны военнослужащих армии России по возрастанию

Для начала — погоны войсковых званий в порядке возрастания. Нажмите на картинку, чтобы увеличить!

В Python можно выполнить сортировку списка на месте с помощью метода sort():

>>> a = [ 10 , 3 , 4 , 1 , 9 ] >>> a.sort () >>> a

Отметим, что есть аналогичная списковому методу sort() встроенная функция sorted(), которая не изменяет последовательность, а возвращает новую отсортированную.

Если элементы списка сами представляют собой списки, т. е. являются вложенными списками, то сортировка будет происходить по первым элементам вложенных списков, то есть в случае матрицы по первому столбцу:

>>> a = [ [ 12 , 101 ] , [ 2 , 200 ] , [ 18 , 99 ] ] >>> a.sort () >>> a [, , ]

Что делать, если надо отсортировать не по первому столбцу? На этот случай sort() принимает необязательный аргумент key, в котором передается другая функция. Этой другой функции передается очередной элемент списка. Она может сделать с ним что угодно и вернуть что угодно. По этому "что угодно" и происходит сортировка.

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

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

) n = int (n) -1 def sort_col(i) : return i[ n] a.sort (key= sort_col) for i in a: print ("%7s %3d %4d %3d" % (i[ 0 ] , i[ 1 ] , i[ 2 ] , i[ 3 ] ) )

Здесь пользователь вводит номер поля. Число приводится к типу integer, и из него вычитается единица, т. к. индексация списка начинается с нуля.

Далее определяется функция sort_col(). Ей передается аргумент i, а она возвращает n-ый элемент этого аргумента. Так, если этой функции передать вложенный список, то она вернет его n-й элемент. В данном случае тот, который хотел пользователь.

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

В данном случае если пользователь заказывает сортировку по второму столбцу, вывод будет таким:

Сортировать по имени (1), возрасту (2), росту (3), весу (4): 2 женя 9 140 33 петя 10 130 35 дима 10 128 30 вася 11 135 39

Можно не определять обычную функцию, а использовать lambda-функцию:

a = [ [ "петя" , 10 , 130 , 35 ] , [ "вася" , 11 , 135 , 39 ] , [ "женя" , 9 , 140 , 33 ] , [ "дима" , 10 , 128 , 30 ] ] n = input ("Сортировать по имени (1), возрасту (2), росту (3), весу (4): " ) n = int (n) -1 a.sort (key= lambda i: i[ n] ) for i in a: print ("%7s %3d %4d %3d" % (i[ 0 ] , i[ 1 ] , i[ 2 ] , i[ 3 ] ) )

Кроме того, метод sort() имеет еще один необязательный параметр по ключевому слову - reverse. По умолчанию он равен False. Это значит, что сортировка происходит по возрастанию. Однако если у reverse будет значение True, то сортировка будет обратной, т. е. по убыванию. В измененной программе ниже реализована возможность выбора типа сортировки:

a = [ [ "петя" , 10 , 130 , 35 ] , [ "вася" , 11 , 135 , 39 ] , [ "женя" , 9 , 140 , 33 ] , [ "дима" , 10 , 128 , 30 ] ] n = input ("Сортировать по имени (1), возрасту (2), росту (3), весу (4): " ) n = int (n) -1 t = input ("По возрастанию (0), по убыванию (1): " ) t = int (t) a.sort (key= lambda i: i[ n] , reverse= t) for i in a: print ("%7s %3d %4d %3d" % (i[ 0 ] , i[ 1 ] , i[ 2 ] , i[ 3 ] ) )

При сортировке по весу по убыванию получим.

Есть несколько способов сортировки дат в Excel . Два способа смотрите в статье «Сортировка по дате в Excel ». Здесь рассмотрим, как сделать сортировку в Excel по дате рождения , по месяцам, т.д.
В Excel даты хранятся в виде порядковых номеров, п. э. отсортированные даты будут стоять в списке сначала по году. Например, все даты 2010 года. А среди этих дат будет идти сортировка по месяцам, затем дням. Затем, все даты 2011 года, т.д.
Например, у нас такая таблица с датами.
Для примера и сравнения, мы скопировали даты столбца А в столбец В. В столбце B мы отсортировали даты по условию «Сортировка от старых к новым». Здесь произошла сортировка по годам, а месяца идут не подряд.
Но, если нам важнее отсортировать даты по месяцам, например – дни рождения сотрудников или отсортировать даты в пределах одного года, периода, тогда применим формулу.
Сортировка дат в Excel по месяцам.
Для этого нужно сделать дополнительный столбец, в котором даты запишем в текстовом формате. Подробнее о разных форматах дат (дата, текст), смотрите в статье «Преобразовать дату в текст Excel».
Выделяем ячейку С8. На закладке «Формулы» в разделе «Библиотека функций» в функциях «Текстовые» выбираем функцию «Текст». Появившееся диалоговое окно заполняем так.
Нажимаем «ОК». В ячейке С8 появилась такая формула. =ТЕКСТ(A8;"ММ.ДД")
Обратите внимание.
Если будете писать формулу вручную, то формат дат нужно писать в кавычках – "ММ.ДД".
Копируем формулу вниз по столбцу. Получилось так.
Теперь отсортируем даты функцией «Сортировка от A до Я» - это сортировка по возрастанию. Функция «Сортировка и фильтр» находится на закладке «Главная» в разделе «Редактирование». Получилось так.
Теперь можно установить в таблице разделительные линии, которые будут отделять даты каждого месяца. Как это сделать, смотрите в статье "Разделительная линия строк в таблице Excel" .
Можно настроить свой список сортировки, не только то, что предлагает Excel (по возрастанию, по убыванию»). Смотрите статью «Как настроить сортировку в Excel ».
В таблице Excel можно выделить определенные периоды дат, закрасить эти ячейки цветом, получится график. Есть несколько способов сделать график работ, отпуска, т.д. В статье "Табель рабочего времени в Excel " рассмотрели простой способ, с помощью формулы и условного форматирования.

Сортировка данных в Excel это очень полезная функция, но пользоваться ней следует с осторожностью. Если большая таблица содержит сложные формулы и функции, то операцию сортировки лучше выполнять на копии этой таблицы.

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

Сортировка данных в Excel

Какими средствами располагает Excel для сортировки данных? Чтобы дать полный ответ на этот вопрос рассмотрим его на конкретных примерах.

Подготовка таблицы для правильной и безопасной сортировки данных:


Теперь наша таблица не содержит формул, а только результаты их вычисления. Так же разъединены объединенные ячейки. Осталось убрать лишний текст в заголовках и таблица готова для безопасной сортировки.

Чтобы отсортировать всю таблицу относительно одного столбца выполните следующее:



Данные отсортированные по всей таблице относительно столбца «Чистая прибыль».



Как в Excel сделать сортировку в столбце

Теперь отсортируем только один столбец без привязки к другим столбцам и целой таблицы:

Столбец отсортирован независимо от других столбцов таблицы.

Сортировка по цвету ячейки в Excel

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


Теперь копия таблицы содержит значения и форматы. Выполним сортировку по цветам:

  1. Выделите таблицу и выберите инструмент «Данные»-«Сортировка».
  2. В параметрах сортировки снова отмечаем галочкой «Мои данные содержат заголовки столбцов» и указываем: «Столбец» – Чистая прибыль; «Сортировка» – Цвет ячейки; «Порядок» – красный, сверху. И нажмите ОК.

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


Примечание. Дальше можно выделить в этой таблице диапазон A4:F12 и повторно выполнить второй пункт этого раздела, только указать розовый сверху. Таким образом в первую очередь пойдут ячейки с цветом, а после обычные.