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

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

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

Задача

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

 

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

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

В статье Объединение списков изложено решение создания объединенного списка из 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.

Связанные статьи

Похожие задачи
Прочитайте другие статьи, решающие похожие задачи в MS Excel. Это позволит Вам решать широкий класс подобных задач.
Средняя: 5 (2 оценок)
Яндекс.Метрика