Отбор неповторяющихся значений из двух диапазонов в EXCEL

history

Имея два списка с однотипными повторяющимися значениями, создадим список, состоящий только из неповторяющихся значений.


Пусть столбцы А и В содержат списки названий компаний, в некоторых ячейках имеются дубликаты .

Задача

Создадим список, состоящий только из неповторяющихся в исходных списках значений. (см. файл примера ).

Решим задачу двумя способами: через промежуточное создание объединенного списка и без него.

Решение с использованием объединенного списка



В статье Объединение списков изложено решение создания объединенного списка из 2-х списков (списки не должны иметь пустых ячеек). Воспользуемся этим решением и создадим объединенный список, записав в С5 формулу

=ЕСЛИ(СТРОКА()-СТРОКА($C$4)>СЧЁТЗ(Список1); ИНДЕКС(Список2;СТРОКА(C5)-СЧЁТЗ(Список1)-СТРОКА($B$4)); A5)

Динамический диапазон Список1 представляет собой Исходный список №1 с названиями компаний, причем его границы могут изменяться в зависимости от количества числа введенных значений (пропуски не допускаются). Аналогичные диапазоны Список2 и Объединенный_список созданы для столбцов Исходный список №2 и Объединенный список .

Далее используем решение, приведенное в статье Отбор неповторяющихся значений .

Записав в E5 формулу массива : =ЕСЛИОШИБКА(ИНДЕКС(Объединенный_список; ПОИСКПОЗ(0;СЧЁТЕСЛИ(E4:$E$4;Объединенный_список)+(СЧЁТЕСЛИ(Объединенный_список;Объединенный_список)<>1);0) );"")

и скопировав ее вниз получим список неповторяющихся значений из двух столбцов.

Решение без использования объединенного списка

В принципе можно обойтись и без объединенного списка. Платой за это будет использование просто невообразимой формулы массива . =ЕСЛИОШИБКА(ЕСЛИ(ЧСТРОК(F4:$F$4)<=СУММ(ЕСЛИ( СЧЁТЕСЛИ(Список1;Список1)+СЧЁТЕСЛИ(Список2;Список1)=1;1;0)); ИНДЕКС(Список1;ПОИСКПОЗ(0;ЕСЛИ((СЧЁТЕСЛИ(Список1;Список1)+ СЧЁТЕСЛИ(Список2;Список1))*НЕ(СЧЁТЕСЛИ(F4:$F$4;Список1))=1;0; СЧЁТЕСЛИ(Список1;Список1)+СЧЁТЕСЛИ(Список1;Список2));0)); ИНДЕКС(Список2;ПОИСКПОЗ(0;ЕСЛИ((СЧЁТЕСЛИ(Список2;Список2)+ СЧЁТЕСЛИ(Список1;Список2))*НЕ(СЧЁТЕСЛИ(F4:$F$4;Список2))=1;0; СЧЁТЕСЛИ(Список2;Список2)+СЧЁТЕСЛИ(Список1;Список2));0)));"")

Для вывода промежуточных результатов формулы можно воспользоваться клавишей F9 .


Комментарии

Только для авторизованных пользователей

(только для авторизованных пользователей)

© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved