Сортировка в excel выпадающий список
Если вам нужно отсортировать список, то к вашим услугам куча способов, самый простой из которых - кнопки сортировки на вкладке или в меню Данные (Data - Sort) . Бывают, однако, ситуации, когда сортировку списка нужно делать автоматически, т.е. формулами. Такое может потребоваться, например, при формировании данных для выпадающего списка, при вычислении данных для диаграмм и т.д. Как же "на лету" сортировать список формулой?
Способ 1. Числовые данные
Если список содержит только числовую информацию, то его сортировку можно легко сделать с помощью функций НАИМЕНЬШИЙ (SMALL) и СТРОКА (ROW) :
Функция НАИМЕНЬШИЙ (SMALL) выдергивает из массива (столбец А) n-й по счету наименьший элемент. Т.е. НАИМЕНЬШИЙ(A:A;1) - это самое маленькое число из столбца, НАИМЕНЬШИЙ(А:А;2) - второе по счету наименьшее и т.д.
Функция СТРОКА (ROW) выдает порядковый номер строки для указанной ячейки, т.е. СТРОКА(А1)=1, СТРОКА(A2)=2 и т.д. В данном случае она используется просто как генератор последовательности чисел n=1,2,3… для нашего отсортированного списка. С тем же успехом можно было сделать дополнительный столбец, заполнить его вручную числовой последовательностью 1,2,3… и ссылаться на него вместо функции СТРОКА.
Способ 2. Текстовый список и обычные формулы
Если в списке не числа, а текст, то функция НАИМЕНЬШИЙ (SMALL) уже не сработает, поэтому придется пойти другим, чуть более длинным, путем.
Сначала добавим служебный столбец с формулой, где будет вычисляться порядковый номер каждого имени в будущем отсортированном списке с помощью функции СЧЁТЕСЛИ (COUNTIF) :
В английской версии это будет:
Ну, и наконец, осталось просто вытащить из списка имена по их номерам. Для этого можно использовать такую формулу:
Функция ПОИСКПОЗ (MATCH) ищет в столбце В нужный порядковый номер (1, 2, 3 и т.д.) и выдает, по сути, номер строки, где находится это число. Функция ИНДЕКС (INDEX) вытаскивает из столбца А имя по этому номеру строки.
Способ 3. Формула массива
Этот способ представляет собой, по сути, тот же алгоритм расстановки, что и в Cпособе-2, но реализованный формулой массива. Для упрощения формулы диапазону ячеек С1:С10 было дано имя List (выделить ячейки, нажать Ctrl+F3 и кнопку Создать):
В ячейку Е1 копируем нашу формулу:
Или в англоязычной версии:
и нажимаем Ctrl+Shift+Enter, чтобы ввести ее как формулу массива. Потом полученную формулу можно скопировать вниз на всю длину списка.
Если нужно, чтобы формула учитывала не фиксированный диапазон, а могла подстраиваться при дописывании новых элементов к списку, то нужно будет слегка изменить стратегию.
Во-первых, диапазон List нужно будет задать динамически. Для этого при создании нужно указать не фиксированный диапазон C3:C10, а специальную формулу, которая будет ссылаться на все имеющиеся значения независимо от их количества. Нажмите Alt+F3 или откройте вкладку Формулы - Диспетчер имен (Formulas - Name Manager) , создайте новое имя и в поле Ссылка (Reference) впишите вот такую формулу (я предполагаю, что диапазон сортируемых данных начинается с ячейки C1):
Для сортировки или заполнения значений в пользовательском порядке можно применять настраиваемые списки. В Excel есть встроенные списки дней недели и месяцев года, но вы можете создавать и свои настраиваемые списки.
Чтобы понять, что представляют собой настраиваемые списки, полезно ознакомиться с принципами их работы и хранения на компьютере.
Сравнение встроенных и настраиваемых списков
В Excel есть указанные ниже встроенные списки дней недели и месяцев года.
Встроенные списки
Пн, Вт, Ср, Чт, Пт, Сб, Вс
Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье
янв, фев, мар, апр, май, июн, июл, авг, сен, окт, ноя, дек
Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь
Примечание: Изменить или удалить встроенный список невозможно.
Вы также можете создать свой настраиваемый список и использовать его для сортировки или заполнения. Например, чтобы отсортировать или заполнить значения по приведенным ниже спискам, нужен настраиваемый список, так как соответствующего естественного порядка значений не существует.
Настраиваемые списки
Высокое, Среднее, Низкое
Большое, Среднее, Малое
Север, Юг, Восток, Запад
Старший менеджер по продажам, Региональный менеджер по продажам, Руководитель отдела продаж, Торговый представитель
Настраиваемый список может соответствовать диапазону ячеек, или его можно ввести в диалоговом окне Списки.
Примечание: Настраиваемый список может содержать только текст или текст с числами. Чтобы создать настраиваемый список, содержащий только числа, например от 0 до 100, нужно сначала создать список чисел в текстовом формате.
Создать настраиваемый список можно двумя способами. Если список короткий, можно ввести его значения прямо во всплывающем окне. Если список длинный, можно импортировать значения из диапазона ячеек.
Введение значений напрямую
Чтобы создать настраиваемый список этим способом, выполните указанные ниже действия.
В Excel 2010 и более поздних версиях выберите пункты Файл > Параметры > Дополнительно > Общие > Изменить списки.
В Excel 2007 нажмите кнопку Microsoft Office и выберите пункты Параметры Excel > Популярные > Основные параметры работы с Excel > Изменить списки.
Выберите в поле Списки пункт НОВЫЙ СПИСОК и введите данные в поле Элементы списка, начиная с первого элемента.
После ввода каждого элемента нажимайте клавишу ВВОД.
Завершив создание списка, нажмите кнопку Добавить.
На панели Списки появятся введенные вами элементы.
Нажмите два раза кнопку ОК.
Создание настраиваемого списка на основе диапазона ячеек
Выполните указанные ниже действия.
В диапазоне ячеек введите сверху вниз значения, по которым нужно выполнить сортировку или заполнение. Выделите этот диапазон и, следуя инструкциям выше, откройте всплывающее окно "Списки".
Убедитесь, что ссылка на выделенные значения отображается в окне Списки в поле Импорт списка из ячеек, и нажмите кнопку Импорт.
На панели Списки появятся выбранные вами элементы.
Два раза нажмите кнопку ОК.
Примечание: Настраиваемый список можно создать только на основе значений, таких как текст, числа, даты и время. На основе формата, например значков, цвета ячейки или цвета шрифта, создать настраиваемый список нельзя.
Выполните указанные ниже действия.
По приведенным выше инструкциям откройте диалоговое окно "Списки".
Выделите список, который нужно удалить, в поле Списки и нажмите кнопку Удалить.
Настраиваемые списки добавляются в реестр компьютера, чтобы их можно было использовать в других книгах. Если вы используете настраиваемый список при сортировке данных, он также сохраняется вместе с книгой, поэтому его можно использовать на других компьютерах, в том числе на серверах с Службы Excel, для которых может быть опубликована ваша книга.
Однако при открытии книги на другом компьютере или сервере такой список, сохраненный в файле книги, не отображается во всплывающем окне Списки в параметрах Excel: его можно выбрать только в столбце Порядок диалогового окна Сортировка. Настраиваемый список, сохраненный в файле книги, также недоступен непосредственно для команды Заполнить.
При необходимости можно добавить такой список в реестр компьютера или сервера, чтобы он был доступен в Параметрах Excel во всплывающем окне Списки. Для этого выберите во всплывающем окне Сортировка в столбце Порядок пункт Настраиваемый список, чтобы отобразить всплывающее окно Списки, а затем выделите настраиваемый список и нажмите кнопку Добавить.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
С помощью встроенных настраиваемых списков вы можете сортировать данные по дням недели или месяцам года. При желании вы можете создавать собственные настраиваемые списки для сортировки по любым другим параметрам, которые трудно сортировать по алфавиту (например, высокий, средний и низкий или S, M, L, XL).
Настраиваемые списки позволяют сортировать данные листа по месяцам доставки или по приоритету.
Сортировка по дням недели или месяцам года с помощью встроенного настраиваемого списка
Выполните указанные ниже действия:
Выделите столбцы для сортировки.
Примечание: Для получения наилучшего результата у каждого столбца должен быть заголовок.
На ленте выберите Данные > Сортировка.
Во всплывающем окне Сортировка в раскрывающемся списке Сортировать по выберите столбец, по которому нужно выполнить сортировку.
Например, чтобы отсортировать данные в предыдущем примере по дате доставки, в поле Сортировать по выберите доставка.
В раскрывающемся списке Порядок выберите Настраиваемый список.
В диалоговом окне Списки выберите нужный список и нажмите кнопку OK для сортировки листа.
Создание собственного настраиваемого списка
Чтобы создать собственный настраиваемый список для сортировки, выполните указанные ниже действия.
В столбце листа введите значения, по которым нужно выполнять сортировку. Расположите их нужным образом, определяющим порядок сортировки (от верхней ячейки к нижней). Например:
Выделите все ячейки в этом списке и выберите Файл > Параметры > Дополнительно.
Прокрутите страницу вниз до раздела Общие и нажмите кнопку Изменить списки.
В окне Списки нажмите кнопку Импорт.
Совет: Короткий список, который содержит значения "Высокий", "Средний" и "Низкий", возможно, проще ввести непосредственно в поле Элементы списка окна Списки.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Сортировка списка - это выстраивание строк или столбцов в определенном порядке.
MS Excel предоставляет две возможности для сортировки списков. Можно сортировать строки или столбцы в возрастающем или убывающем порядке значения какого -либо атрибута (ключа) или нескольких атрибутов. При сортировке строк изменяется порядок их следования, а порядок следования столбцов остается неизменным. При сортировке столбцов изменяется порядок следования столбцов, а строки остаются на своих местах.
Заголовок обычно не сортируется.
Можно сортировать весь список или его часть.
Для сортировки строк всего списка можно использовать два варианта: сортировка по одному ключу и сортировка по нескольким ключам.
Для сортировки по одному ключу нужно:
- выделить любую ячейку (но не диапазон) в столбце, который содержит ключ сортировки;
- на ленте Данные в группе Сортировка и фильтр кликнуть на пиктограмме Сортировка от А до Я или Сортировка от Я до А.
Для сортировки по нескольким ключам:
- выделить любую ячейку (но не диапазон) списка;
- на ленте Данные в группе Сортировка и фильтр кликнуть на пиктограмме Сортировка. MS Excel проведет анализ списка для определения размера списка, определит строку заголовка, исключаемую из сортировки, и выведет на экран диалоговое окно Сортировка (рис. 1).
- кликнуть на кнопке Параметры диалогового окна;
- в диалоговом окне Параметры сортировки (рис. 2) установить опцию Строки диапазона и , если нужно, опцию Учитывать регистр;
- установить порядок сортировки, добавляя уровни.
Сортировка производится по нескольким ключам (уровням): сначала по первому, указанному пользователем в поле Сортировать по , затем в пределах строк, у которых эти поля совпадают, будет произведена сортировка по второму ключу (уровню), установленному в поле Затем по и т. д.
Ключи для сортировки выбираются из раскрывающихся списков.
В каждом ключе можно установить Порядок сортировки По возрастанию или По убыванию .
Чтобы заголовки списков не включались в сортировку нужно установить опцию Мои данные содержат заголовки .
После щелчка на кнопке ОК будет выполнена сортировка списка.
Если выделить не одну ячейку, а несколько строк и столбцов, то будет сортироваться только выделенная часть списка.
Сортировка столбцов списка
Для сортировки по столбцам нужно:
- установить курсор в какую-либо ячейку списка;
- на ленте Данные в группе Сортировка и фильтр кликнуть на пиктограмме Сортировка.
- кликнуть в диалоговом окне Сортировка кнопку Параметры . Откроется диалоговое окно Параметры сортировки (рис. 2), в котором нужно активизировать переключатель Столбцы диапазона и кликнуть на ОК .
Пользовательский порядок сортировки (настраиваемый)
Иногда возникает необходимость применения нестандартного порядка сортировки. Например, сортировку не в алфавитном порядке, а в виде списка: № счета, Приход, Расход, Дата операции, № п.п . Для создания пользовательского порядка сортировки нужно выполнить следующие действия:
- на ленте Данные в группе Сортировка и фильтр кликнуть на пиктограмме Сортировка;
- в списке Порядок диалогового окна Сортировка выбрать пункт Настраиваемый список;
- в появившемся диалоговом окне Списки области Списки выделить Новый Список;
- В области Элементы списк а ввести, разделяя запятыми, или на новых строках каждый элемент пользовательского списка (рис. 3).
- кликнуть на кнопке Добавить;
- п осле появления пользовательского списка в области Списки кликнуть на кнопке ОК;
- выделить ячейку или диапазон списка для сортировки, на ленте Данные в группе Сортировка и фильтр кликнуть на пиктограмме Сортировка; - в открывшемся диалоговом окне Сортировка кликнуть на кнопке Параметры и в открывшемся диалоговом окне Параметры сортировки установить опцию По столбцам, кликнуть на ОК ;
- в диалоговом окне Сортировка в списке Порядок выбрать необходимый пользовательский порядок сортировки и кликнуть на ОК (рис. 4).
Выпадающие списки в Excel - это тема, которая интересует многих пользователей программы, ведь с помощью таких списков можно существенно облегчить ввод информации в таблицу или создать удобный интерфейс для доступа к данным. Но если выпадающий список имеет слишком много элементов, то быстро найти нужный из них становится затруднительным. В этой ситуации будет полезен выпадающий список с возможностью поиска.
Например, нужно по имени человека выводить его номер телефона.
В обычном выпадающем списке будут перечислены все имена из телефонной книги (таблицы с данными) и быстро найти нужного человека не так-то просто. Однако если список имеет возможность поиска, то можно ввести какой-то набор символов и в списке отобразятся только те данные, в которых этот набор символов встречается, причем неважно в какой части.
Как и многое в Excel создать такой список можно разными способами. У каждого из них есть свои плюсы и минусы.
Excel постоянно совершенствуется и в нем появляются инструменты, которые позволяют существенно упростить ряд задач, поэтому я расскажу о двух способах создания выпадающего списка с быстрым поиском.
Файлы с примерами можно скачать здесь .
Первый вариант выпадающего списка с поиском (динамические массивы)
Итак, есть исходная таблица в два столбца. Первый содержит список имен, а второй телефоны. В еще одну из ячеек первой строки введем набор символов, который мы хотим найти, то есть смоделируем поисковое поле (введем " сми ").
Ниже этой ячейки мы должны сформировать список только из тех данных исходной таблицы, которые содержат введенные выше символы.
Поможет в этом функция ПОИСК ( SEARCH ), которая ищет заданный набор символов и выдает либо порядковый номер первого символа в тексте, либо ошибку, если символы обнаружены не были.
В качестве искомого текста указываем ссылку на ячейку выше, а искать мы будем в первой ячейке столбца с именами. Последний аргумент функции необязателен и в нашем случае указывать его не будем.
Что мы получили в итоге?
Цифра "1" указывает нам позицию введенных символов в выбранном нами тексте (строка начинается с этих символов).
Если введем « але », то получим цифру 9, которая указывает на девятую позицию. Именно девятым будет первый символ искомого текста в этом имени (пробел также учитывается).
Если же введем « ива », то получим ошибку ЗНАЧ! , которая указывает на то, что такой комбинации символов в тексте не найдено.
Так работает функция ПОИСК и нам лишь остается указать весь диапазон, на который она должна распространяться. Для этого откорректируем формулу и подставим сюда весь диапазон - выбираем первую его ячейку (А2), а затем нажимаем сочетание клавиш Ctrl + Shift + стрелка вниз . Будет выбран весь неразрывный диапазон значений. В моем случае А2:А30. Нажимаем Enter и получаем диапазон значений, который представляет собой динамический массив . На это также указывает синий контур, обрамляющий значения.
Динамические массивы в Excel появились несколько лет назад, но до сих пор они доступны лишь пользователям Microsoft Office 365 и в онлайн-версии офисного пакета. В других версиях и редакциях Excel динамических массивов пока нет и вряд ли они там появится. Скорее всего в коробочной редакции Excel их стоит ждать лишь в следующей версии офисного пакета в 22-ом году.
Тем не менее, динамические массивы и функции с ними связанные очень сильно расширяют возможности Excel и я уверен, что в дальнейшем они получат еще более широкий функционал. По этой причине, хоть данный способ пока и не универсален, но он максимально прост, удобен и в перспективе будет востребован. Поэтому я детально рассмотрю весь процесс создания выпадающего списка с помощью динамических массивов и их функций.
Итак, мы получили динамический массив. Если в его ячейках отражается любая цифра, то это означает, что искомая комбинация символов была найдена, а ошибка свидетельствует об обратном.
Фактически нас интересуют только ячейки с числами, при этом сами значения неважны. Поэтому можем переконвертировать полученные значения в формат ИСТИНА/ЛОЖЬ .
Для этого воспользуемся функцией ЕЧИСЛО ( ISNUMBER ) и обернем ей созданную ранее формулу. В результате если в ячейке будет находиться число, то функция выдаст ИСТИНУ , иначе ЛОЖЬ .
Осталось лишь отфильтровать значения, ведь нас интересует только ИСТИНА . Воспользуемся функцией ФИЛЬТР ( FILTER ), которая позволяет работать с динамическими массивами.
Обернем созданную ранее формулу функцией ФИЛЬТР .
Первый аргумент функции - массив . Укажем диапазон с именами А2:А30. Далее нужно указать то, что нужно включить в новый диапазон, а это вычисляет ранее созданная формула. В качестве третьего аргумента зададим значение, которое будет выводиться в случае отсутствия искомых символов в тексте. Например, напишем « не найдено ».
Все, формула готова!
Вот так просто мы получили список из имен, которые удовлетворяют условиям поиска. Осталось лишь создать выпадающий список. Для этого откорректируем формулу и подставим в функцию ПОИСК ссылку на ячейку, в которой будет выпадающий список. В моем примере эти ячейки находятся на втором листе.
Читайте также: