Только уникальные значения в диапазоне excel

Извлечение уникальных элементов из диапазона

Способ 1. Штатная функция в Excel 2007

Начиная с 2007-й версии функция удаления дубликатов является стандартной — найти ее можно на вкладке Данные — Удаление дубликатов (Data — Remove Duplicates):

remove-duplicates1.png

В открывшемся окне нужно с помощью флажков задать те столбцы, по которым необходимо обеспечивать уникальность. Т.е. если включить все флажки, то будут удалены только полностью совпадающие строки. Если включить только флажок заказчик, то останется только по одной строке для каждого заказчика и т.д.

Способ 2. Расширенный фильтр

Если у вас Excel 2003 или старше, то для удаления дубликатов и вытаскивания из списка уникальных (неповторяющихся) элементов можно использовать Расширенный фильтр (Advanced Filter) из меню (вкладки) Данные (Data).

Предположим, что у нас имеется вот такой список беспорядочно повторяющихся названий компаний:

uniqe1.gif

Выбираем в меню Данные — Фильтр — Расширенный фильтр (Data — Filter — Advanced Filter). Получаем окно:

uniqe2.gif

В нем:

  • Выделяем наш список компаний в Исходный диапазон (List Range).
  • Ставим переключатель в положение Скопировать результат в другое место (Copy to another location) и указываем пустую ячейку.
  • Включаем (самое главное!) флажок Только уникальные записи(Uniqe records only) и жмем ОК.

Получите список без дубликатов:

uniqe3.gif

Если требуется искать дубликаты не по одному, а по нескольким столбцам, то можно предварительно склеить их в один, сделав, своего рода, составной ключ с помощью функции СЦЕПИТЬ (CONCATENATE):

remove-duplicates2.png

Тогда дальнейшая задача будет сводиться к поиску дубликатов уже в одном столбце.

Способ 3. Выборка уникальных записей формулой

Чуть более сложный способ, чем первые два, но зато — динамический, т.е. с автоматическим пересчетом, т.е. если список редактируется или в него дописываются еще элементы, то они автоматически проверяются на уникальность и отбираются. В предыдущих способах при изменении исходного списка нужно будет заново запускать Расширенный фильтр или жать на кнопку Удаление дубликатов.

Итак, снова имеем список беспорядочно повторяющихся элементов. Например, такой:

uniqe4.gif

Первая задача — пронумеровать всех уникальных представителей списка, дав каждому свой номер (столбец А на рисунке). Для этого вставляем в ячейку А2 и копируем затем вниз до упора следующую формулу:

=ЕСЛИ(СЧЁТЕСЛИ(B$1:B2;B2)=1;МАКС(A$1:A1)+1;»»)

В английской версии это будет:

=IF(COUNTIF(B$1:B2;B2)=1;MAX(A$1:A1)+1;»»)

Эта формула проверяет сколько раз текущее наименование уже встречалось в списке (считая с начала), и если это количество =1, т.е. элемент встретился первый раз — дает ему последовательно возрастающий номер.

Для упрощения адресации дадим нашим диапазонам (например, исходя из того, что в списке может быть до 100 элементов) имена. Это можно сделать в новых версиях Excel на вкладке Формулы — Диспетчер имен (Formulas — Name manager) или в старых версиях — через меню Вставка — Имя — Присвоить (Insert — Name — Define):

  • диапазону номеров (A1:A100) — имя NameCount
  • всему списку с номерами (A1:B100) — имя NameList

Теперь осталось выбрать из списка NameList все элементы имеющие номер — это и будут наши уникальные представители. Сделать это можно в любой пустой ячейке соседних столбцов, введя туда вот такую формулу с известной функцией ВПР (VLOOKUP) и скопировав ее вниз на весь столбец:

=ЕСЛИ(МАКС(NameCount)<СТРОКА(1:1);»»;ВПР(СТРОКА(1:1);NameList;2))

или в английской версии Excel:

=IF(MAX(NameCount)

Эта формула проходит сверху вниз по столбцу NameCount и выводит все позиции списка с номерами в отдельную таблицу:

uniqe5.gif

Ссылки по теме

  • Выделение дубликатов по одному или нескольким столбцам в списке цветом
  • Запрет ввода повторяющихся значений
  • Извлечение уникальных значений при помощи надстройки PLEX

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще…Меньше

Функция УНИК возвращает список уникальных значений в списке или диапазоне. 

Возвращение уникальных значений из списка значений

Пример использования =УНИК(B2:B11) для возврата уникального списка чисел

Возвращение уникальных имен из списка имен

Применение функции УНИК для сортировки списка имен

=УНИК(массив,[by_col],[exactly_once])

Функция УНИК имеет следующие аргументы:

Аргумент

Описание

массив

Обязательный

Диапазон или массив, из которого возвращаются уникальные строки или столбцы

[by_col]

Необязательный

Аргумент by_col является логическим значением, указывающим, как проводить сравнение.

Значение ИСТИНА сравнивает столбцы друг с другом и возвращает уникальные столбцы

Значение ЛОЖЬ (или отсутствующее значение) сравнивает строки друг с другом и возвращает уникальные строки

[exactly_once]

Необязательно

Аргумент exactly_once является логическим значением, которое возвращает строки или столбцы, встречающиеся в диапазоне или массиве только один раз. Это концепция базы данных УНИК.

Значение ИСТИНА возвращает из диапазона или массива все отдельные строки или столбцы, которые встречаются только один раз

Значение ЛОЖЬ (или отсутствующее значение) возвращает из диапазона или массива все отдельные строки или столбцы

Примечания: 

  • Массив может рассматриваться как строка или столбец со значениями либо комбинация строк и столбцов со значениями. В примерах выше массивы для наших формул УНИК являются диапазонами D2:D11 и D2:D17 соответственно.

  • Функция УНИК возвращает массив, который будет рассеиваться, если это будет конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши ВВОД. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете Структурированные ссылки. Дополнительные сведения см. в статье Поведение рассеянного массива.

  • Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.

Примеры

Пример 1

В этом примере СОРТ и УНИК используются совместно для возврата уникального списка имен в порядке возрастания.

Использование УНИК с СОРТ для возврата списка имен по возрастанию

Пример 2

В этом примере аргумент exactly_once имеет значение ИСТИНА, и функция возвращает только тех клиентов, которые обслуживались один раз. Это может быть полезно, если вы хотите найти людей, которые не получали дополнительное обслуживание, и связаться с ними.

Использование УНИК с аргументом occurs_once, для которого задано значение true, для возврата списка имен, которые встречаются только один раз.

Пример 3

В этом примере используется амперсанд (&) для сцепления фамилии и имени в полное имя. Обратите внимание, что формула ссылается на весь диапазон имен в массивах A2:A12 и B2:B12. Это позволяет Excel вернуть массив всех имен.

Использование УНИК с несколькими диапазонами для объединения столбцов имени и фамилии в столбец полного имени.

Советы: 

  • Если указать диапазон имен в формате таблицы Excel, формула автоматически обновляется при добавлении или удалении имен.

  • Чтобы отсортировать список имен, можно добавить функцию СОРТ: =СОРТ(УНИК(B2:B12&» «&A2:A12))

Пример 4

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

Использование УНИК для возврата списка продавцов.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция ФИЛЬТР

Функция СЛУЧМАССИВ

Функция ПОСЛЕДОВ

Функция СОРТ

Функция СОРТПО

Ошибки #SPILL! в Excel

Динамические массивы и поведение массива с переносом

Оператор неявного пересечения: @

Нужна дополнительная помощь?

Skip to content

Как получить список уникальных значений

В статье описано, как получить список уникальных значений в столбце с помощью формулы и как настроить эту формулу для различных наборов данных. Вы также узнаете, как быстро получить отдельный список с помощью расширенного фильтра Excel и как извлечь уникальные записи с помощью Duplicate Remover.

В нескольких недавних статьях мы обсудили различные методы подсчета и поиска уникальных значений в Excel. Если у вас была возможность прочитать эти руководства, вы уже знаете, как получить этот список при помощи идентификации, фильтрации и копирования. Но это немного длинный и далеко не единственный способ извлечения уникальных значений в Excel. Вы можете сделать это намного быстрее, используя специальную формулу. И сейчас я покажу вам этот и несколько других приёмов.

  • Формулы для уникальных значений в столбце.
  • Как извлечь уникальные + 1е вхождение дубликатов.
  • Если нужно игнорировать пустые ячейки.
  • Выбираем уникальные с учетом регистра.
  • Отбор уникальных значений по условию.
  • Как извлечь уникальные значения из диапазона.
  • Применяем встроенный инструмент удаления дубликатов.
  • Список уникальных при помощи расширенного фильтра.
  • Извлечение уникальных данных при помощи Duplicate Remover.

Базовые формулы для получения уникальных значений.

Чтобы избежать путаницы, сначала давайте договоримся о том, что мы называем уникальными значениями в Excel. 

Уникальные значения — это значения, которые присутствуют в списке только один раз. Например:

Чтобы получить список уникальных значений в Excel, используйте одну из следующих формул.

Формула уникальных значений массива (заполняется нажатием Ctrl + Shift + Enter):

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$10; ПОИСКПОЗ(0; СЧЁТЕСЛИ($B$1:B1;$A$2:$A$10) + (СЧЁТЕСЛИ($A$2:$A$10; $A$2:$A$10)<>1); 0)); «»)

Можно воспользоваться и обычной формулой (вводится нажатием Enter):

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$10; ПОИСКПОЗ(0;ИНДЕКС(СЧЁТЕСЛИ($B$1:B1; $A$2:$A$10) + (СЧЁТЕСЛИ($A$2:$A$10; $A$2:$A$10)<>1);0;0); 0)); «»)

В приведенных выше формулах используются следующие ссылки:

  • A2: A10 – исходных перечень данных.
  • B1 — верхняя ячейка уникального списка минус одна строка. В этом примере мы начинаем создавать список уникальных в B2, и поэтому мы записываем B1 в формулу (B2 — 1 строка = B1). Если ваш список начинается, скажем, с ячейки C3, измените $B$1:B1 на $C$2:C2.

В этом примере мы извлекаем уникальные имена из столбца A (точнее из диапазона A2: A10), а следующий скриншот демонстрирует формулу в действии:

Вот наш порядок действий:

  • Измените любую из формул в соответствии с вашим диапазоном данных.
  • Введите ее в первую ячейку, с которой начнётся формирование списка (в данном примере B2).
  • Если вы используете формулу массива, нажмите Ctrl + Shift + Enter. Если вы выбрали обычную, нажмите просто клавишу Enter.
  • Скопируйте вниз настолько, насколько это необходимо, перетащив мышкой маркер заполнения. Поскольку обе формулы заключены в функцию ЕСЛИОШИБКА, вы можете скопировать вниз с запасом. Это не испортит ваши данные какими-либо ошибками, независимо от того, сколько уникальных значений было извлечено.

Как извлечь различные значения.

Различные значения — появляются в перечне данных хотя бы один раз. Это все уникальные и первое вхождение повторяющихся значений.

Например:

Чтобы получить их список в Excel, используйте следующие формулы.

Формула массива (требуется нажать Ctrl + Shift + Enter):

{=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$13; ПОИСКПОЗ(0; СЧЁТЕСЛИ($B$1:B1; $A$2:$A$13); 0)); «»)}

или можно так:

{=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$13; НАИМЕНЬШИЙ(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$13;$B$1:B1;0)); СТРОКА($A$1:$A$15);»»);1));»»)}

Обычная  формула:

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$13; ПОИСКПОЗ(0; ИНДЕКС(СЧЁТЕСЛИ($B$1:B1; $A$2:$A$13); 0; 0); 0)); «»)

Где:

  • A2: A13 — это список источников.
  • B1 — это ячейка над первой ячейкой отдельного списка. В этом примере отдельный список начинается с ячейки B2 (это первая ячейка, в которую вы вводите формулу), поэтому вы ссылаетесь на B1.

Как извлечь значения, игнорируя пустые ячейки

Если исходный список содержит пустые ячейки, формула, которую мы только что обсудили, вернет ноль для каждой пустой строки, что может быть проблемой. Это вы и наблюдаете на скриншоте чуть выше. Чтобы исправить это, сделаем несколько небольших корректировок.

Формула массива для извлечения различных значений, исключая пустые ячейки:

{=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$13; ПОИСКПОЗ(0;СЧЁТЕСЛИ($C$1:C1;$A$2:$A$13&»») + ЕСЛИ($A$2:$A$13=»»;1;0); 0)); «»)}

Аналогичным образом вы можете получить список различных значений, исключая пустые ячейки и ячейки с числами:

{=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$13; ПОИСКПОЗ(0;СЧЁТЕСЛИ($D$1:D1;$A$2:$A$13&»») + ЕСЛИ(ЕТЕКСТ($A$2:$A$13)=ЛОЖЬ;1;0); 0)); «»)}

Напоминаем, что в приведенных выше формулах A2: A13 – это исходный список, а B1 – ячейка прямо над первой позицией формируемого списка.

На этом скриншоте показан результат отбора:

Быть может, кому-то будет полезна еще одна формула –

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$13; АГРЕГАТ(15;6;(СТРОКА($A$2:$A$13)-СТРОКА($A$2)+1) / (ПОИСКПОЗ($A$2:$A$13;$A$2:$A$13;0)=СТРОКА($A$2:$A$13)-СТРОКА($A$2)+1); ЧСТРОК($A$2:$A2)));»»)

Она работает с числами и текстом, игнорирует пустые ячейки.

Как извлечь отдельные значения с учетом регистра в Excel

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

Для этого используйте формулу массива, где A2: A10 — это исходный список, а B1 — это ячейка над первой ячейкой отдельного списка.

Формула массива для получения различных значений с учетом регистра (требуется нажатие Ctrl + Shift + Enter)

{=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$10; ПОИСКПОЗ(0; ЧАСТОТА(ЕСЛИ(СОВПАД($A$2:$A$10; ТРАНСП($B$1:B1)); ПОИСКПОЗ(СТРОКА($A$2:$A$10); СТРОКА($A$2:$A$10)); «»); ПОИСКПОЗ(СТРОКА($A$2:$A$10); СТРОКА($A$2:$A$10))); 0)); «»)}

Как видите, при отборе регистр здесь имеет значение.

Отбор уникальных значений по условию.

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

Сначала отберем из таблицы только те строки, которые удовлетворяют заданным условиям, затем из этих строк выберем уникальные наименования товаров.

В ячейке G2 указываем нужного нам заказчика, а в H2 записываем эту формулу массива:

{=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$20; ПОИСКПОЗ(0;ЕСЛИ((($A$2:$A$20=$G$2)); СЧЁТЕСЛИ($H$1:H1;$B$2:$B$20);»»);0));»»)}

Не забудьте, что формулу массива нужно вводить в ячейку EXCEL с помощью одновременного нажатия CTRL+SHIFT+ENTER. Копируем ее по столбцу вниз при помощи маркера заполнения. Получаем список из четырех позиций.

Усложним задачу. Определим список не только для этого покупателя, но также и для определённого менеджера.

Вот наша формула массива:

{=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$20;ПОИСКПОЗ(0; ЕСЛИ((($A$2:$A$20=$G$2)+($D$2:$D$20=$H$2))=2; СЧЁТЕСЛИ($I$1:I1;$B$2:$B$20);»»);0));»»)}

Как видите, теперь товаров всего два. В подсчете принимают участие только те строки, которые удовлетворяют сразу двум условиям: должно совпасть название фирмы и фамилия менеджера. Только из них мы извлекаем уникальные названия товаров.

В случае, если условий будет больше, нужно просто добавить соответствующий критерий в функцию ЕСЛИ и изменить число 2 на 3 или большее (в зависимости от количества условий).

Извлечь уникальные значения из диапазона.

Формулы, которые мы описывали выше, позволяют сформировать список значений из данных определенного столбца. Но часто речь идет о нескольких столбцах, то есть о диапазоне данных. К примеру, вы получили несколько списков товаров из различных файлов и расположили их в соседних столбцах.

Используем формулу массива

{=ДВССЫЛ(ТЕКСТ(МИН(ЕСЛИ(($A$2:$C$9<>»») * (СЧЁТЕСЛИ($E$1:E1;$A$2:$C$9)=0); СТРОКА($2:$9)*100 + СТОЛБЕЦ($A:$C);7^8));»R0C00″);)&»»}

Здесь A2:C9 обозначает диапазон, из которого вы хотите извлечь уникальные значения. E1 – это первая ячейка столбца, в который вы хотите поместить результат. $2:$9 указывает на строки, содержащие данные, которые вы хотите использовать. $A:$C указывает на столбцы, из которых вы берёте исходные данные. Пожалуйста, измените их на свои собственные.

Нажмите Shift + Ctrl + Enter , а затем перетащите маркер заполнения, чтобы вывести уникальные значения, пока не появятся пустые ячейки.

Как видите, извлекаются все уникальные и первые вхождения дубликатов.

Встроенный инструмент удаления дубликатов.

Начиная с Excel 2007 функция удаления дубликатов является стандартной. Найти ее можно на вкладке  Данные > Удаление дубликатов.

Вам нужно при помощи птички указать столбцы, в которых нужно найти и удалить повторяющиеся значения. Если сделать так, как на скриншоте, то в таблице останутся только уникальные пары «Заказчик – Товар». Остальное будет удалено. Если включить только флажок «Заказчик», то останется только по одной строке для каждого заказчика и т.д.

Использование расширенного фильтра.

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

  1. Выберите столбец данных, из которого вы хотите извлечь отдельные значения.
  2. Перейдите на вкладку «Данные» > группа «Сортировка и фильтр» и нажмите кнопку «Дополнительно» .
  3. В диалоговом окне Расширенный фильтр выберите следующие параметры:
    • Установите флажок Копировать в другое место .
    • В поле Исходный диапазон убедитесь, что он указан правильно.
    • В параметре Поместить результат в…   укажите самую верхнюю ячейку целевого диапазона. Помните, что вы можете копировать отфильтрованные данные только на текущий лист.
    • Выберите пункт «Только уникальные записи».
  4. Наконец, нажмите кнопку ОК и проверьте результат.

Как видите, мы проверили колонку B, и затем список уникальных наименований товара, найденных в ней, поместили в столбец K.

Обратите внимание, что хотя опция расширенного фильтра называется «Только уникальные записи», она извлекает различные значения, то есть уникальные и первые вхождения повторяющихся.

Теперь немного усложним задачу.

Если требуется искать записи не по одному, а по нескольким столбцам, то можно их предварительно «склеить» при помощи функции СЦЕПИТЬ.

=СЦЕПИТЬ(A2;B2)

Записываем это в столбец F и копируем вниз. Получаем вспомогательную колонку.

В качестве исходного диапазона мы по-прежнему выбираем данные, из которых извлекаем уникальные значения. Теперь это два столбца – A и B.

Но искать уникальные мы по-прежнему можем только в одном столбце. Вот для этого нам и пригодится вспомогательная колонка F с объединенными данными. Ее то мы и указываем в поле «Диапазон условий».

Все остальное – так же, как и в предыдущем примере.

В результате мы получили все имеющиеся в таблице комбинации «Заказчик — Товар» на основе данных во вспомогательном столбце F.

Думаю, вы понимаете, что аналогичные действия можно произвести и с тремя столбцами (например Фамилия – Имя – Отчество). Главное условие – исходный диапазон должен быть непрерывным, то есть все столбцы должны находиться рядом.

Как видите формулы здесь не нужны. Однако, если исходные данные изменятся, то все манипуляции придется повторять заново.

Извлечение уникальных значений с помощью Duplicate Remover.

В заключительной части этого руководства я покажу вам интересное решение для поиска и извлечения различных и уникальных значений в таблицах Excel. Это решение сочетает в себе универсальность формул Excel и простоту расширенного фильтра. Кроме того, здесь есть несколько уникальных функций:

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

А теперь давайте посмотрим, как работает инструмент Duplicate Remover.

Предположим, у вас есть большая таблица, созданная путем объединения данных из нескольких других таблиц. Очевидно, что она содержит много повторяющихся строк, и ваша задача состоит в том, чтобы извлечь уникальные строки, которые появляются в таблице только один раз, или различные строки, включая уникальные и первые повторяющиеся вхождения. В любом случае, с надстройкой Duplicate Remover работа выполняется за несколько шагов.

  1. Выберите любую ячейку в исходной таблице и нажмите кнопку DuplicateRemover на вкладке AblebitsData в группе Dedupe.

Мастер Duplicate Remover запустится и выберет всю таблицу. Итак, просто нажмите « Далее», чтобы перейти к следующему шагу.

  1. Выберите тип значения, который вы хотите найти, и нажмите Далее :
    • Уникальные
    • Уникальные + 1е вхождения (различные)
В этом примере мы хотим извлечь различные строки, которые появляются в исходной таблице хотя бы один раз, поэтому мы выбираем опцию Unique + 1st occurences:

  1. Выберите один или несколько столбцов для проверки уникальных значений.

В этом примере мы хотим убрать все повторяющиеся значения на основе значений в 2 столбцах ( заказчик и товар), поэтому мы выбираем только нужные нам столбцы.

В нашем случае таблица имеет заголовок, поэтому отмечаем птичкой пункт My table has headers.

Думаю, нам не нужны пустые строки, которые могут случайно встретиться при объединении данных из разных таблиц. Поэтому отмечаем такжеSkip empty cells.

Если вдруг в наших записях случайно появились лишние пробелы, то, думаю, стоит их игнорировать. Поэтому отмечаем также Ignore extra spaces.

Также наш поиск буден нечувствителен к регистру, то есть не будем при сравнении данных различать прописные и строчные буквы. Поэтому  не трогаем опцию Case-sensitive match.

  1. Выберите действие, которое нужно выполнить с найденными значениями. Вам доступны следующие варианты:
    • Выделить цветом.
    • Выбрать и выделить.
    • Отметить в столбце статуса.
    • Копировать в другое место.

Чтобы не менять исходные данные, выберите «Копировать в другое место» (Copy to another location), а затем укажите, где именно вы хотите видеть новую таблицу – на этом же листе (выберите параметр «Custom Location» и укажите верхнюю ячейку целевого диапазона), на новом листе (New worksheet) или в новой книге (New workbook).

В этом примере давайте выберем новый лист:

  1. Нажмите кнопку « Готово» , и все готово!

В итоге у нас осталось всего 20 записей.

Понравился этот быстрый и простой способ получить список уникальных значений или записей в Excel? Если да, то я рекомендую вам загрузить полнофункциональную ознакомительную версию Ultimate Suite и попробовать в работе Duplicate Remover.

В Ultimate Suite for Excel также включено много других полезных инструментов, которые помогут вам сэкономить много времени. Мы о них также будем подробно рассказывать в других материалах на сайте.

Хитрости »

1 Май 2011              532260 просмотров


Как получить список уникальных(не повторяющихся) значений?

Представим себе большой список различных наименований, ФИО, табельных номеров и т.п. А необходимо из этого списка оставить список все тех же наименований, но чтобы они не повторялись — т.е. удалить из этого списка все дублирующие записи. Как это иначе называют: создать список уникальных элементов, список неповторяющихся, без дубликатов. Для этого существует несколько способов: встроенными средствами Excel, встроенными формулами и, наконец, при помощи кода Visual Basic for Application(VBA) и сводных таблиц. В этой статье рассмотрим каждый из вариантов.

  • При помощи встроенных возможностей Excel 2007 и выше
  • При помощи Расширенного фильтра
  • При помощи формул
  • При помощи кодов Visual Basic for Application(VBA) — макросы, включая универсальный код выборки из произвольного диапазона
  • При помощи сводных таблиц

при помощи встроенных возможностей Excel 2007 и выше

В Excel 2007 и 2010 это сделать проще простого — есть специальная команда, которая так и называется — Удалить дубликаты (Remove Duplicates). Расположена она на вкладке Данные (Data) подраздел Работа с данными (Data tools)

Как использовать данную команду. Выделяете столбец(или несколько) с теми данными, в которых надо удалить дублирующие записи. Идете на вкладку Данные (Data)Удалить дубликаты (Remove Duplicates).

Если выделить один столбец, но рядом с ним будут еще столбцы с данными(или хотя бы один столбец), то Excel предложит выбрать: расширить диапазон выборки этим столбцом или оставить выделение как есть и удалить данные только в выделенном диапазоне. Важно помнить, что если не расширить диапазон, то данные будут изменены лишь в одном столбце, а данные в прилегающем столбце останутся без малейших изменений.

Появится окно с параметрами удаления дубликатов

Ставите галочки напротив тех столбцов, дубликаты в которых надо удалить и жмете Ок. Если в выделенном диапазоне так же расположены заголовки данных, то лучше поставить флаг Мои данные содержат заголовки, чтобы случайно не удалить данные в таблице(если они вдруг полностью совпадают со значением в заголовке).


Способ 1: Расширенный фильтр

В случае с Excel 2003 все посложнее. Там нет такого инструмента, как Удалить дубликаты. Но зато есть такой замечательный инструмент, как Расширенный фильтр. В 2003 этот инструмент можно найти в ДанныеФильтрРасширенный фильтр. Прелесть этого метода в том, с его помощью можно не портить исходные данные, а создать список в другом диапазоне.

В 2007-2010 Excel, он тоже есть, но немного запрятан. Расположен на вкладке Данные (Data), группа Сортировка и фильтр (Sort & Filter)Дополнительно (Advanced)

Как его использовать: запускаем указанный инструмент — появляется диалоговое окно:

  • Обработка: Выбираем Скопировать результат в другое место (Copy to another location).
  • Исходный диапазон (List range): Выбираем диапазон с данными(в нашем случае это А1:А51).
  • Диапазон критериев (Criteria range): в данном случае оставляем пустым.
  • Поместить результат в диапазон (Copy to): указываем первую ячейку для вывода данных — любую пустую(на картинке — E2).
  • Ставим галочку Только уникальные записи (Unique records only).
  • Жмем Ок.

Примечание: если вы хотите поместить результат на другой лист, то просто так указать другой лист не получится. Вы сможете указать ячейку на другом листе, но…Увы и ах…Excel выдаст сообщение, что не может скопировать данные на другие листы. Но и это можно обойти, причем довольно просто. Надо всего лишь запустить Расширенный фильтр с того листа, на который хотим поместить результат. А в качестве исходных данных выбираем данные с любого листа — это дозволено.

Так же можно не выносить результат в другие ячейки, а отфильтровать данные на месте. Данные от этого никак не пострадают — это будет обычная фильтрация данных.

Для этого надо просто в пункте Обработка выбрать Фильтровать список на месте (Filter the list, in-place).


Способ 2: Формулы

Этот способ сложнее в понимании для неопытных пользователей, но зато он создает список уникальных значений, не изменяя при этом исходные данные. Ну и он более динамичен: если изменить данные в исходной таблице, то изменится и результат. Иногда это бывает полезно. Попытаюсь объяснить на пальцах что и к чему: допустим, список с данными у Вас расположен в столбце

А

(

А1:А51

, где

А1

— заголовок). Выводить список мы будем в столбец

С

, начиная с ячейки

С2

. Формула в

C2

будет следующая:

{=ИНДЕКС($A$2:$A$51;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($C$1:C1;$A$2:$A$51)=0;СТРОКА($A$1:$A$50));1))}
{=INDEX($A$2:$A$51;SMALL(IF(COUNTIF($C$1:C1;$A$2:$A$51)=0;ROW($A$1:$A$50));1))}
Детальный разбор работы данной формулы приведен в статье: Как просмотреть этапы вычисления формул

Надо отметить, что эта формула является формулой массива. Об этом могут сказать фигурные скобки, в которые заключена данная формула. А вводится такая формула в ячейку сочетанием клавиш —

Ctrl

+

Shift

+

Enter

(при этом сами скобки вводить не надо — они появятся сами после ввода формулы тремя клавишами

Ctrl

+

Shift

+

Enter

). После того, как мы ввели эту формулу в

C2

мы её должны скопировать и вставить в несколько строк так, чтобы точно отобразить все уникальные элементы. Как только формула в нижних ячейках вернет

#ЧИСЛО!(#NUM!)

— это значит все элементы отображены и ниже протягивать формулу нет смысла. Чтобы ошибку избежать и сделать формулу более универсальной(не протягивая каждый раз до появления ошибки) можно использовать нехитрую проверку:

для Excel 2007 и выше:
{=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$51;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($C$1:C1;$A$2:$A$51)=0;СТРОКА($A$1:$A$50));1));»»)}
{=IFERROR(INDEX($A$2:$A$51;SMALL(IF(COUNTIF($C$1:C1;$A$2:$A$51)=0;ROW($A$1:$A$50));1));»»)}
для Excel 2003:
{=ЕСЛИ(ЕОШ(НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($C$1:C1;$A$2:$A$51)=0;СТРОКА($A$1:$A$50));1));»»;ИНДЕКС($A$2:$A$51;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($C$1:C1;$A$2:$A$51)=0;СТРОКА($A$1:$A$50));1)))}
{=IF(ISERR(SMALL(IF(COUNTIF($C$1:C1;$A$2:$A$51)=0;ROW($A$1:$A$50));1));»»;INDEX($A$2:$A$51;SMALL(IF(COUNTIF($C$1:C1;$A$2:$A$51)=0;ROW($A$1:$A$50));1)))}

Тогда вместо ошибки 

#ЧИСЛО!(#NUM!)

у вас будут пустые ячейки(не совсем пустые, конечно — с формулами :-)).
Чуть подробнее про отличия и нюансы формул ЕСЛИОШИБКА и ЕСЛИ(ЕОШ можно прочесть в этой статье: Как в ячейке с формулой вместо ошибки показать 0


Для пользователей Excel 2021 выше, а так же пользователей Excel 365(с активной подпиской) — использовать формулы для извлечения уникальных элементов проще простого. В этих версиях появилась функция

УНИК(UNIQUE)

, которая как раз получает список уникальных значений на основании переданного диапазона:

=УНИК($A$2:$A$51)
=UNIQUE($A$2:$A$51)

Что самое важное в данном случае — это функция динамического массива и вводить её надо только в одну ячейку C2, а результат она поместит сама в нужное количество ячеек.


Способ 3: код VBA

Данный подход потребует разрешения макросов и базовых знаний о работе с ними. Если не уверены в своих знаниях для начала рекомендую прочитать эти статьи:

  • Что такое макрос и где его искать? к статье приложен видеоурок
  • Что такое модуль? Какие бывают модули? потребуется, чтобы понять куда вставлять приведенные ниже коды

Оба приведенных ниже кода следует помещать в стандартный модуль. Макросы должны быть разрешены.

Исходные данные оставим в том же порядке — список с данными расположен в столбце «А«(А1:А51, где А1 — заголовок). Только выводить список мы будем не в столбец С, а в столбец Е, начиная с ячейки Е2:

Sub Extract_Unique()
    Dim vItem, avArr, li As Long
    ReDim avArr(1 To Rows.Count, 1 To 1)
    With New Collection
        On Error Resume Next
        For Each vItem In Range("A2", Cells(Rows.Count, 1).End(xlUp)).Value
            'Cells(Rows.Count, 1).End(xlUp) – определяет последнюю заполненную ячейку в столбце А
            .Add vItem, CStr(vItem)
            If Err = 0 Then
                li = li + 1: avArr(li, 1) = vItem
            Else: Err.Clear
            End If
        Next
    End With
    If li Then [E2].Resize(li).Value = avArr
End Sub

С помощью данного кода можно извлечь уникальные не только из одного столбца, но и из любого диапазона столбцов и строк. Если вместо строки
Range(«A2», Cells(Rows.Count, 1).End(xlUp)).Value
указать Selection.Value, то результатом работы кода будет список уникальных элементов из выделенного на активном листе диапазона. Только тогда неплохо бы и ячейку вывода значений изменить — вместо [E2] поставить ту, в которой данных нет.
Так же можно указать конкретный диапазон:

Или другой столбец:

Range("C2", Cells(Rows.Count, 3).End(xlUp)).Value

здесь отдельно стоит обратить внимание то, что в данном случае помимо изменения А2 на С2 изменилась и цифра 1 на 3. Это указание на номер столбца, в котором необходимо определить последнюю заполненную ячейку, чтобы код не просматривал лишние ячейки. Подробнее про это можно прочитать в статье: Как определить последнюю ячейку на листе через VBA?

Универсальный код выбора уникальных значений
Код ниже можно применять для любых диапазонов. Достаточно запустить его, указать диапазон со значениями для отбора только неповторяющихся(допускается выделение более одного столбца) и ячейку для вывода результата. Указанные ячейки будут просмотрены, из них будут отобраны только уникальные значения(пустые ячейки при этом пропускаются) и результирующий список будет записан, начиная с указанной ячейки.

Sub Extract_Unique()
    Dim x, avArr, li As Long
    Dim avVals
    Dim rVals As Range, rResultCell As Range
 
    On Error Resume Next
    'запрашиваем адрес ячеек для выбора уникальных значений
    Set rVals = Application.InputBox("Укажите диапазон ячеек для выборки уникальных значений", "Запрос данных", "A2:A51", Type:=8)
    If rVals Is Nothing Then 'если нажата кнопка Отмена
        Exit Sub
    End If
    'если указана только одна ячейка - нет смысла выбирать
    If rVals.Count = 1 Then
        MsgBox "Для отбора уникальных значений требуется указать более одной ячейки", vbInformation, "www.excel-vba.ru"
        Exit Sub
    End If
    'отсекаем пустые строки и столбцы вне рабочего диапазона
    Set rVals = Intersect(rVals, rVals.Parent.UsedRange)
    'если указаны только пустые ячейки вне рабочего диапазона
    If rVals Is Nothing Then
        MsgBox "Недостаточно данных для выбора значений", vbInformation, "www.excel-vba.ru"
        Exit Sub
    End If
    avVals = rVals.Value
    'запрашиваем ячейку для вывода результата
    Set rResultCell = Application.InputBox("Укажите ячейку для вставки отобранных уникальных значений", "Запрос данных", "E2", Type:=8)
    If rResultCell Is Nothing Then 'если нажата кнопка Отмена
        Exit Sub
    End If
    'определяем максимально возможную размерность массива для результата
    ReDim avArr(1 To Rows.Count, 1 To 1)
    'при помощи объекта Коллекции(Collection)
    'отбираем только уникальные записи,
    'т.к. Коллекции не могут содержать повторяющиеся значения
    With New Collection
        On Error Resume Next
        For Each x In avVals
            If Len(CStr(x)) Then 'пропускаем пустые ячейки
                .Add x, CStr(x) 'если добавляемый элемент уже есть в Коллекции - возникнет ошибка
                'если же ошибки нет - такое значение еще не внесено,
                'добавляем в результирующий массив
                If Err = 0 Then
                    li = li + 1
                    avArr(li, 1) = x
                Else
                    'обязательно очищаем объект Ошибки
                    Err.Clear
                End If
            End If
        Next
    End With
    'записываем результат на лист, начиная с указанной ячейки
    If li Then rResultCell.Cells(1, 1).Resize(li).Value = avArr
End Sub

Способ 4: Сводные таблицы

Несколько нестандартный способ извлечения уникальных значений.

  • Выделяем один или несколько столбцов в таблице, переходим на вкладку Вставка(Insert) -группа Таблица(Table)Сводная таблица(PivotTable)
  • В диалоговом окне Создание сводной таблицы(Create PivotTable) проверяем правильность выделения диапазона данных (или установить новый источник данных)
  • указываем место размещения Сводной таблицы:
    • На новый лист (New Worksheet)
    • На существующий лист (Existing Worksheet)
  • подтверждаем создание нажатием кнопки OK

Т.к. сводные таблицы при обработке данных, которые помещаются в область строк или столбцов, отбирают из них только уникальные значения для последующего анализа, то от нас ровным счетом ничего не требуется, кроме как создать сводную таблицу и поместить в область строк или столбцов данные нужного столбца.
На примере приложенного к статье файла я:

  • выделил диапазон A1:B51 на листе Извлечение по критерию
  • вызвал меню вставки сводной таблицы: вкладка Вставка(Insert) -группа Таблица(Table)Сводная таблица(PivotTable)
    выбрал вставить на новый лист(New Worksheet)
  • назвал этот лист Уникальные сводной таблицей
  • поле Данные поместил в область строк
  • поле ФИО в область фильтра. Почему? Чтобы удобно было выбирать одно или несколько ФИО и в сводной отображался бы список уникальных месяцев только для выбранных фамилий
    Отбор уникальных сводной таблицей

В чем неудобство работы со сводными в данном случае: при изменении в исходных данных сводную таблицу придется обновлять вручную: Выделить любую ячейку сводной таблицы -Правая кнопка мыши —Обновить(Refresh) или вкладка Данные(Data)Обновить все(Refresh all)Обновить(Refresh). А если исходные данные пополняются динамически и того хуже — надо будет заново указывать диапазон исходных данных. И еще один минус — данные внутри сводной таблицы нельзя менять. Поэтому если с полученным списком необходимо будет работать в дальнейшем, то после создания нужного списка при помощи сводной его надо скопировать и вставить на нужный лист.

Чтобы лучше понимать все действия и научиться обращаться со сводными таблицами настоятельно рекомендую ознакомиться со статьей Общие сведения о сводных таблицах — к ней приложен видеоурок, в котором я наглядно демонстрирую простоту и удобство работы с основными возможностями сводных таблиц.


В приложенном примере помимо описанных приемов, записана чуть более сложная вариация извлечения уникальных элементов формулой и кодом, а именно: извлечение уникальных элементов по критерию. О чем речь: если в одном столбце фамилии, а во втором(В) некие данные(в файле это месяцы) и требуется извлечь уникальные значения столбца В только для выбранной фамилии. Примеры подобных извлечений уникальных расположены на листе Извлечение по критерию.

Скачать пример:

  Tips_All_ExtractUnique.xls (108,0 KiB, 18 435 скачиваний)

Также см.:
Работа с дубликатами
Как подсчитать количество повторений
Общие сведения о сводных таблицах


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

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

Это очень простой способ для владельцев Excel выше 2007 версии как произвести отбор уникальных значений. Вам нужно на вкладке «Данные», в разделе «Работа с данными», использовать специальную команду «Удалить дубликаты».

В появившемся диалоговом окне «Удалить дубликаты», вы выделяете те столбики, где необходимо произвести отсев уникальных значений и нажимаете «Ок». В случае, когда в выделенном диапазоне размещается и заголовок таблицы, то поставьте галочку на пункте «Мои данные содержат заголовки», что бы вы случайно не удалили данные. Внимание! Когда вы будете производить отсев уникальных значений в таблице, где столбиков больше 2 и они взаимосвязаны информацией, Excel предложит вам расширить диапазон выбора, с чем вы должны, согласится, иначе будет нарушена логическая связь с другими столбиками.

Это также не сложный способ произвести отбор уникальных значений в таблице. Использовать этот инструмент возможно на вкладке «Данные», потом выбрать «Фильтр», и наконец «Расширенный фильтр», этот путь подходит для Excel 2003, а вот владельцы более юных версий, от 2007 и выше стоит пройти по пути: «Данные» — «Сортировка и фильтр» — «Дополнительно». Огромный плюс этого способа в том, что вы можете создать новый список уникальных значений в другом месте. После появления диалогового окна «Расширенный фильтр», устанавливаем галочку напротив пункта «Скопировать результат в другое место», потом указываем диапазон с вашими данными в поле «Исходный диапазон», при необходимости указываем критерий отбора, но для общего отсева поле оставляем пустым «Диапазон критериев», в третьем поле «Поместить результат в диапазон» указываем первую ячейку куда будут помещаться наши данные, отмечаем галочкой пункт «Только уникальные записи» и нажимаем «Ок». Если же вам не нужно никуда переносить ваши данные, то просто установите флажок для пункта «Фильтровать список на месте», данные не пострадают, произойдет наложение обыкновенного фильтра.

Внимание! Если программа запрещает вам переносить отфильтрованные данные на другой лист, вы просто запустите «Расширенный фильтр» на том листе, куда вам надо перенести отобранные уникальные значения.

Этот способ более сложен, нежели те, что мы рассматривали ранее, но его преимущество в том, что он более динамичен и работает на постоянной основе. В разных случаях вам будут нужны разные формулы, вот и рассмотрим несколько вариантов и примеров.

Пример 1. Вам нужно пронумеровать, уникальные, значение в списке значений, для этого нужно использовать функцию ЕСЛИ в формуле следующего вида:

Суть формулы в том, что она проверяет сколько раз, текущее значение встречается в вашем диапазоне (начиная с начала), и если это значение равно 1, то есть это первое уникальное значение, формула ставит последовательно возвращающий номер по порядку. Теперь можно произвести отбор уникальных значений, которые были ранее пронумерованы. Сделать это возможно в любом из соседних столбиков используя функцию ВПР и копируя ее вниз:

С ростом богатства растут и заботы. Гораций

Поиск уникальных значений в excel формула

Предположим, что у Вас есть вот такой файл по продажам региональных менеджеров:

Из него Вам необходимо извлечь все уникальные фамилии продавцов. Т.е. должен получиться такой список:

ПРОБЛЕМА: Как формулами извлечь уникальные значения?

РЕШЕНИЕ: Формула массива (вводится нажатием Ctrl+Shift+Enter):

КАК ЭТО РАБОТАЕТ: Функция ПОИСКПОЗ, сравнивающая два массива возвращает ИСТИНА только в том случае, если вхождение искомого значения в массив является первым. В результате работы ПОИСКПОЗ мы получаем массив: <ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ и т.д.>.
С помощью функции ЕСЛИ мы сравниваем получившийся массив с массивом <1:2:3:4:5:6:7:8 и т.д.>, полученном в результате работы функции СТРОКА с заданным диапазоном и в случае если ПОИСКПОЗ вернул ИСТИНА получаем номер строки вхождения.

Собственно говоря задача решена. Теперь остаётся только оформить итог списком. Для этого используем функцию НАИБОЛЬШИЙ, которая создаст вариативный ряд сначала из чисел, потом из значений ЛОЖЬ и функцию ИНДЕКС, которая вернёт нам необходимые текстовые значения из соответствующего массива. В жёлтых ячейках итог:

МИНУСЫ: Формулы массивов сильно замедляют скорость пересчёта листа.

ОБЛАСТЬ ПРИМЕНЕНИЯ: Любая версия Excel

ПРИМЕЧАНИЯ: Для устранения значения ошибки можно использовать проверку на ошибку согласно Вашей версии Excel или использовать Условное Форматирование

Блог о программе Microsoft Excel: приемы, хитрости, секреты, трюки

Создание списка уникальных значений в Excel с помощью формул массивов

Вытягивание уникальных значений из диапазона была и остается одной из старейших тем обсуждений в среде Excel. Хотя в программе реализовано несколько эффективных возможностей идентификации повторяющихся значений, а статей на эту тему написано еще больше, сегодня мы поговорим о возможности создания в Excel динамического списка уникальных значений с помощью формул массивов.

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

Формула массива будет выглядеть следующим образом:

Вам также могут быть интересны следующие статьи

9 комментариев

У вас описание так сформулировано, что я подумал, что вы ищите слова, которые ни разу не повторились в оригинальном перечне. А оказалось, вы составляете список значений избавленный от дублей. Т.е. список без повторов. Я уже порывался написать, что формула не работает, пока не понял, про что эта статья.

Двухуровневый выпадающий список в Excel . Создание двухуровнего выпадающего списка — задача довольно простая если знать, как к Для создания выпадающего групп нам понадобится дополнительный столбец, содержащий уникальные значения групп из исходной таблицы.

Добрый день. Очень нужная формула но с цифрами не работает.

Спасибо большое за полезную формулу!
Подскажите, пожалуйста, как можно доработать данную формулу так, чтобы она считала слова в разных регистрах разными, а не дублями одного и того же?

Формула не рабочая

Все работает, кавычки замените!
Подскажите, что надо изменить что бы работала для горизонтальных строк данных, вместо вертикальных

А если нужно создать список уникальных ячеек с диапазона, например B2:H15 ?

формула массива — это фантастика. Большое спасибо!

Отбор уникальных значений (убираем повторы из списка) в MS EXCEL

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

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

В некоторых ячейках исходного списка имеются повторы — новый список уникальных значений не должен их содержать.

Для наглядности уникальные значения в исходном списке выделены цветом с помощью Условного форматирования.

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

Для создания Динамического диапазона:

  • на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
  • в поле Имя введите: Исходный_список;
  • в поле Диапазон введите формулу =СМЕЩ(УникальныеЗначения!$A$5;;; СЧЁТЗ(УникальныеЗначения!$A$5:$A$30))
  • нажмите ОК.

Список уникальных значений создадим в столбце B с помощью формулы массива (см. файл примера ). Для этого введите следующую формулу в ячейку B5:

После ввода формулы вместо ENTER нужно нажать CTRL + SHIFT + ENTER. Затем нужно скопировать формулу вниз, например, с помощью Маркера заполнения. Чтобы все значения исходного списка были гарантировано отображены в списке уникальных значений, необходимо сделать размер списка уникальных значений равным размеру исходного списка (на тот случай, когда все значения исходного списка не повторяются). В случае наличия в исходном списке большого количества повторяющихся значений, список уникальных значений можно сделать меньшего размера, удалив лишние формулы, чтобы исключить ненужные вычисления, тормозящие пересчет листа.

Разберем работу формулу подробнее:

  • Здесь использование функции СЧЁТЕСЛИ() не совсем обычно: в качестве критерия (второй аргумент) указано не одно значение, а целый массив Исходный_список , поэтому функция возвращает не одно значение, а целый массив нулей и единиц. Возвращается 0, если значение из исходного списка не найдено в диапазоне B4:B4(B4:B5 и т.д.), и 1 если найдено. Например, в ячейке B5 формулой СЧЁТЕСЛИ(B$4:B5;Исходный_список) возвращается массив <1:0:0:0:0:0:0:1:0:0:0:0:1:1:0>. Т.е. в исходном списке найдено 4 значения «ООО Рога и копытца» (B5). Массив легко увидеть с помощью клавиши F9 (выделите в Строке формул выражение СЧЁТЕСЛИ(B$4:B5;Исходный_список) , нажмите F9: вместо формулы отобразится ее результат);
  • ПОИСКПОЗ() – возвращает позицию первого нуля в массиве из предыдущего шага. Первый нуль соответствует значению еще не найденному в исходном списке (т.е. значению «ОАО Уважаемая компания» для формулы в ячейке B5);
  • ИНДЕКС() – восстанавливает значение по его позиции в диапазоне Исходный_список ;
  • ЕСЛИОШИБКА() подавляет ошибку, возникающую, когда функция ПОИСКПОЗ() пытается в массиве нулей и единиц, возвращенном СЧЁТЕСЛИ() , найти 0, которого нет (ситуация возникает в ячейке B12, когда все уникальные значения уже извлечены из исходного списка).

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

Примечание. Функция ЕСЛИОШИБКА() будет работать начиная с версии MS EXCEL 2007, чтобы обойти это ограничение читайте статью про функцию ЕСЛИОШИБКА() . В файле примера имеется лист Для 2003, где эта функция не используется.

Решение для списков с пустыми ячейками

Если исходная таблица содержит пропуски, то нужно использовать другую формулу массива (см. лист с пропусками файла примера ):
=ЕСЛИОШИБКА(ИНДЕКС($A$5:$A$19;
ПОИСКПОЗ( 0;ЕСЛИ(ЕПУСТО($A$5:A19);»»;СЧЁТЕСЛИ($B$4:B4;$A$5:$A$19));0)
);»»)

Решение без формул массива

Для отбора уникальных значений можно обойтись без использования формул массива. Для этого создайте дополнительный служебный столбец для промежуточных вычислений (см. лист «Без CSE» в файле примера ).

СОВЕТ: Список уникальных значений можно создать разными способами, например, с использованием Расширенного фильтра (см. статью Отбор уникальных строк с помощью Расширенного фильтра), Сводных таблиц или через меню Данные/ Работа с данными/ Удалить дубликаты . У каждого способа есть свои преимущества и недостатки. Преимущество использования формул состоит в том, чтобы при добавлении новых значений в исходный список, список уникальных значений автоматически обновлялся.

СОВЕТ2: Для тех, кто создает список уникальных значений для того, чтобы в дальнейшем сформировать на его основе Выпадающий список, необходимо учитывать, что вышеуказанные формулы возвращают значение Пустой текст «», который требует аккуратного обращения, особенно при подсчете значений (вместо обычной функции СЧЕТЗ() нужно использовать СЧЕТЕСЛИ() со специальными аргументами). Например, см. статью Динамический выпадающий список в MS EXCEL.

Примечание: В статье Восстанавливаем последовательности из списка без повторов в MS EXCEL решена обратная задача: из списка уникальных значений, в котором для каждого значения задано количество повторов, создается список этих значений с повторами.

Подсчет количества уникальных значений среди повторяющихся

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

Значения 5, 6, 7 и 6 выводятся в виде трех уникальных значений: 5, 6 и 7.

Значения «Кирилл», «Сергей», «Сергей», «Сергей», результат — это два уникальных значения — «Кирилл» и «Сергей».

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

С помощью диалогового окна » Расширенный фильтр » можно извлекать уникальные значения из столбца данных и вставлять их в новое место. Затем с помощью функции ЧСТРОК можно подсчитать количество элементов в новом диапазоне.

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

Убедитесь, что диапазон ячеек содержит заголовок столбца.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

Откроется диалоговое окно » Расширенный фильтр «.

Выберите команду скопировать в другое место.

В поле Копировать в введите ссылку на ячейку.

Вы также можете нажать кнопку Свернуть диалоговОе окно , чтобы временно скрыть диалоговое окно, выделить ячейку на листе и нажать кнопку Развернуть диалоговое окно .

Установите флажок только уникальные записи и нажмите кнопку ОК.

Уникальные значения из выделенного диапазона копируются в новое место, начиная с ячейки, указанной в поле Копировать в .

В пустой ячейке, расположенной под последней ячейкой диапазона, введите функцию строки . Используйте диапазон уникальных значений, которые вы только что скопировали в качестве аргумента, исключая заголовки столбцов. Например, если диапазон уникальных значений — B2: B45, вы вводите = Rows (B2: B45).

Для выполнения этой задачи используйте сочетание функций Если, сумм, Частота, ПОИСКПОЗи ДЛСТР .

Назначьте значение 1 каждому из истинных условий с помощью функции ЕСЛИ.

Добавьте итог с помощью функции сумм .

ПодСчитайте число уникальных значений с помощью функции Частота . Функция FREQUENCY не обрабатывает текстовые и нулевые значения. Для первого вхождения определенного значения эта функция возвращает число, равное количеству вхождений этого значения. Для каждого вхождения того же значения, которое находится после первой, эта функция возвращает нуль.

Возвращает расположение текстового значения в диапазоне с помощью функции ПОИСКПОЗ . Возвращаемое значение затем используется в качестве аргумента функции FREQUENCY , чтобы можно было оценивать соответствующие текстовые значения.

Поиск пустых ячеек с помощью функции Len . Длина пустых ячеек равна 0.

Формулы, приведенные в этом примере, должны быть введены как формулы массива. Если у вас установлена текущая версия Office 365, можно просто ввести формулу в верхней левой ячейке диапазона вывода и нажать клавишу ВВОД, чтобы подтвердить использование формулы динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.

Чтобы просмотреть Пошаговое вычисление функции, выделите ячейку с формулой, а затем на вкладке формулы в группе Зависимости формул нажмите кнопку Вычисление формулы.

Функция Частота Вычисляет частоту возникновения значений в диапазоне значений и возвращает вертикальный массив чисел. Например, используйте функцию Частота для подсчета количества результатов теста, которые попадают в диапазоны оценок. Так как эта функция возвращает массив, она должна быть введена как формула массива.

Функция ПОИСКПОЗ осуществляет поиск определенного элемента в диапазоне ячеек и возвращает относительное расположение этого элемента в диапазоне. Например, если в диапазоне a1: A3 содержатся значения 5, 25 и 38, функция формула = Match (25; a1: A3; 0) возвращает число 2, так как значение 25 является вторым элементом диапазона.

Функция ДЛСТР возвращает число символов в текстовой строке.

Функция СУММ вычисляет сумму всех чисел, указанных в качестве аргументов. Каждый аргумент может быть диапазоном, ссылкой на ячейку, массивом, константой, формулой или результатом другой функции. Например, функция сумм (a1: A5) складывает все числа, содержащиеся в ячейкАх от a1 до A5.

Функция Если возвращает одно значение, если указанное условие имеет значение true, и другое, если условие имеет значение false.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.


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

Пусть столбцы

А

и

В

содержат списки названий компаний, в некоторых ячейках имеются

дубликаты

.

Задача

Создадим список, состоящий только из

уникальных

значений (см.

файл примера

).

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

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

В статье

Объединение списков

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

С5

формулу

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

Динамический диапазон

Список1

представляет собой

Исходный список №1

с названиями компаний, причем его границы могут изменяться в зависимости от количества числа введенных значений (пропуски не допускаются). Аналогичные диапазоны

Список2 и Объединенный_список

созданы для столбцов

Исходный список №2

и

Объединенный список

.

Далее используем решение, приведенное в статье

Отбор уникальных значений (убираем дубликаты из столбца)

.

Записав в

E5

формулу массива

:

=ЕСЛИОШИБКА(ИНДЕКС(Объединенный_список; ПОИСКПОЗ(0;СЧЁТЕСЛИ($E$4:E4;Объединенный_список);0));»»)

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

Тестируем

1. Введите в ячейку

А9

название новой компании –

ООО Фортик

2. В таблице

Уникальные значения через объединенный список

будет автоматически выведено название новой компании.

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

В принципе, можно обойтись и без объединенного списка. Платой за это будет значительное усложнение

формулы массива

:

=ЕСЛИОШИБКА(ЕСЛИОШИБКА( ИНДЕКС(Список1;ПОИСКПОЗ(0;СЧЁТЕСЛИ($F$4:F4;Список1);0));ИНДЕКС(Список2;ПОИСКПОЗ(0;СЧЁТЕСЛИ($F$4:F4;Список2);0)) );»»)

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

клавише

F9

,

выделив интересующую часть формулы.

Отбор уникальных значений из двух диапазонов в MS EXCEL

​Смотрите также​Application.Undo​ это делать, описано​ список.​ Target As Range)​

​ Получаем следующий вид​​ для проверки введенных​​PS: alx74-Расширенный фильтр​: Да не такая​ что здесь я​

Задача

​: Ещё одна немассивная​ Шифт Ентер​ функцию ИНДЕКС, которая​

​ уникальные фамилии продавцов.​ компании (столбцы​ примера).​1. Введите в ячейку​

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

​Имея два списка с​oldval = Target​ выше. С его​Открываем параметры проверки данных.​ Dim lReply As​ диапазона:​ данных. Повысить комфорт​​ не подходит потому​​ она уж и​
​ не помогу…​
​ формула.​

​sv2014​ вернёт нам необходимые​ Т.е. должен получиться​HI​Создадим таблицу, состоящую только​А9​ однотипными повторяющимися значениями,​If Len(oldval) <>​ помощью справа от​ В поле «Источник»​ Long If Target.Cells.Count​Ставим курсор в ячейку,​ работы с данными​

​ что слишком много​ простая. Здесь уже​Болезнь не позволяет​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=IFERROR(INDEX($B$2:$B$123;MATCH(1;INDEX((COUNTIF($H$1:H1;$B$2:$B$123)=0)*(A$2:A$123=G$1);0);0));»»)​

​: Sancho, добрый день​​ текстовые значения из​​ такой список:​
​).​
​ из строк с​

​название новой компании​ создадим из них​ 0 And oldval​ выпадающего списка будут​

Тестируем

​ вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).​​ > 1 Then​​ где будет находиться​ позволяют возможности выпадающих​
​ телодвижений​ решали , и​ мне использовать мозг​astradewa​ вариант с макросом,кнопка​

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

​ соответствующего массива. В​Козлов​1. Выберите в желтой​ уникальными названиями компаний.​ – ООО Фортик​
​ список, содержащий только​
​ <> newVal Then​
​ добавляться выбранные значения.Private​
​Имя файла, из которого​

​ Exit Sub If​ выпадающий список. Открываем​ списков: подстановка данных,​​, а надо​​ формулами, и макросом.​ на полную катушку,​

excel2.ru

Отбор уникальных значений на основании значений из соседнего столбца в MS EXCEL

​: На сайте www.excel-vba.ru​ yyy в файл-примере​ жёлтых ячейках итог:​Смирнов​ ячейке значение Рублевый;​ Уникальные значения будем​2. В таблице​ уникальные значения.​Target = Target​ Sub Worksheet_Change(ByVal Target​ берется информация для​ Target.Address = «$C$2″​ параметры инструмента «Проверка​ отображение данных другого​ чтобы при заполнении​alx74​

​ а стандартного решения​ The_Prist (Щербаков Дмитрий)​200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub zzz()​

​МИНУСЫ​Кузнецов​2. В столбце​ выбирать не из​ Уникальные значения через​Пусть столбцы​ & «,» &​ As Range) On​ списка, заключено в​ Then If IsEmpty(Target)​ данных» (выше описан​ листа или файла,​

Задача

​ таблицы данными​: Добрый день. Подскажите,​ формулами Вашей задачи​ нашёл формулу вывода​Dim z, i&​: Формулы массивов сильно​Сидоров​G​ всех названий компаний,​ объединенный список будет​

Решение

​АВ​ newVal​ Error Resume Next​​ квадратные скобки. Этот​​ Then Exit Sub​​ путь). В поле​​ наличие функции поиска​​автоматом в назначенный​​ может я чего​ нет​ уникальных значений из​z = Range(«A2:B»​ замедляют скорость пересчёта​Петров​будет выведен список​ а сначала из​

​ автоматически выведено название​​содержат списки названий​​Else​ If Not Intersect(Target,​ файл должен быть​

​ If WorksheetFunction.CountIf(Range(«Деревья»), Target)​ «Источник» прописываем такую​ и зависимости.​​ столбец выводились уникальные​​ не понимаю: Почему​
​astradewa​
​ столбца в назначенный​
​ & Range(«A» &​

​ листа.​​Иванов​​ названий компаний с​ компаний с типом​ новой компании.​ компаний, в некоторых​

​Target = newVal​ Range(«Е2:Е9»)) Is Nothing​ открыт. Если книга​ = 0 Then​ функцию:​Путь: меню «Данные» -​ значения.​ нельзя решить Расширенным​: Serge_007, спасибо за​​ столбец. Помогите переделать​​ Rows.Count).End(xlUp).Row).Value​

Тестируем

​ОБЛАСТЬ ПРИМЕНЕНИЯ​ПРОБЛЕМА​
​ типом контракта –​​ контракта Валютный, затем​​В принципе, можно обойтись​ ячейках имеются дубликаты.​End If​ And Target.Cells.Count =​
​ с нужными значениями​ lReply = MsgBox(«Добавить​Протестируем. Вот наша таблица​ инструмент «Проверка данных»​Ещё раз всем​
​ фильтром? Пример простой​​ участие, желаю Вам​​ формулу так, чтобы​With CreateObject(«scripting.dictionary»): .comparemode​: Любая версия Excel​: Как формулами извлечь​
​ Рублевый:​​ — Рублевый.​​ и без объединенного​Создадим список, состоящий только​If Len(newVal) =​
​ 1 Then Application.EnableEvents​ находится в другой​​ введенное имя «​​ со списком на​ — вкладка «Параметры».​

​ Большое спасибо.​ и фильтр там​
​ скорейшего выздоровления и​ она выбирала и​ = 1​ПРИМЕЧАНИЯ​ уникальные значения?​- в исходной​Для удобства создадим динамические​

​ списка. Платой за​ из уникальных значений​

​ 0 Then Target.ClearContents​
​ = False If​ папке, нужно указывать​ & _ Target​ одном листе:​

excel2.ru

Извлечение уникальных значений формулами

​ Тип данных –​Kogarys​ работает. Пробовал вчера​ вообще кавказского здоровья​

​ выводила в столбец​For i =​: Для устранения значения​РЕШЕНИЕ​ таблице Условным форматированием​

​ диапазоны: Компании (названия​
​ это будет значительное​
​ (см. файл примера).​
​Application.EnableEvents = True​
​ Len(Target.Offset(0, 1)) =​
​ путь полностью.​

​ & » в​​Добавим в таблицу новое​ «Список».​
​: Всем привет!​​ и в посте​и долголетия​​ уникальные значения из​​ 1 To UBound(z,​
​ ошибки можно использовать​
​: Формула массива (вводится​
​ будут выделены строки​​ компаний из столбца​​ усложнение формулы массива:​​Решим задачу двумя способами:​End If​ 0 Then Target.Offset(0,​Возьмем три именованных диапазона:​ выпадающий список?», vbYesNo​ значение «елка».​Ввести значения, из которых​​Люди, помогите пожалуйста:​​ 2 написал об​Serge_007​
​ диапазона А2:Е20, если​ 1)​ проверку на ошибку​ нажатием​ с типом контракта​А​​=ЕСЛИОШИБКА(ЕСЛИОШИБКА(​​ через промежуточное создание​End Sub​ 1) = Target​​Это обязательное условие. Выше​​ + vbQuestion) If​Теперь удалим значение «береза».​

​ будет складываться выпадающий​Есть два столбца​ этом, правда ТС​: Спасибо!​ это возможно. Спасибо​If z(i, 1)​ согласно Вашей версии​Ctrl+Shift+Enter​ Рублевый;​), Тип_контракта (столбец​ИНДЕКС(Список1;ПОИСКПОЗ(0;СЧЁТЕСЛИ($F$4:F4;Список1);0));​ объединенного списка и​Не забываем менять диапазоны​ Else Target.End(xlToRight).Offset(0, 1)​

​ описано, как сделать​​ lReply = vbYes​Осуществить задуманное нам помогла​ список, можно разными​
​ с данными. И​​ промолчал.​
​Но видимо пора​​ за помощь.​ = «вспомогательное» Then​ Excel или использовать​): Code =ИНДЕКС($B$2:$B$16;НАИБОЛЬШИЙ(ЕСЛИ(ПОИСКПОЗ($B$2:$B$16;$B$2:$B$16;0)=СТРОКА($A$1:$A$15);СТРОКА($A$1:$A$15));СТРОКА(A1)))​- в столбце​B​

excelworld.ru

Выборка уникальных значений по условию из второго столбца (Формулы/Formulas)

​ИНДЕКС(Список2;ПОИСКПОЗ(0;СЧЁТЕСЛИ($F$4:F4;Список2);0))​​ без него.​
​ на «свои». Списки​ = Target End​ обычный список именованным​ Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count +​ «умная таблица», которая​ способами:​ нужна формула, которая​
​alx74​ на свалку​alx74​ .Item(z(i, 2)) =​ Условное Форматирование​В английской версии:​H​

​) и Продажи (столбец​​);»»)​
​В статье Объединение списков​​ создаем классическим способом.​
​ If Target.ClearContents Application.EnableEvents​

​ диапазоном (с помощью​​ 1, 1) =​ легка «расширяется», меняется.​Вручную через «точку-с-запятой» в​​ выводила бы в​

​:​​ikki​: Что мешает использовать​ 0​
​Sancho​
​Code =INDEX($B$2:$B$16,LARGE(IF(MATCH($B$2:$B$16,$B$2:$B$16,0)=ROW($A$1:$A$15),ROW($A$1:$A$15)),ROW(A1)))​будут выведены суммарные​
​С​
​Для вывода промежуточных результатов​ изложено решение создания​ А всю остальную​

​ = True End​​ «Диспетчера имен»). Помним,​ Target End If​Теперь сделаем так, чтобы​
​ поле «Источник».​
​ третий столбец массив​
​Serge_007​: макрос или UDF​ Расширенный фильтр?​
​Next i​: Всем добрых суток.​
​КАК ЭТО РАБОТАЕТ:​ продажи отобранных компаний​). Если в таблицу​
​ вычислений можно воспользоваться​ объединенного списка из​ работу будут делать​ If End Sub​
​ что имя не​
​ End If End​ можно было вводить​
​Ввести значения заранее. А​
​ из уникальных значений,​

​, собственно увидел, что​​ не подходят?​
​Для 2007 и​Range(«I2»).Resize(.Count, 1) =​Пошарил форум, решений​Функция​ (по данному типу​ будет добавлена новая​ клавише​
​ 2-х списков. Воспользуемся​ макросы.​Чтобы выбранные значения показывались​ может содержать пробелов​ If End Sub​ новые значения прямо​ в качестве источника​ состоящий из СЦЕПКИ​ решается просто, а​
​ikki​ 2010: Вкладка Данные-Сортировка​ Application.Transpose(.Keys)​ много, но видимо​ПОИСКПОЗ​ контракта);​

​ строка, то ее​​F9​ этим решением и​На вкладке «Разработчик» находим​ снизу, вставляем другой​hands

​ и знаков препинания.​​Сохраняем, установив тип файла​ в ячейку с​
​ указать диапазон ячеек​

excelworld.ru

Вывод уникальных значений из диапазона в столбец

​ первых двух столбцов.​​ сейчас сомневаюсь, когда​: эт куда сабрался?​ и фильтр-Дополнительно-Ставим галку​End With​ придется разбираться на​, сравнивающая два массива​- в столбце​ значения будут автоматически​, выделив интересующую часть​ создадим объединенный список,​ инструмент «Вставить» –​ код обработчика.Private Sub​Создадим первый выпадающий список,​

​ «с поддержкой макросов».​​ этим списком. И​ со списком.​
​Файлик прилагаю​ разговор пошел про​ста-ять!!!​ Только уникальные записи-Переключатель​End Sub​ своем примере. Извините​ возвращает ИСТИНА только​I​

​ включены в Динамические​​ формулы.​ записав в ячейке​ «ActiveX». Здесь нам​ Worksheet_Change(ByVal Target As​ куда войдут названия​Переходим на лист со​ данные автоматически добавлялись​smile​Назначить имя для диапазона​Z​
​ макросы от старожил​рановато ещё.​ скопировать результат в​Sancho​ если уже вопрос​ в том случае,​будет выведено количество​ диапазоны и нижеследующие​Имеется таблица, состоящая их​С5​ нужна кнопка «Поле​

​ Range) On Error​​ диапазонов.​​ списком. Вкладка «Разработчик»​​ в диапазон.​ значений и в​: Расширенный фильтр, только​ и ветеранов. Вот​
​Serge_007​ другое место. Указываете​: Здравствуйте, Serge.​ вызывает у вас​ если вхождение искомого​ продаж (кол-во контрактов​

​ формулы не придется​​ нескольких столбцов. В​формулу​ со списком» (ориентируемся​ Resume Next If​smile​Когда поставили курсор в​biggrin

​ — «Код» -​​Сформируем именованный диапазон. Путь:​
​ поле источник вписать​ уникальные…​smile

​ я и подумал,​​: Пора-пора…​ диапазоны Исходный и​

​Что то с​​ «оскомину».​wacko​ значения в массив​
​ выбранного типа).​wink

​ модифицировать.​​ одном из столбцов​
​=ЕСЛИ(СТРОКА()-СТРОКА($C$4)>СЧЁТЗ(Список1);​ на всплывающие подсказки).​

​ Not Intersect(Target, Range(«Н2:К2»))​​ поле «Источник», переходим​ «Макросы». Сочетание клавиш​ «Формулы» — «Диспетчер​ это имя.​Z​ может чего не​Простую задачу не​smile
​ Куда поместить результат.​

​ кодом не то,​​Требуется выборка уникальных​​ является первым. В​​3. Теперь в​​Также создадим в ячейке​​ имеются повторяющиеся текстовые​ИНДЕКС(Список2;СТРОКА(C5)-СЧЁТЗ(Список1)-СТРОКА($B$4));A5)​Щелкаем по значку –​
​ Is Nothing And​ на лист и​ для быстрого вызова​ имен» — «Создать».​Любой из вариантов даст​: 1:1, всего два​ догоняю?​

​ могу решить…​​astradewa​ даже в вашем​ значений в диапазон​ результате работы​ зеленой ячейке​

​E5​​ значения. Создадим список,​Динамический диапазон Список1 представляет​ становится активным «Режим​ Target.Cells.Count = 1​ выделяем попеременно нужные​ – Alt +​ Вводим уникальное название​ такой результат.​ года тому назад…​alx74​astradewa​

​: Serge_007, добрый вечер,​​ варианте выбранные данные​​ I2:I23 из столбца​​ПОИСКПОЗ​Е12​Выпадающий (раскрывающийся) список​ состоящий только из​ собой Исходный список​ конструктора». Рисуем курсором​ Then Application.EnableEvents =​ ячейки.​ F8. Выбираем нужное​

​ диапазона – ОК.​​​-​

​: Во вложении файл​​: ikki, доброе утро,​ читая форумы Excel,​
​ не уникальны цех​ B по условию​мы получаем массив:​выберите компанию ООО​

​ с двумя значениями:​​ уникальных текстовых значений.​ №1 с названиями​
​ (он становится «крестиком»)​ False If Len(Target.Offset(1,​Теперь создадим второй раскрывающийся​smile

​ имя. Нажимаем «Выполнить».​​Создаем раскрывающийся список в​Необходимо сделать раскрывающийся список​Владимир​dry

​ и скрин.​​ макрос или UDF​ в том числе​ 1116 повторяется 7​ в столбце A,​
​ {ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ и т.д.}.​ Рога и копытца​ Валютный и Рублевый.​ Уникальные значения будем​biggrin​ компаний, причем его​ небольшой прямоугольник –​ 0)) = 0​
​ список. В нем​Когда мы введем в​ любой ячейке. Как​
​ со значениями из​:​

excelworld.ru

Вывод списка уникальных значений (формулой)

​Serge_007​​ подойдут, если не​
​ и Ваш, я​
​ раз.​ задает условие ячейка​С помощью функции​4. Установите серый флажок​Для создания списка уникальных​ выбирать не из​ границы могут изменяться​ место будущего списка.​
​ Then Target.Offset(1, 0)​

​ должны отражаться те​​ пустую ячейку выпадающего​ это сделать, уже​;)

​ динамического диапазона. Если​​=ЕСЛИОШИБКА(ИНДЕКС($B$5:$B$8&», «&$C$5:$C$8;НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ($B$5:$B$8&», «&$C$5:$C$8;$B$5:$B$8&», «&$C$5:$C$8;)=СТРОКА($A$5:$A$8)-4;СТРОКА($A$5:$A$8)-4);СТРОКА(A1)));»»)​: Это не совсем​;)
​ жалко, можно и​

​ понял что Вы​​при постановке кода​​ H1.​
​ ЕСЛИ мы сравниваем​

​ Выделите компанию​​ значений введем в​​ всех повторяющиеся значений​​ в зависимости от​Жмем «Свойства» – открывается​ = Target Else​ слова, которые соответствуют​
​ списка новое наименование,​​ известно. Источник –​ вносятся изменения в​:)​Формула массива.​

planetaexcel.ru

Выпадающий список в Excel с помощью инструментов или макросов

​ верно​ то и другое​ один из главных​ в ячейки I2:I23​Serge_007​ получившийся массив с​5. В исходной​

​ ячейку​ исходной таблицы, а​ количества числа введенных​ перечень настроек.​ Target.End(xlDown).Offset(1, 0) =​ выбранному в первом​ появится сообщение: «Добавить​ имя диапазона: =деревья.​ имеющийся диапазон (добавляются​Kogarys​

Создание раскрывающегося списка

​ТС не заполнил​ (для общего т.с.​ «формулистов»​ в свой изначальный​: Здравствуйте​

Создание выпадающего списка.

​ массивом {1:2:3:4:5:6:7:8 и​ таблице будут выделены​G5​ только из тех,​

  1. ​ значений (пропуски не​Вписываем диапазон в строку​Ввод значений.
  2. ​ Target End If​ списке названию. Если​ введенное имя баобаб​Снимаем галочки на вкладках​Проверка вводимых значений.
  3. ​ или удаляются данные),​:​ пример, но интересуют​ развития)​

Имя диапазона. Раскрывающийся список.

​, поэтому обратился​ файл у меня​

​Формула массива:​

Выпадающий список в Excel с подстановкой данных

​ т.д.}, полученном в​ 2 строки содержащие​формулу массива:​ у которых соответствующие​ допускаются). Аналогичные диапазоны​ ListFillRange (руками). Ячейку,​ Target.ClearContents Application.EnableEvents =​ «Деревья», то «граб»,​

  1. ​ в выпадающий список?».​ «Сообщение для ввода»,​ они автоматически отражаются​Z,​Форматировать как таблицу.
  2. ​ значения из ДИАПАЗОНА​Спасибо за помощь.​ к Вам.​ совсем иная картина.​200?’200px’:»+(this.scrollHeight+5)+’px’);»>​ результате работы функции​ название компании ООО​=ЕСЛИОШИБКА(ИНДЕКС(Компании;​ значения в соседних​ Список2 и Объединенный_список​ куда будет выводиться​ True End If​ «дуб» и т.д.​Выпадающий список.
  3. ​Нажмем «Да» и добавиться​ «Сообщение об ошибке».​ в раскрывающемся списке.​-снкс,посмотрел темку, топикстартер​ в столбце​Alex_ST​А вопрос -​ на вспомогательное производство​

Ввод значения в источник.

​=ИНДЕКС(B$2:B$23;НАИМЕНЬШИЙ(ЕСЛИ(H$1=A$2:A$23;СТРОКА($1:$22));СТРОКА(A1)))​СТРОКА​ Рога и копытца​

Список и таблица.

​ПОИСКПОЗ(0;ЕСЛИ(E$5=Тип_контракта;0;1)+СЧЁТЕСЛИ($G$4:G4;Компании);0)​ столбцах удовлетворяют определенному​

Добавлено значение елка.

​ созданы для столбцов​

Удалено значение береза.

​ выбранное значение –​ End Sub​ Вводим в поле​

​ еще одна строка​ Если этого не​Выделяем диапазон для выпадающего​ хотел немножко не​RAN​: Александр,​ переделать формулу так,​

Ввод данных из списка.

  1. ​ выбирает только цех​Serge_007​с заданным диапазоном​ с типом контракта​);»»)​Создание имени.
  2. ​ критерию.​ Исходный список №2​ в строку LinkedCell.​Чтобы выбираемые значения отображались​ «Источник» функцию вида​
  3. ​ со значением «баобаб».​ сделать, Excel не​ списка. В главном​ то. Но все​: Я думаю, дело​astradewa​ чтобы она выбирала​Сообщение об ошибке.
  4. ​ 1111 относящийся к​: Если еще и​ и в случае​ Рублевый​При выборе в ячейке​Разовьем идеи, изложенные в​ и Объединенный список.​ Для изменения шрифта​ в одной ячейке,​ =ДВССЫЛ(E3). E3 –​Когда значения для выпадающего​ позволит нам вводить​ меню находим инструмент​ равно спасибо.​ в неудачном примере.​просит​ и выводила в​ основному.​ коды уникальные нужны,​ если​Созданная структура является разновидностью​E5​ статье Отбор уникальных​Далее используем решение, приведенное​ и размера –​ разделенные любым знаком​ ячейка с именем​ списка расположены на​ новые значения.​ «Форматировать как таблицу».​Владимир,​Заполнен 1 столбец,​формулами​
  5. ​ столбец уникальные значения​и почему в​Сообщение об ошибке.
  6. ​ то:​ПОИСКПОЗ​ Связанного списка.​значения Валютный, все​ значений (убираем повторы).​ в статье Отбор​ Font.​ препинания, применим такой​

Макрос.

​ первого диапазона.​ другом листе или​Вызываем редактор Visual Basic.​Откроются стили. Выбираем любой.​- СПАСИБО ОГРОМНОЕ!​ а должно быть​

​, поэтому код VBA​ из диапазона А2:Е20​ коде СТРОКА($1:$22));СТРОКА(A1))) если​

