Способ 1. Без формул
Имеем список беспорядочно повторяющихся элементов. Задача - выдернуть из него в отдельную таблицу неповторяющихся (то бишь уникальных) представителей.
Делай раз - меню Данные - Фильтр - Расширенный фильтр (Data - Filter - Advanced Filter). Получаем окно:
Делай два - выделить список в Исходный диапазон, переставить переключатель в положение Скопировать результат в другое место и указать пустую ячейку.
Делай три - установить (самое главное!) флажок Только уникальные записи (Uniqe records only) и нажать ОК.
Получите, распишитесь.
Способ 2. Динамический(!) выбор уникальных записей с применением формул
Чуть более сложный способ, чем первый, но зато - динамический, т.е. с автоматическим пересчетом, т.е. если список редактируется или в него дописываются еще элементы, то они автоматически проверяются на уникальность и отбираются. В предыдущем способе при изменении исходного списка нужно будет заново запускать Расширенный фильтр.
Итак, снова имеем список беспорядочно повтояющихся элементов. Например, такой:
Первая задача - пронумеровать всех уникальных представителей списка, дав каждому свой номер (столбец А на рисунке). Для этого вставляем в ячейку А2 и копируем затем вниз до упора следующую формулу:
=ЕСЛИ(СЧЁТЕСЛИ(B$1:B2;B2)=1;МАКС(A$1:A1)+1;"")
В английской версии это будет:
=IF(COUNTIF(B$1:B2;B2)=1;MAX(A$1:A1)+1;"")
Эта формула проверяет сколько раз текущее наименование уже встречалось в списке (считая с начала), и если это количество =1, т.е. элемент встретился первый раз - дает ему последовательно возрастающий номер.
Для упрощения адресации дадим нашим диапазонам (например, исходя из того, что в списке может быть до 100 элементов) имена через меню Вставка - Имя - Присвоить (Insert - Name - Define):
· | диапазону номеров (A1:A100) - имя NameCount |
· | всему списку с номерами (A1:B100) - имя NameList |
Теперь осталось выбрать из списка NameList все элементы имеющие номер - это и будут наши уникальные представители. Сделать это можно в любой пустой ячейке соседних столбцов, введя туда такую формулу и скопировав ее вниз на весь столбец:
=ЕСЛИ(МАКС(NameCount)<СТРОКА(1:1);"";ВПР(СТРОКА(1:1);NameList;2))
или в английской версии Excel:
=IF(MAX(NameCount)<ROW(1:1);"";VLOOKUP(ROW(1:1);NameList;2))
Эта формула проходит сверху вниз по столбцу NameCount и выводит все позиции списка с номерами в отдельную таблицу: