Страницы: 1
RSS
Выпадающий динамический список с сортировкой по алфавиту (без VBA)
 
Всем доброго дня!
Делаю первые шаги в Excel, начал осваивать создание динамических списков.
Много полезного для себя нашел на этом форуме и вообще в сети.
В процессе изучения возник вопрос - можно ли сделать этот список отсортированным по алфавиту
с помощью формул, без макросов?
Готовых решений на эту тему не нашел, (может, плохо искал)
поэтому попробовал сделать сам, и, кажется, получилось   :)
Плюсы:
1.Размер списка ограничивается только кол-вом строк в Excel
2.В исходном списке можно оставлять пустые строки, на конечный выпадающий список это не влияет
3.Нет зависимости от регистра букв
Минусы:
1.Сортировка идет только по первым двум буквам (хотя, в принципе это не так уж существенно -
  ориентироваться в списке все равно уже намного легче, чем в несортированном)
2.Самое главное, с чем не смог справиться: в формуле списка присутствует жесткая привязка к исходным ячейкам
  (нужно указывать сдвиг по строкам и по столбцам).
  Это создает определенные проблемы, если ячейку с выпадающим списком необходимо сделать на другом листе
  или в нескольких разных местах.
Может, кто-то уже прорабатывал подобные задачи?
Или, что вполне возможно, есть более простые решения?
Буду рад и очень благодарен за любые советы и мнения по данной теме.
Главное условие - без макросов,
чтобы любой неискушенный пользователь мог скопировать лист примера к себе в книгу и применить к своим нуждам,
думаю, что многим бы это пригодилось.
Файл с примером получился больше 100 кб, поэтому выложил его на Яндекс-Диск: https://yadi.sk/i/0TfC7iSCutkdW  
 
Вариант.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо, JayBhagavan,
С первого взгляда не все понял, вечером дома буду разбираться.
Главное, что можно без алфавитной части для поиска совпадений обойтись!
Здорово!
 
c
Изменено: olga8585 - 31.01.2017 12:35:33
 
Например, так:
 
aEFSDA
Изменено: olga8585 - 31.01.2017 12:42:00
 
Цитата
Код
rt
Изменено: olga8585 - 31.01.2017 12:35:02
 
покрутил столбцы D,E.
 
copper-top, очень хорошо, что избавились от 3-х доп. столбцов. Но для окончательного списка (который будет выводиться в какой-то ячейке) тогда возникает неудобство - вводишь несколько раз одинаковую запись, например "а" - уникальное одно выводится, все правильно, но вверху списка появляются пустые строки - столько, сколько в исходном столбце было "а". В таком случае в формулу, которая будет определять диапазон списка нужно что-то хитрое придумывать, чтобы от этих пустых строк избавиться.
 
Цитата
_Igor_61 написал:
нужно что-то хитрое придумывать
не че лучше не придумал кроме как регулировать ячейкой G6. :)
Изменено: copper-top - 30.01.2017 20:45:12
 
Есть, задача решена!
JayBhagavan, copper-top, СПАСИБО!!! Тема старая, висела долго недоделанной. но благодаря olga8585 вновь ожила и получила свое достойное завершение  :)
В примере - работоспособный вариант получения выпадающего динамического отсортированного списка (честно говоря, когда создавал тему, не очень-то надеялся, что эту задачу можно будет решить без макросов). Вариант работает, причем ячейку с помещенным в нее списком можно делать на любом листе, а не только на листе, где находится сам список. Еще раз всем большое спасибо!
Изменено: _Igor_61 - 30.01.2017 23:31:14
Страницы: 1
Наверх