Выпадающий список в Excel с данными с другого листа/файла

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(B$2:B$23;НАИМЕНЬШИЙ(ЕСЛИ((H$1=A$2:A$23)*(ПОИСКПОЗ(B$2:B$23;B$2:B$23;)=СТРОКА($1:$22));СТРОКА($1:$22));СТРОКА(A1)))​вернул ИСТИНА получаем​СОВЕТ:​ компании, НЕ поставляющие​Пусть исходная таблица содержит​ уникальных значений (убираем​Скачать пример выпадающего списка​ модуль.​Бывает, когда из раскрывающегося​ в другой книге,​ Для этого щелкаем​

  1. ​ Для решения нашей​ То, что нужно!​ 4.​
  2. ​ его вряд ли​ (у The_Prist формула​ у нас условия​

​_Boroda_​ номер строки вхождения.​Другим подходом к​ по валютным контрактам,​ три столбца: один​ дубликаты из столбца).​При вводе первых букв​Private Sub Worksheet_Change(ByVal​ списка необходимо выбрать​ стандартный способ не​

Как сделать зависимые выпадающие списки

​ правой кнопкой мыши​

Три именованных диапазона.

​ задачи дизайн не​))))​alx74​ устроит.​ извлекает уникальные из​ и нужные данные​: Еще вариант для​Собственно говоря задача​

  1. ​ решению этой задачи​ будут проигнорированы,​ с названиями компаний,​Список диапазонов.
  2. ​Записав в​ с клавиатуры высвечиваются​ Target As Range)​ сразу несколько элементов.​ работает. Решить задачу​Таблица со списком.
  3. ​ по названию листа​ имеет значения. Наличие​Под выпадающим списком понимается​: Теперь понял, спасибо.​Но на всякий​ столбца в столбец,​ находятся в строках​ уникальных кодов по​ решена. Теперь остаётся​ является использование Сводных​и список уникальных значений​ другой с указанием​E5​Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

    ​ подходящие элементы. И​On Error Resume​ Рассмотрим пути реализации​ можно с помощью​ и переходим по​

    1. ​ заголовка (шапки) важно.​ содержание в одной​ (невнимательно прочитал первый​ случай, если формулами​ а надо из​ 2:23?​ условию​ только оформить итог​ таблиц.​ будет сформирован только​ типа контракта (валютный​формулу массива:​ это далеко не​ Next​ задачи.​ функции ДВССЫЛ: она​ вкладке «Исходный текст».​ В нашем примере​ ячейке нескольких значений.​ пост А2:Е20).​ так никто и​ диапазона).​Sancho​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(B$2:B$23;ПОИСКПОЗ(;СЧЁТЕСЛИ(I$1:I1;ЕСЛИ(A$2:A$23=H$1;B$2:B$23;I$1));))​ списком. Для этого​Предположим, что у​
    2. ​ из тех компаний,​ или рублевый), третий​=ЕСЛИОШИБКА(ИНДЕКС(Объединенный_список;​ все приятные моменты​If Not Intersect(Target,​Создаем стандартный список с​ сформирует правильную ссылку​ Либо одновременно нажимаем​ это ячейка А1​ Когда пользователь щелкает​astradewa​ не решит, то​Serge_007​: Вот вы блин​С проверкой на​ используем функцию НАИБОЛЬШИЙ,​ Вас есть вот​ которые имеют контракты​ с суммами продаж​
    3. ​ПОИСКПОЗ(0;СЧЁТЕСЛИ($E$4:E4;Объединенный_список);0));»»)​ данного инструмента. Здесь​ Range(«C2:C5»)) Is Nothing​ помощью инструмента «Проверка​ на внешний источник​
      ​ клавиши Alt +​ со словом «Деревья».​
      ​ по стрелочке справа,​: Спасибо Всем ответившим​
      ​ в "Готовых решениях"​:​ шайтаны все))) Всем​ ошибку​
      ​ которая создаст вариативный​
      ​ такой файл по​
      ​ в валюте. Также​
      ​ по контракту. Столбец​
      ​и скопировав ее вниз​ можно настраивать визуальное​ And Target.Cells.Count =​
      ​ данных». Добавляем в​ информации.​ F11. Копируем код​
      ​ То есть нужно​
      ​ появляется определенный перечень.​
      ​ за помощь, буду​
      ​ я выкладывал макрос​astradewa​
      ​ спасибо огромное -​
      ​Код200?'200px':''+(this.scrollHeight+5)+'px');">=ЕСЛИОШИБКА(ИНДЕКС(B$2:B$23;ПОИСКПОЗ(;СЧЁТЕСЛИ(I$1:I1;ЕСЛИ(A$2:A$23=H$1;B$2:B$23;I$1));));"")​
      ​ ряд сначала из​

    ​ продажам региональных менеджеров:​ будут подсчитаны суммарные​ с названиями компаний​ получим список уникальных​ представление информации, указывать​ 1 Then​

    Выпадающий список с поиском

    1. ​ исходный код листа​Делаем активной ячейку, куда​ (только вставьте свои​ выбрать стиль таблицы​ Можно выбрать конкретное.​ разбираться в предоставленном​Вставить ActiveX.
    2. ​ NoDups_in_Range​, спасибо за лестное​ работает​Формулы массива. Вводятся​ чисел, потом из​Из него Вам​Элемент ActiveX.
    3. ​ продажи и количество​ содержит повторяющиеся значения,​Свойства ActiveX.
    4. ​ значений из двух​ в качестве источника​Application.EnableEvents = False​ готовый макрос. Как​ хотим поместить раскрывающийся​ параметры).Private Sub Worksheet_Change(ByVal​ со строкой заголовка.​Очень удобный инструмент Excel​

    ​ материале.​

    ​Michael_S​ мнение, но думаю​jakim​ одновременным нажатием Контрл​ значений ЛОЖЬ и​ необходимо извлечь все​ продаж по каждой​ т.к. (см. файл​ столбцов.​ сразу два столбца.​

    exceltable.com

​newVal = Target​

Предположим, у вас есть несколько столбцов с несколькими значениями, некоторые значения повторяются в одном или другом столбце. И теперь вы хотите найти значения, которые присутствуют в любом столбце только один раз. Есть ли какие-нибудь уловки для извлечения уникальных значений из нескольких столбцов в Excel?

  • Извлечение уникальных значений из нескольких столбцов с помощью формулы массива
  • Извлекайте уникальные значения из нескольких столбцов с помощью сводной таблицы
  • Извлечение уникальных значений из нескольких столбцов с кодом VBA
  • Извлекайте уникальные значения из одного столбца с удивительной функцией

Извлечение уникальных значений из нескольких столбцов с помощью формулы массива

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

1. Предполагая, что ваши значения находятся в диапазоне A2: C9, введите следующую формулу в ячейку E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>»»)*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),»R0C00″),)&»»

Внимание: В приведенной выше формуле A2: C9 указывает диапазон ячеек, из которых вы хотите извлечь уникальные значения, E1: E1 это первая ячейка столбца, в который вы хотите поместить результат, $ 2: $ 9 стоит в рядах, содержащих ячейки, которые вы хотите использовать, и $ A: $ C указывает, что столбцы содержат ячейки, которые вы хотите использовать. Пожалуйста, измените их на свои собственные.

2, Затем нажмите Shift + Ctrl + Enter вместе, а затем перетащите маркер заполнения, чтобы извлечь уникальные значения, пока не появятся пустые ячейки. Смотрите скриншот:


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

Если вы знакомы со сводной таблицей, вы можете легко извлечь уникальные значения из нескольких столбцов, выполнив следующие действия:

1. Сначала вставьте один новый пустой столбец слева от ваших данных, в этом примере я вставлю столбец A рядом с исходными данными.

2. Щелкните одну ячейку в ваших данных и нажмите Alt + D клавиши, затем нажмите P ключ немедленно открыть Мастер сводных таблиц и диаграмм, выберите Несколько диапазонов консолидации в мастере step1 см. снимок экрана:

3. Затем нажмите Download кнопку, проверьте Создайте для меня одностраничное поле вариант на шаге 2 мастера, см. снимок экрана:

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

5. После выбора диапазона данных продолжайте нажимать Download, на шаге 3 мастера выберите, где вы хотите разместить отчет сводной таблицы, как хотите.

6. Наконец, нажмите Завершить чтобы завершить работу мастера, и на текущем листе была создана сводная таблица, затем снимите отметки со всех полей в Выберите поля для добавления в отчет раздел, см. снимок экрана:

7. Затем проверьте поле Значение или перетащите Значение в Ряды label, теперь вы получите уникальные значения из нескольких столбцов следующим образом:


Извлечение уникальных значений из нескольких столбцов с кодом VBA

С помощью следующего кода VBA вы также можете извлечь уникальные значения из нескольких столбцов.

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

VBA: извлечение уникальных значений из нескольких столбцов

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3, Затем нажмите F5 для запуска этого кода, и появится диалоговое окно с напоминанием о выборе диапазона данных, который вы хотите использовать. Смотрите скриншот:

4, Затем нажмите OKпоявится другое окно подсказки, в котором вы сможете выбрать место для размещения результата, см. снимок экрана:

5. Нажмите OK чтобы закрыть это диалоговое окно, и все уникальные значения были извлечены сразу.


Извлекайте уникальные значения из одного столбца с удивительной функцией

Иногда вам нужно извлечь уникальные значения из одного столбца, вышеуказанные методы вам не помогут, здесь я могу порекомендовать полезный инструмент —Kutools for Excel, С его Извлечь ячейки с уникальными значениями (включая первый дубликат) утилита, вы можете быстро извлечь уникальные значения.

Примечание:Чтобы применить это Извлечь ячейки с уникальными значениями (включая первый дубликат), во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Щелкните ячейку, в которой вы хотите вывести результат. (Внимание: Не щелкайте ячейку в первой строке.)

2. Затем нажмите Кутулс > Формула Помощник > Формула Помощник, см. снимок экрана:

3. В Помощник по формулам диалоговом окне выполните следующие действия:

  • Выберите Текст из файла Формула Тип раскрывающийся список;
  • Затем выберите Извлечь ячейки с уникальными значениями (включая первый дубликат) из Выберите изула список;
  • В правой Ввод аргументов В разделе выберите список ячеек, из которых вы хотите извлечь уникальные значения.

4. Затем нажмите Ok и перетащите маркер заполнения к ячейкам, в которых вы хотите отобразить все уникальные значения, пока не отобразятся пустые ячейки, см. снимок экрана:

Бесплатная загрузка Kutools for Excel от Yhao сейчас!


Больше относительных статей:

  • Подсчитайте количество уникальных и отличных значений из списка
  • Предположим, у вас есть длинный список значений с некоторыми повторяющимися элементами, теперь вы хотите подсчитать количество уникальных значений (значения, которые появляются в списке только один раз) или отдельных значений (все разные значения в списке, это означает уникальные значения + 1-е повторяющиеся значения) в столбце, как показано на скриншоте слева. В этой статье я расскажу о том, как справиться с этой задачей в Excel.
  • Извлечение уникальных значений на основе критериев в Excel
  • Предположим, у вас есть следующий диапазон данных, в котором вы хотите перечислить только уникальные имена столбца B на основе определенного критерия столбца A, чтобы получить результат, как показано ниже. Как можно быстро и легко справиться с этой задачей в Excel?
  • Разрешить только уникальные значения в Excel
  • Если вы хотите сохранить только уникальные значения, вводимые в столбец рабочего листа, и предотвратить дублирование, в этой статье будут представлены некоторые быстрые приемы, которые помогут вам справиться с этой задачей.
  • Суммируйте уникальные значения на основе критериев в Excel
  • Например, у меня есть диапазон данных, который содержит столбцы Name и Order, теперь для суммирования только уникальных значений в столбце Order на основе столбца Name, как показано на следующем снимке экрана. Как быстро и легко решить эту задачу в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


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

=INDIRECT(TEXT(MIN(IF(( $A$2:$C$11 <>"")*(COUNTIF( $E$1:E1 , $A$2:$C$11 )=0),ROW( $2:$11 )*100+COLUMN( $A:$C ),7^8)),"R0C00"),)&""

Эта конкретная формула находит уникальные значения в диапазоне ячеек A2:C11 и возвращает список уникальных значений в столбце E .

В следующем примере показано, как использовать эту формулу на практике.

Пример: поиск уникальных значений из нескольких столбцов в Excel

Предположим, у нас есть следующие три списка названий баскетбольных команд в Excel:

Чтобы найти уникальные значения в каждом из трех столбцов, мы можем использовать следующую формулу:

=INDIRECT(TEXT(MIN(IF(( $A$2:$C$11 <>"")*(COUNTIF( $E$1:E1 , $A$2:$C$11 )=0),ROW( $2:$11 )*100+COLUMN( $A:$C ),7^8)),"R0C00"),)&""

Мы можем ввести эту формулу в ячейку E2 и нажать Ctrl+Shift+Enter :

Затем мы можем щелкнуть и перетащить эту формулу вниз в другие ячейки в столбце E, пока не начнут появляться пустые значения:

Excel находит уникальные значения из нескольких столбцов

Из вывода мы видим, что в трех столбцах названий команд есть 11 уникальных названий команд.

Примечание.Чтобы использовать эту формулу с большим количеством столбцов, просто измените диапазон ячеек A2:C11 в формуле, чтобы включить больше столбцов.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в Excel:

Как подсчитать количество вхождений в Excel
Как подсчитать частоту текста в Excel
Как рассчитать относительную частоту в Excel

Написано

Редакция Кодкампа

Замечательно! Вы успешно подписались.

Добро пожаловать обратно! Вы успешно вошли

Вы успешно подписались на кодкамп.

Срок действия вашей ссылки истек.

Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.

Успех! Ваша платежная информация обновлена.

Ваша платежная информация не была обновлена.

