|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.05.2015, 16:34 | #1 |
Пользователь
Регистрация: 07.02.2011
Сообщений: 15
|
Создание пользовательских функций для удаления дубликатов и сортировки полученных значений в ячейке
Здравствуйте уважаемые форумчане.
Прошу оказать помощь в написании пользовательской(-их) функции(-й) которые бы удаляли дублирующиеся значения в ячейке, а затем отсортировывали их в порядке возрастания(или убывания). Решения по сортировке и удалению дубликатов для диапазонов нашёл, а для ячейки нет. Два дня с файлом мучаюсь, для удаления дубликатов в массиве значений использовал таблицы google и функцию UNIQUE, а сортировку приходилось делать в ручном режиме. Для написания подобных пользовательских функций опыта не хватает, помогите пожалуйста. Удаление дубликатов нужно сделать для ячеек в столбце X в прикреплённом примере это ячейки X2 и X5). Версия excel 2013, пример сохранён именно в ней. Сохранить в .xls, не получается так как у меня там очень большие формулы и большое количество символов в ячейке, которое не поддерживается excel 2003. |
27.05.2015, 17:30 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
при активном листе выполните этот
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
27.05.2015, 17:45 | #3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Например так.
Немного коряво вышло, но работает! Использовал наработку SAS888 Работает только с числами! Можно конечно применять сразу в X2 и X5. P.S.Похоже с названием накосячил - какое там uniqstrings, раз работает только с числами?... Ну да ладно, исправьте на что хотите...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 27.05.2015 в 17:51. |
27.05.2015, 17:58 | #4 | |
Пользователь
Регистрация: 07.02.2011
Сообщений: 15
|
Цитата:
Проверил код, для ячейки X2 сработал, отсортировал как надо и удалил лишнее. Чтобы в ячейке Х5 убрать лишнее нужно в коде адрес ячейки менять, я правильно понимаю? А можно сделать так, чтобы для выбранной ячейки выполнялся этот макрос или чтобы выводился запрос какую ячейку оптимизировать и куда вывести результат. Вывод результата в столбец Y вполне устраивает, но неудобно каждый раз в макрос изменения вносить. Вас не затруднит немного код подправить, чтобы удобнее было пользоваться? |
|
27.05.2015, 18:12 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
в начале:
Код:
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
27.05.2015, 18:20 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
А мой вариант может сразу в исходной, и динамически, и без кнопки...
И ничего на листе не затрёт... Зря что ли писал?
webmoney: E265281470651 Z422237915069 R418926282008
|
27.05.2015, 18:26 | #7 | |
Пользователь
Регистрация: 07.02.2011
Сообщений: 15
|
Цитата:
Формула работает. Плохо, что массивы констант типа {1;2;5;10;56;87;2}, не обрабатывает и работает только с числовыми значениями. Можно ли доработать функцию, чтоб она более универсальной и "всеядной" стала? P.s. IgorGO, Hugo121 большое спасибо что так быстро откликнулись и помогли с решением задачи.Проверьте ваши "места сбора благодарностей" указанные в подписях Последний раз редактировалось Denis Ch; 27.05.2015 в 18:32. Причина: Исправил ник Hugo121 |
|
27.05.2015, 18:34 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
спасибо!
зафиксирован факт пополнения кошелька.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
27.05.2015, 19:01 | #9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Спасибо, пополнение прибыло.
Доработать можно, но в примере всегда предусмотрены числа - поэтому использовал решение для чисел. Можно взять любой готовый код сортировки массива и использовать - будет для любых значений. А вот про массив не понял - покажите пример в файле, подумаю. P.S. Вот для чисел и строк. Ещё можно для дат доработать... Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 27.05.2015 в 19:11. |
27.05.2015, 19:18 | #10 |
Пользователь
Регистрация: 07.02.2011
Сообщений: 15
|
Hugo121,
когда я писал про массив то имел ввиду возможность использовать запись следующего вида =uniqel({1;2;5;6;8;9;2};";"), т.е. чтобы можно было использовать как ссылку на ячейку так и использовать массив констант. Я планировал использовать эту формулу в составе других формул, а там у меня иногда массивы констант проскакивают. Сейчас она ругается на запись в виде {1;2;5;6;8;9;2}, вместо ссылки на ячейку. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составить схему алгоритма и программу для вычисления значений функций Y и F для заданных значений | Иван Олегович | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 04.12.2013 08:49 |
Создание пользовательских функций | Riona | Общие вопросы C/C++ | 1 | 12.04.2012 11:13 |
Создание пользовательских функций для обработки числовой информации. | Larisa7 | Помощь студентам | 1 | 16.12.2011 18:40 |
Словесный алгоритм нахождения в матрице для каждой строки числа элементов, кратных 5 и наибольшее из полученных значений (Паскаль) | BloodyBlade | Помощь студентам | 0 | 05.12.2011 23:28 |
Создание пользовательских функций | Lain. | Помощь студентам | 0 | 23.12.2010 23:23 |