Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Устранение дубликатов в 4-уровневым связанном выпадающем списке
 
Приветствую многоуважаемых форумчан!

Есть 4-уровневый связанный выпадающий список, реализован штатными(Диспетчер имен и проверка данных...) средствами Excel.
Есть проблема - устранения дубликатов в этом 4-уровневом связанном выпадающем списке.
Условие - не модифицировать вкладку "справочник" и желательно без добавления новых вкладок.
Есть ли относительно простое решение этой проблемы средствами Excel?

Если приемлемого решения нет - возможно ли реализация средствами VBA и как это примерно будет выглядеть?
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
 
Джек Восмеркин,
вот вариант.
 
Переработал пример с учетом вышеуказанного варианта.
Дубликаты исчезли - но выпадающий список перестал быть связанным, в списки вываливается весь диапазон.
Может я что то пропускаю или не так делаю?

Дубль на http://www.excelworld.ru/forum/2-40679-1
Дубль на https://forum.msexcel.ru/index.php/topic,11976.0.html
Изменено: Джек Восмеркин - 7 Фев 2019 01:39:05
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
 
вариант со вспомогательным листом (это только вариант он не вяжется с вашими условиями но работает)
Изменено: Сергей - 7 Фев 2019 07:08:41
Лень двигатель прогресса, доказано!!!
 
Цитата
Может я что то пропускаю или не так делаю?
Смотрите внимательнее мой пример. Для второго и далее уровней иерархии список значений формируется в зависимости от выбранного значения в выпадающем списке предыдущего уровня иерархии. Сравните в примере
Код
=IFERROR(INDEX(Связь_A_B;MATCH(0;COUNTIF($I$1:I1;Связь_A_B);0));"")
и у вас
Код
=IFERROR(INDEX(ColumnB;MATCH(0;COUNTIF($I$1:I1;ColumnB);0));" ")
 
Да, ваш пример более работоспособный чем мой невнимательно переработанный...))))
Но и в вашем примере, при выборе в выпадающем списке, границы диапазонов плавают.
Если в последнем уровне иерархии выбор падает на количество позиций не больше одной - перестает работать.

Смотрю на логику - вроде правильная, потому как в основном работает.
Да и с технической стороны я неправильностей не вижу.
Но, видимо, есть какая то небольшая деталь которая от меня ускользает
Изменено: Джек Восмеркин - 8 Фев 2019 11:12:24
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
 
Да, есть неточность в формулах именованных диапазонов Связь_*, я их не проверял, брал "как есть". Динамический диапазон получается как бы смещен по справочнику  вниз на одну строку от требуемого. На верхних уровнях иерархии это не заметно из-за повторения значений, а на 4м уровне уже проявляется.
В формулу для диапазонов Связь_* нужно добавить "-1" после  ПОИСКПОЗ()

=СМЕЩ(Справочник!$C$1;ПОИСКПОЗ('Карта ИС'!$F$4;Справочник!$C$1:$C$116;0)-1;1;СЧЁТЕСЛИ(Справочник!$C$1:$C$116;'Карта ИС'!$F$4);1)

 
Благодарю...))) ... Границы именованных диапазонов теперь стоят как влитые - дело оказалось именно в этом.

На любом уровне иерархии, если на ней  количество позиции=1(при количество позиции=2 все корректно ), то ничего не происходит, где то получается 0.
В тонких моментах поведения Excel не силен...
Видимо, надо где то ставить проверку на количество позиций, или в исходных данных недосмотр...
Изменено: Джек Восмеркин - 8 Фев 2019 19:36:25
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
 
Выбор уникальных значений из одной ячейки не срабатывает.  :(
Переделал первые формулы в диапазоне выбора уникальных значения на проверку количества значений в диапазонах Связь_*, теперь и при одной позиции в иерархии должно работать.
 
Все работает, все хорошо!

Но когда пробую самостоятельно, в "проверка данных" выставляю параметры "Список" и в качестве источника выбираю тоже самое что и ранее было("unique_FN") - выскакивает сообщение - "Источником данных списка, должен быть список с разделителями или ссылка на одну строку или на один столбец"., хотя источник не менялся"....
Переношу формулы вместе с диапазонами, в другой файл - то же самое.
Да даже табличку с unique_* переношу просто на другую вкладку- перестают браться уникальные значения.((
А ведь перед этим все работало, только решил пересоздать ячейку, в качестве эксперимента...((((

Как побороть эту непонятку?
Изменено: Джек Восмеркин - 11 Фев 2019 14:48:56
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
 
Цитата
Джек Восмеркин написал:
Как побороть эту непонятку?
У меня в исходном файле при задании проверки данных на другие ячейки отрабатывает без ошибок. В новый файл не пробовал переносить.
Проверяйте имена - написание имен, присвоенные формулы. Смотрите по шагам в какой момент возникает сбой.
 
Вроде разобрался, все перенес аккуратно, проверил, тревожных сообщений не выбрасывает.
Но теперь при выборе единственной уникальной позиции(при позиции>1 все прекрасно) в иерархии не работает - хотя все перенес аккуратно, Связь_* тоже.
Первые формулы в диапазоне выбора уникальных значения в диапазоне Связь_* перенес из рабочего файла,проверка на число позиций вроде есть, должно по идее работать.
Перебрал много вариантов - так как грешил на диапазон Связь_*....
Но так и не разобрался, выручайте...
Изменено: Джек Восмеркин - 12 Фев 2019 09:43:51
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
 
Джек Восмеркин,
Поправил формулы на листе "Справочник Карта ИС" и сделал комментарии там.
 
Kostya_Ye
Благодарю, особенно за комментарии - есть чему поучиться, в литературе сложно найти такое.
Как всегда, тема в очередной раз расширила мои познания и кругозор путем перелопачивания инфы по теме.

Коллеги, спасибо всем кто откликнулся и потратил свое время на меня!
Великий и могучий утес, сверкающий бой, с ногой на небе, живущий, пока не исчезнут машины.
Страницы: 1
Читают тему (гостей: 1)
Наверх