Страницы: 1 2 След.
RSS
Уникальный список с сортировкой (для массива с пустыми ячейками)
 
Всем доброго времени суток!
Помогите решить задачу: из одномерного массива данных (текстовые значения) нужно с помощью формулы (без дополнительных столбцов) получить отсортированный список уникальных значений. Важно: в данном массиве содержатся пустые ячейки.
Пересмотрел все темы, где упоминалось про сортировку уникальных, к своей задаче применить не смог. Ранее была похожая задача с применением сортировки уникальных значений, только теперь ее нужно решить для массива с пустыми ячейками (пример во вложении).
Спасибо.
 
Илья Кочедыков, А макросом нельзя список создать такой???
Код
ActiveSheet.Range(ActiveCell.Address).RemoveDuplicates Columns:=1, Header:=xlNo


Макрос ВОТ из этой темы
Изменено: Ivan.kh - 11.06.2013 19:59:42
 
Илья,
не, ну я (как и Nic70y) хотел предложить для начала использовать примерно такое же:
Код
{=ИНДЕКС($E$3:$E$38;НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ($E$3:$E$38;$E$3:$E$38;0)=СТРОКА($1:$36);СТРОКА($1:$36));СТРОКА(A1)))}
вот только проблема-то как раз в сортировке...
Изменено: AndreTM - 11.06.2013 23:49:31
 
К сожалению не получилось мегаформулу, хоть вроде и решил задачу. Буду рад, если кто-нибудь напишет ответ. :(
С уважением,
Федор/Все_просто
 
Не нужны эти "мегаформулы" см. столбец H
Лучше с доп. столбцами (но лень)
Изменено: Nic70y - 11.06.2013 21:25:12
 
Все равно, было интересно изобретать колесо, хотя кто-то уже и сделал это до меня. Мне все же очень бы хотелось доделать мой файл. Интересно, как можно реализовать все именно в моем варианте с помощью одной мегаформулы.

ЗЫ Может я и не соображаю под конец дня, но мне кажется, что в колонке Н четвертым не должен быть Васечкин. О_о
Изменено: Все_просто - 11.06.2013 21:44:02
С уважением,
Федор/Все_просто
 
Nic70y,
к сожалению Ваше предложение не подходит, т.к. в нем не работает сортировка. Но все равно, спасибо.)
 
Хотелось бы узнать, мое-то подходит?
С уважением,
Федор/Все_просто
 
Илья, а почему обязательно формула - боитесь макросов?))
 
Юрий М, честно говоря никогда с ними не работал. Да и давно хотел эту задачу решить именно одной формулой.

Все_просто, конечно, хотелось бы одной формулой. Но, это тоже неплохо.))
 
Цитата
Илья Кочедыков пишет:
Юрий М, честно говоря никогда с ними не работал.
Неправда! Поиск по листу, замену, сортировку делали? Так это и есть те самые макросы. Просто они не "самодельные" :)
 
Ну тогда, согласен.  :) Но все же, мне нужна именно формула.
 
На всякий случай вариант с макросом.
 
Спасибо, Юрий М. Подскажите тогда, пожалуйста, в каком месте в тексте макроса я могу изменять диапазон, с которого должна делаться выборка, а также, где изменить область вставки (где я хочу видеть отображаемый результат).
 
Макрос может Вас спросить об этом сам - Вам достаточно будет дважды указать мыхой: ячейку, с которой начинается исходный диапазон, и ячейку, с которой начать выгрузку. Такой вариант подойдёт?
 
В принципе нужно будет задать диапазон только один раз, т.к. он в принципе меняться не будет. Было бы неудобно, если при каждом пересчете, нужно было указывать эти диапазоны. Может, вроде дополнительного параметра или дополнительного вопроса при пересчете? Если это будет неудобно, то, во всяком случае, нужно делать выборку по диапазону M5:M700, а результат вставлять в диапазон C24 и ниже (но на листе 2!).
Изменено: Илья Кочедыков - 11.06.2013 23:34:01
 
Ни когда не слушайте Nic70y!
Открою тайну - он читать не умеет (по крайней мере с первого раза)  :)
 
Вот с диапазонами на разных листах. В коде небольшой комментарий, который поможет Вам самостоятельно менять диапазоны.
 
Пишет, что указанного файла не существует.
 
Заметил у себя ошибку - прикрепил исправленный файл - скачайте заново.
 
В принципе, если уж дело дошло до макросов - могу предложить воспользоваться запросом, например:
Код
SELECT DISTINCT `Лист1$`.ФИО
FROM `Лист1$M4:M` `Лист1$`
WHERE (`Лист1$`.ФИО>'')
ORDER BY `Лист1$`.ФИО
 
Гулять так гулять. Создаем сводную таблицу и не мучаемся. По-моему, в общем случае это самый оптимальный способ. Всякие макросы и формулы ни к чему.
С уважением,
Федор/Все_просто
 
Усложним: 3 символа
Файл удалил - тоже самое в сообщении ниже.
Изменено: Nic70y - 12.06.2013 01:59:20
 
Юрий М, к сожалению у меня Ваш последний вариант работает некорректно. Если я указываю имя листа 2 в тексте макроса, выборка уникальных происходит со столбца М именно этого листа, а нужно, чтобы вытягивало с листа 1 (диапазон М5:М700) на лист 2 (начиная с ячейки С24 и вниз). Или я что-то не то сделал? Подскажите, пожалуйста.
 
Nic70y, исходный диапазон изменяемый. Если в предложенном Вами варианте что-либо изменить в исходном диапазоне, сразу выдает ошибку.
 
Цитата
3 символа
Офис 2003?
Изменено: Nic70y - 12.06.2013 01:59:40
 
Цитата
Все_просто пишет:
Всякие макросы и формулы ни к чему.
То у Вас макросы "ни к чему", теперь ещё и формулы))
 
Цитата
Илья Кочедыков пишет:
Если я указываю имя листа 2 в тексте макроса, выборка уникальных происходит со столбца М именно этого листа, а нужно, чтобы вытягивало с листа 1
Именно с первого листа и отбираются уникальные на второй лист. Скачайте мой файл ЗАНОВО. Пост #20 видели?
 
Вариант формулы:
Код
=ИНДЕКС(E$4:E$38;ПОИСКПОЗ(НАИМЕНЬШИЙ(СЧЁТЕСЛИ(E$4:E$38;"<="&E$4:E$38);СУММ(1;СЧЁТЕСЛИ(E$4:E$38;I$3:I3);СЧИТАТЬПУСТОТЫ(E$4:E$38)));СЧЁТЕСЛИ(E$4:E$38;"<="&E$4:E$38);))
 
Юрий М, разобрался. Макрос надо было вставлять в модуль листа 1, а не в модуль листа 2. Получилось. Большое спасибо, РАБОТАЕТ!!!!))

DV, большое спасибо. ТОЖЕ РАБОТАЕТ!!!)))

Всем спасибо за участие, решили задачу двумя способами.
Страницы: 1 2 След.
Читают тему
Наверх