Теперь в полученном массиве ищем первое нулевое значение с помощью функции ПОИСКПОЗ:

Результатом выполнения этого шага будет индекс найденного уникального значения в полном списке

Скопируем эту формулу в оставшиеся ячейки и получим все уникальные значения. Но видим в последних двух строчках ошибку #Н/Д. Это из-за того, что все уникальные значения найдены, новые уже не находятся.

Используем функцию перехвата ошибки ЕСНД, чтобы вывести пустую строку («») вместо текста ошибки:

Итоговая формула отлично работает. Она достаёт все нужные нам данные и обрабатывает возможные ошибки. Процедура простая, но новичкам бывает сложно её понять. Поэтому, задавайте вопросы в комментариях, ведь в серьёзных расчётах без подобных вычислений не обойтись!

Фильтр уникальных значений или удаление повторяющихся значений

В этом курсе:

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

Чтобы отфильтровать уникальные значения, нажмите кнопку данные > отсортировать & фильтр > Дополнительно.

Чтобы удалить повторяющиеся значения, выберите > инструменты данные > Удалить дубликаты.

Чтобы выделиь уникальные или повторяющиеся значения, используйте команду условное форматирование в группе стиль на вкладке Главная .

Фильтрация уникальных значений и удаление повторяющихся значений — это две похожие задачи, так как целью является предоставление списка уникальных значений. Тем не менее, при фильтрации уникальных значений вы должны временно скрыть повторяющиеся значения. Однако удаление повторяющихся значений означает безвозвратное удаление повторяющихся значений.

Повторяющееся значение — это одно из значений, для которого все значения по крайней мере одной строки идентичны всем значениям в другой строке. Сравнение повторяющихся значений зависит от того, что отображается в ячейке, а не на основе значения, хранящегося в ячейке. Например, если у вас есть одинаковое значение даты в разных ячейках, например «3/8/2006», а другое — «Мар 8, 2006», значения будут уникальными.

Проверка перед удалением дубликатов: Прежде чем удалять повторяющиеся значения, рекомендуется сначала попытаться отфильтровать (или условно отформатировать по — уникальные значения), чтобы подтвердить достижение ожидаемых результатов.

Выполните указанные ниже действия.

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

Нажмите кнопку данные > дополнительно (в группе Фильтр сортировки & ).

В всплывающем окне Расширенный фильтр выполните одно из следующих действий:

Чтобы отфильтровать диапазон ячеек или таблицы по месту, выполните указанные ниже действия.

Нажмите кнопку Фильтровать список на месте.

Чтобы скопировать результаты фильтра в другое место, выполните указанные ниже действия.

Выберите команду скопировать в другое место.

В поле Копировать в введите ссылку на ячейку.

Кроме того, можно нажать кнопку Свернуть диалоговое окно , чтобы временно скрыть всплывающее окно, выбрать ячейку на листе, а затем нажать кнопку развернуть .

Установите флажок только уникальные записии нажмите кнопку ОК.

Уникальные значения из диапазона будут скопированы в новое место.

При удалении повторяющихся значений единственным эффектом будут значения в диапазоне ячеек или таблице. Другие значения, находящиеся за пределами диапазона ячеек или таблицы, не изменяются и не перемещаются. При удалении дубликатов сохраняется первое вхождение значения в списке, а также удаляются другие идентичные значения.

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

Выполните указанные ниже действия.

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

На вкладке данные нажмите кнопку Удалить дубликаты (в группе Работа с данными ).

Выполните одно или несколько из указанных ниже действий:

В разделе столбцывыберите один или несколько столбцов.

Чтобы быстро выделить все столбцы, нажмите кнопку выделить все.

Чтобы быстро удалить все столбцы, нажмите кнопку снять выделение.

Если диапазон ячеек или таблица содержат много столбцов и нужно выделить несколько столбцов, возможно, вам будет проще щелкнуть снять все, а затем в разделе столбцывыберите эти столбцы.

Примечание: Данные будут удалены из всех столбцов, даже если на этом этапе не будут выделяться все столбцы. Например, если выбрать Столбец1 и Столбец2 (но не Столбец3), то «Key», использованный для поиска дубликатов, — это значение обоих Столбец1 & Столбец2. Если в этих столбцах обнаружена повторяющаяся копия, вся строка удаляется, в том числе другие столбцы в таблице или диапазоне.

Нажмите кнопку ОК, и появится сообщение о том, сколько повторяющихся значений было удалено, или сколько уникальных значений осталось. Нажмите кнопку ОК , чтобы закрыть сообщение.

Чтобы изменить изменения, нажмите кнопку Отменить (или нажмите клавиши CTRL + Z на клавиатуре).

Невозможно удалить повторяющиеся значения из структурированных данных структуры или с промежуточными итогами. Для удаления дубликатов необходимо удалить структуру и промежуточные итоги. Дополнительные сведения можно найти в разделе Структурирование списка данных на листе и Удаление промежуточных итогов.

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

Выполните указанные ниже действия.

Выделите одну или несколько ячеек в диапазоне, таблице или отчете сводной таблицы.

На вкладке Главная в группе стиль щелкните маленькую стрелку для условного форматированияи выберите пункт правила выделения ячеек, а затем — повторяющиеся значения.

Введите значения, которые вы хотите использовать, а затем выберите формат.

Выполните указанные ниже действия.

Выделите одну или несколько ячеек в диапазоне, таблице или отчете сводной таблицы.

На вкладке Главная в группе стили щелкните стрелку рядом с кнопкой условное форматированиеи выберите пункт Управление правилами , чтобы открыть всплывающее окно диспетчера правил условного форматирования .

Выполните одно из следующих действий.

Чтобы добавить условное форматирование, нажмите кнопку создать правило , чтобы открыть всплывающее окно » новое правило форматирования «.

Чтобы изменить условное форматирование, сначала убедитесь, что в списке Показать правила форматирования для выбран соответствующий лист или таблица. При необходимости выберите другой диапазон ячеек, нажав кнопку свернуть в окне применено, чтобы временно скрыть его. Выберите новый диапазон ячеек на листе, а затем снова разверните всплывающее окно . Выберите правило и нажмите кнопку изменить правило , чтобы открыть всплывающее окно » Изменение правила форматирования «.

В группе Выберите тип правила выберите параметр Форматировать только уникальные или повторяющиеся значения.

В списке форматировать все измените описание правилавыберите значение уникальное или повторяющееся.

Нажмите кнопку Формат , чтобы открыть всплывающее окно Формат ячеек .

Выберите число, шрифт, границу или формат заливки, которые нужно применить, если значение ячейки соответствует условию, а затем нажмите кнопку ОК. Можно выбрать несколько форматов. Выбранные форматы отображаются на панели Предварительный просмотр .

В Excel в Интернете вы можете удалить повторяющиеся значения.

Удаление повторяющихся значений

При удалении повторяющихся значений единственным эффектом будут значения в диапазоне ячеек или таблице. Другие значения, находящиеся за пределами диапазона ячеек или таблицы, не изменяются и не перемещаются. При удалении дубликатов сохраняется первое вхождение значения в списке, а также удаляются другие идентичные значения.

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

Выполните указанные ниже действия.

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

На вкладке данные нажмите кнопку Удалить дубликаты .

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

Примечание: Данные будут удалены из всех столбцов, даже если на этом этапе не будут выделяться все столбцы. Например, если выбрать Столбец1 и Столбец2 (но не Столбец3), то «Key», использованный для поиска дубликатов, — это значение обоих Столбец1 & Столбец2. При обнаружении дубликата в Столбец1 и Столбец2 вся строка будет удалена, включая данные из Столбец3.

Нажмите кнопку ОК, и появится сообщение о том, сколько повторяющихся значений было удалено. Нажмите кнопку ОК , чтобы закрыть сообщение.

Примечание: Если вы хотите вернуться к данным, просто нажмите кнопку отменить (или нажмите клавиши CTRL + Z на клавиатуре).

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

См. также

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Отбор уникальных значений (убираем повторы из списка) в EXCEL

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

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

Задача

В некоторых ячейках исходного списка имеются повторы — новый список уникальных значений не должен их содержать.

Для наглядности уникальные значения в исходном списке выделены цветом с помощью Условного форматирования .

Решение

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

Для создания Динамического диапазона :

  • на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя ;
  • в поле Имя введите: Исходный_список ;
  • в поле Диапазон введите формулу =СМЕЩ(УникальныеЗначения!$A$5;;; СЧЁТЗ(УникальныеЗначения!$A$5:$A$30))
  • нажмите ОК.

Список уникальных значений создадим в столбце B с помощью формулы массива (см. файл примера ). Для этого введите следующую формулу в ячейку B5 :

После ввода формулы вместо ENTER нужно нажать CTRL + SHIFT + ENTER . Затем нужно скопировать формулу вниз, например, с помощью Маркера заполнения . Чтобы все значения исходного списка были гарантировано отображены в списке уникальных значений, необходимо сделать размер списка уникальных значений равным размеру исходного списка (на тот случай, когда все значения исходного списка не повторяются). В случае наличия в исходном списке большого количества повторяющихся значений, список уникальных значений можно сделать меньшего размера, удалив лишние формулы, чтобы исключить ненужные вычисления, тормозящие пересчет листа.

Разберем работу формулу подробнее:

  • Здесь использование функции СЧЁТЕСЛИ() не совсем обычно: в качестве критерия (второй аргумент) указано не одно значение, а целый массив Исходный_список , поэтому функция возвращает не одно значение, а целый массив нулей и единиц. Возвращается 0, если значение из исходного списка не найдено в диапазоне B4:B4( B4:B5 и т.д.), и 1 если найдено. Например, в ячейке B5 формулой СЧЁТЕСЛИ(B$4:B5;Исходный_список) возвращается массив <1:0:0:0:0:0:0:1:0:0:0:0:1:1:0>. Т.е. в исходном списке найдено 4 значения «ООО Рога и копытца» ( B5 ). Массив легко увидеть с помощью клавиши F9 (выделите в Строке формул выражение СЧЁТЕСЛИ(B$4:B5;Исходный_список) , нажмите F9 : вместо формулы отобразится ее результат);
  • ПОИСКПОЗ() – возвращает позицию первого нуля в массиве из предыдущего шага. Первый нуль соответствует значению еще не найденному в исходном списке (т.е. значению «ОАО Уважаемая компания» для формулы в ячейке B5 );
  • ИНДЕКС() – восстанавливает значение по его позиции в диапазоне Исходный_список ;
  • ЕСЛИОШИБКА() подавляет ошибку, возникающую, когда функция ПОИСКПОЗ() пытается в массиве нулей и единиц, возвращенном СЧЁТЕСЛИ() , найти 0, которого нет (ситуация возникает в ячейке B12 , когда все уникальные значения уже извлечены из исходного списка).

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

Примечание . Функция ЕСЛИОШИБКА() будет работать начиная с версии MS EXCEL 2007, чтобы обойти это ограничение читайте статью про функцию ЕСЛИОШИБКА() . В файле примера имеется лист Для 2003 , где эта функция не используется.

Решение для списков с пустыми ячейками

Если исходная таблица содержит пропуски, то нужно использовать другую формулу массива (см. лист с пропусками файла примера ): =ЕСЛИОШИБКА(ИНДЕКС($A$5:$A$19; ПОИСКПОЗ( 0;ЕСЛИ(ЕПУСТО($A$5:A19);»»;СЧЁТЕСЛИ($B$4:B4;$A$5:$A$19));0) );»»)

Решение без формул массива

Для отбора уникальных значений можно обойтись без использования формул массива . Для этого создайте дополнительный служебный столбец для промежуточных вычислений (см. лист «Без CSE» в файле примера ).

СОВЕТ: Список уникальных значений можно создать разными способами, например, с использованием Расширенного фильтра (см. статью Отбор уникальных строк с помощью Расширенного фильтра ), Сводных таблиц или через меню Данные/ Работа с данными/ Удалить дубликаты . У каждого способа есть свои преимущества и недостатки. Преимущество использования формул состоит в том, чтобы при добавлении новых значений в исходный список, список уникальных значений автоматически обновлялся.

СОВЕТ2 : Для тех, кто создает список уникальных значений для того, чтобы в дальнейшем сформировать на его основе Выпадающий список , необходимо учитывать, что вышеуказанные формулы возвращают значение Пустой текст «» , который требует аккуратного обращения, особенно при подсчете значений (вместо обычной функции СЧЕТЗ() нужно использовать СЧЕТЕСЛИ() со специальными аргументами ). Например, см. статью Динамический выпадающий список в MS EXCE L.

Примечание : В статье Восстанавливаем последовательности из списка без повторов в MS EXCEL решена обратная задача: из списка уникальных значений, в котором для каждого значения задано количество повторов, создается список этих значений с повторами.

Понравилась статья? Поделить с друзьями:
  • Только уникальные записи excel это
  • Только строчные буквы word
  • Только слово целиком в word
  • Только скачать microsoft office excel 2003
  • Только результат ячейки excel