Страницы: 1 2 След.
RSS
Вывод уникальных значений из списка
 
Уважаемые, такой вопрос возник:
Мне нужно из списка вывести все уникальные (неповторяющиеся) значения в отдельный список.
Набросал файл примера с идеально подходящей мне формулой, но есть одно НО:
У какой-то из функций в этой формуле стоит ограничение на распознавание не более 255 символов в ячейке.
Думаю, что это ограничение у функции ПОИСКПОЗ...
Попробуйте в А6 добавить хотя бы 1 символ и это значение исчезнет из списка выведенных уникальных значений...

Как можно обойти это ограничение?

Сейчас формула (массива) выглядит так:
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$6;ПОИСКПОЗ(0;ЕСЛИ(ЕПУСТО($A$2:$A$6);"";СЧЁТЕСЛИ($B$1:B1;$A$2:$A$6));0));"")
 
Это функция СЧЁТЕСЛИ :)
Изменено: KL - 24.05.2016 02:04:31
KL
 
5 вариантов
 
flashertheone, можно также обойтись бех массивов, делать формулами или макросом, а также с помощью сводных  ;)
Изменено: Jack_Famous - 24.05.2016 10:32:51
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack_Famous, по первой ссылке все читал, формула так же не подошла, а с VBA не разобрался, как всегда) Там допиливать макрос нужно не хило под мои нужды, а у нас с VBA диалог не клеится...
По второй ссылке - сводная таблица однозначно не подходит, а формула так же отказывается работать с ячейками, где больше 255 символов...
Опять только через VBA? :)

Цитата
Бахтиёр написал: 5 вариантов
Ни один вариант не работает с ячейкой, где более 255 символов.
Изменено: flashertheone - 24.05.2016 19:26:50
 
Цитата
flashertheone написал: Опять только через VBA?
А чем вариант VBA не нравится? )
 
В первую очередь тем, что я ни одного слова там не понимаю :)
Даже элементарно уже готовый макрос под себя подпилить не могу... А каждый раз людей напрягать как-то неудобно.

Ну и вариант с кнопкой в конкретном случае меня не устраивает, надо вешать выполнение макроса на изменение диапазона, а я и это не умею :)
 
Можно и без кнопки. Но, раз Вам не нравится VBA, то ничего другого, кроме как ждать помощи от формулистов, не остаётся )
 
Встроенный инструмент Excel'я (Данные - Удалить дубликаты) вроде нормально работает с ячейками больше 255 знаков
 
Тут ситуация такая:
Есть книга. На один лист пользователь будет копировать данные (эту таблицу изменять нельзя никак, поэтому удалить дубликаты тут не пойдет), а вывод уникальных значений будет происходить на другом листе этой книги. И дальше от выведенных результатов опять плясать - там куча завязанных формул и все должно автоматически пересчитываться, без такого вот вмешательства пользователя.
 
Цитата
Юрий М написал:
Можно и без кнопки. Но, раз Вам не нравится VBA, то ничего другого, кроме как ждать помощи от формулистов, не остаётся )
Если сможете помочь с VBA - я буду только рад)
Кнопка не нужна, выполнение макроса должно происходить при изменении любой ячейки в диапазоне O6:O1000 листа №5.
А выводить уникальные значения нужно в диапазоне C6:C1000 на листе №10.
И в идеале, чтобы пропуски он за уникальные значения не считал... В общем, такой же результат, что и формулой в первом посте, но с возможностью обрабатывать ячейки, в которых больше 255 символов.
Изменено: flashertheone - 24.05.2016 18:57:01
 
Если никто не подключится, - сделаю немного позже: собираюсь на работу.
 
Вариант с формулой с доп.столбцом

Формулы (и в доп.столбце и конечная) "протягиваемы" сверху вниз
 
с доп столбцом (тяжелая)
KL
 
Цитата
Бахтиёр написал: Вариант с формулой с доп.столбцом
Вариант интересный, кстати. Такого решения еще не было :)
Сможете подпилить, чтобы пропуски не распознавал?
 
другой вариант с доп.столбцом
 
Цитата
KL написал: с доп столбцом (тяжелая)
Спасибо, тоже хорошее решение, буду выбирать по скорости обработки, наверное)
 
Цитата
flashertheone написал:
Сможете подпилить, чтобы пропуски не распознавал?
сегодня-завтра не возмусь  :(
 
Цитата
flashertheone написал:
выполнение макроса должно происходить при изменении любой ячейки в диапазоне O6:O1000 листа №5.
В файле-примере нет такого листа.
На имеющемся Лист1 столбец О вообще пустой.
Цитата
flashertheone написал:
выводить уникальные значения нужно в диапазоне C6:C1000 на листе №10.
Такого листа тоже нет. И тут требуется уточнение: вывести список уникальных в тысячу ячеек?
 
Цитата
Юрий М написал: В файле-примере нет такого листа.
Конечно, потому что это пример :) А диапазоны из реальной книги сказал. Сейчас быстро состряпаю подходящий пример.
Цитата
Юрий М написал: вывести список уникальных в тысячу ячеек?
Ну да. А точнее в 994. Но их просто столько не будет. Вернее, если на листе №5 в диапазоне O6:O1000 ВСЕ значения уникальные, то тогда да. А если не все, то, соответственно, как он их выведет на весь диапазон С6:С1000, сохранив их уникальность? :)
Изменено: flashertheone - 24.05.2016 22:34:43 (Заменил файл.)
 
Не понимаю про 1000 ячеек... Замените файл, показав на Лист10 желаемый результат.
 
Может быть КАЖДОЕ уникальное значение в отдельную ячейку?
 
Именно.
 
Ну вот так и нужно было сразу сформулировать ))
Ещё вопрос: на Лист5 ячейка О6 в данном случае ведь не рассматривается, как уникальная строка?  
 
Как раз рассматривается. В этой ячейке 255 символов и это как раз проверка на работоспособность формулы/макроса с ячейками, в которых более 255 символов.
Изначально, в первом посте темы, вопрос так и стоял, чтобы обойти это ограничение.
А вот пустая ячейка О7 не должна рассматриваться как уникальная строка :) ну желаемый результат я, в общем, отобразил же...
Изменено: flashertheone - 24.05.2016 22:47:48
 
Понял )
 
Проверьте.
 
В примере хорошо работает, а в той книге, в которой надо - пишет: Run-time error 9: Subscript out of range. И ругается на With Sheets("Лист10") почему-то...
Хотя там у меня все диапазоны и вся нумерация листов совпадает...
 
Не знаю: я же не вижу "ту книгу")) Может там имя листа с пробелом?
 
С пробелом. Но я это уже пробовал менять - то же самое пишет...
Страницы: 1 2 След.
Наверх