Страницы: 1
RSS
Поиск соответствия всех значений, используя столбец, содержащий дубликаты.
 
Здравствуйте уважаемые обитатели форума. Помогите решить задачу. Файл с примером прилагается.

По столбцу «A» идут наименования товаров, в Столбце «B» содержаться соответствующие уникальные номера товаров. Условно данные по столбцам «A» и «B» являются базой данных, эталоном.   В столбец «D» вносятся наименования товаров, а в столбце «Е» формула должна находить соответствие по базе данных и возвращать уникальный код (из столбца «B»). Самое очевидное решение использовать ВПР. Но ВПР ищет только первое вхождение значения-дубликата ячейки игнорируя последующие. Решением могло бы быть использование ВПР с конкатенацией значений по столбцам «A» и «B»,  «D» и «E». Но в том-то и дело, по столбцу «E» значение заранее не известно, его нужно найти по базе данных. Другими словами, помогите создать универсальную формулу, результатом которой будет возвращение соответствующего значения из столбца «B» и в случае, если будут встречаться дубликаты (в примере яблоки, бананы, киви), то возвращать значение уникального кода первого дубликата, второго, третьего и т.д. в том порядке как они размещены в эталонной базе. Предполагается, что по столбцу «D» количество дубликатов будет равно количеству дубликатов базы данных (столбец «A») либо меньше, что должно предотвратить возникновение ошибки в случае переполнения дублирующих значений по столбцу «D».

Заранее спасибо всем откликнувшимся!

Изменено: vikttur - 15.09.2021 20:39:05
 
Find и  FindNext
 
Спасибо за вариант, но я расчитыва получить именно формулу, не макрос.
Изменено: vikttur - 15.09.2021 20:39:18
 
Цитата
Excelman написал:
я расчитыва получить именно формулу
Именно ВПР? А если без неё - вариант не устроит?
 
если офис 365, то:
=ИНДЕКС(ФИЛЬТР(B$2:B$19;A$2:A$19=D2);СЧЁТЕСЛИМН(D$2:D2;D2))
Изменено: Бахтиёр - 15.09.2021 18:37:48
 
Цитата
Юрий М написал: Именно ВПР?
Извините, Юрий. Нет, конечно. Задачи именно ВПР не стоит. Знаю, что ВПР как то можно заменить черезз ИНДЕКС и ПОИСК ПОЗИЦИИ. ВПР привел потому как более менее понятно как это работает.

Бахтиёр, Вообще на работе у меня 2007, дома старый 2003. Попробую ваш вариант спасибо!
Изменено: vikttur - 15.09.2021 20:39:54
 
Цитата
Excelman:  2007, дома старый 2003
там функция ФИЛЬТР() не сработает
 
Excelman, Скорее всего вам подойдет этот прием.
 
Интересно, изучаю. Спасибо!

Цитата
Бахтиёр написал: там функция ФИЛЬТР() не сработает
ДА, верно. мой эксель не распознал, но судя по всему результат именно тот который мне нужен, так как на листе отразился резальтат отработанной вашей формулы. Можно как то ваш вариант переиначить на старых версиях экселя?
Изменено: vikttur - 15.09.2021 20:40:21
 
Цитата
Excelman:  Можно как то ваш вариант переиначить
=ИНДЕКС(B:B;НАИМЕНЬШИЙ(ЕСЛИ(A$2:A$19=D2;СТРОКА(A$2:A$19);"");СЧЁТЕСЛИМН(D$2:D2;D2)))
Изменено: Бахтиёр - 15.09.2021 18:58:56
 
СУПЕР! Извините может уже наглею, но чтобы вишенка на торте - чтоб работало и на 2003 - можно чем то заменить СЧЁТЕСЛИМН?
Изменено: vikttur - 15.09.2021 20:40:44
 
Excelman, если устроит решение и без ВПР, то не следует выносить эту функцию в название темы. Описывайте задачу, не упоминая функции.
 
Excelman,
Цитата
чтоб работало и на 2003 - можно чем то заменить СЧЁТЕСЛИМН?
Изучайте https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=111226
 
Юрий М, согласен. Могу тему иначе сформулировать, если это не нарушит правила.
 
Kuzmich, спасибо, за наводку, но нужно решение через формулу, не макросом.  Вариант от Бахтиёр - то что нужно!
Изменено: vikttur - 16.09.2021 11:20:13
 
Цитата
Excelman:  чтоб работало и на 2003
=СЧЁТЕСЛИМН( поменяйте на =СЧЁТЕСЛИ(
внутри порядок аргументов тот же
 
Бахтиёр, Спасибо огромное!!!
Страницы: 1
Наверх