Как в excel выбрать уникальные строки

Skip to content

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

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

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

  • Уникальные значения – это элементы, которые появляются в наборе данных только один раз.
  • Различные  – это элементы, которые появляются хотя бы один раз, то есть неповторяющиеся и первые вхождения повторяющихся значений.

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

  • Как найти уникальные значения формулами.
  • Фильтр для уникальных данных.
  • Выделение цветом и условное форматирование.
  • Быстрый и простой способ — Duplicate Remover.

Как найти уникальные значения при помощи формул.

Самый простой способ сделать это – использовать функции ЕСЛИ и СЧЁТЕСЛИ. В зависимости от типа данных, которые вы хотите найти, может быть несколько вариантов формулы, как показано в следующих примерах.

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

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

Чтобы найти уникальные значения в Excel:

=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$10;  $A2)=1; «Уникальный»; «»)

Чтобы определить различные значения:

=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A2;  $A2)=1; «Различный»; «»)

Во второй формуле есть только одно небольшое отличие во второй ссылке на ячейку, что, однако, имеет большое значение:

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

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

Аналогичным образом вы можете найти уникальные строки в таблице Excel на основе изучения записей не в одном, а в двух или более столбцах. В этом случае вам необходимо использовать СЧЁТЕСЛИМН вместо СЧЁТЕСЛИ для оценки значений (до 127 пар диапазон/критерий можно обработать в одной формуле).

Формула для получения уникальных строк:

=ЕСЛИ(СЧЁТЕСЛИМН($A$2:$A$10; $A2; $B$2:$B$10; $B2)=1; «Уникальная»; «»)

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

=ЕСЛИ(СЧЁТЕСЛИМН($A$2:$A2; $A2; $B$2:$B2; $B2)=1; «Различная»; «»)

В нашем случае уникальная комбинация Имя+Фамилия встречается 2 раза. А всего в списке 6 человек, из которых трое дублируются.

Как найти уникальные записи с учетом регистра?

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

Поиск уникальных значений с учетом регистра :

{=ЕСЛИ(СУММ((—СОВПАД($A$2:$A$10;A2)))=1;»Уникальный»;»»)}

Поиск различных значений с учетом регистра :

{=ЕСЛИ(СУММ((—СОВПАД($A$2:$A2;$A2)))=1;»Различный»;»»)}

Поскольку обе они являются формулами массива, обязательно нажмите Ctrl + Shift + Enter, чтобы правильно их записать.

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

Фильтр для уникальных значений.

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

  1. Примените одну из приведенных выше формул для определения уникальных или различных ячеек или строк.
  2. Выберите диапазон и нажмите кнопку «Фильтр» на вкладке «Данные». 
  3. Щелкните стрелку фильтрации в заголовке столбца, содержащего формулу, и выберите то, что хотите просмотреть:

Как выбрать уникальные из фильтра.

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

Чтобы быстро выбрать весь получившийся список, включая заголовки столбцов, отфильтруйте уникальные значения, щелкните любую ячейку в получившемся списке, а затем нажмите Ctrl + A.

Чтобы выбрать уникальные значения без заголовков столбцов, отфильтруйте их, выберите первую ячейку с данными и нажмите Ctrl + Shift + End, чтобы расширить выделение до последней ячейки.

Примечание. В некоторых редких случаях, в основном в очень больших книгах, рекомендованные выше комбинации клавиш могут выбирать как видимые, так и невидимые ячейки. Чтобы исправить это, нажмите сначала либо Ctrl + A или же Ctrl + Shift + End, а затем нажмите Alt +;  для выбора только видимых ячеек, игнорируя скрытые строки.

Если вам сложно запомнить такое количество комбинаций, используйте этот визуальный способ: выделите весь список, затем перейдите на вкладку «Главная» > «Найти и выделить» > «Выделить группу ячеек» и выберите «Только видимые ячейки».

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

Чтобы скопировать список на новое место, сделайте следующее:

  • Выберите отфильтрованные значения с помощью мыши или вышеупомянутых комбинаций клавиш.
  • Нажмите Ctrl + C для копирования выбранных значений.
  • Выберите верхнюю левую ячейку в целевом диапазоне (она может находиться на том же или другом листе) и нажмите Ctrl + V , чтобы вставить данные.

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

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

Самый быстрый и простой способ выделить уникальные значения в Excel — применить встроенное правило условного форматирования:

  1. Выберите столбец данных, в котором вы хотите выделить уникальные.
  2. На вкладке Главная в группе Стили щелкните Условное форматирование > Правила выделения ячеек > Повторяющиеся значения …

  1. В диалоговом окне « Повторяющиеся значения » выберите «Уникальный» в левом поле и выберите желаемое форматирование в правом поле, затем нажмите « ОК» .

Совет. Если вас не устраивает какой-либо из предопределенных форматов, щелкните «Пользовательский формат …» (последний элемент в раскрывающемся списке) и установите цвет заливки и / или шрифта по своему вкусу.

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

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

Как создать правило для условного форматирования уникальных значений?

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

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

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

Более подробные инструкции см. в статье: Как создать правила условного форматирования Excel на основе другого значения ячейки .
А теперь поговорим о том, какие формулы использовать и в каких случаях.

Выделяем цветом отдельные уникальные значения.

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

=СЧЁТЕСЛИ($A$2:$A$10;$A2)=1

Где A2 — первая, а A10 — последняя ячейка диапазона.

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

= СЧЁТЕСЛИ($A$2:$A2;$A2)=1

Где A2 — самая верхняя ячейка диапазона.

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

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

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

Как видите, формула

=СЧЁТЕСЛИ($A$2:$A$10;$A2)=1

та же самая, что и раньше, но строка в диапазоне выделена вся.

А можно использовать и такое выражение:

=СУММ(Ч($A2&$B2=$A$2:$A$10&$B$2:$B$10))<2

Результат будет таким же.

Как выделить уникальные строки?

Если вы хотите выделить строки на основе значений в двух или более столбцах, используйте функцию СЧЁТЕСЛИМН, которая позволяет указать несколько критериев в одной формуле.

Чтобы выделить уникальные строки:

=СЧЁТЕСЛИМН($A$2:$A$10;$A2; $B$2:$B$10;$B2)=1

Чтобы выделить различные строки:

=СЧЁТЕСЛИМН($A$2:$A2;$A2; $B$2:$B2;$B2)=1

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

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

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

Для тех пользователей Excel, которые хотят сэкономить свое время и силы, позвольте мне показать быстрый и простой способ поиска уникальных значений в Excel.

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

Давайте посмотрим.

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

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

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

  1. Выберите один или несколько столбцов, в которых вы хотите проверить значения.
    В этом примере мы хотим найти уникальные сочетания Заказчик + Товар на основе значений в двух столбцах. Их и выбираем при помощи галочки.
  2. Выберите один или несколько столбцов, в которых вы хотите проверить значения.

Если у вашей таблицы есть заголовки, обязательно установите флажок Mytable has headers. И если в вашей таблице могут встретиться пустые ячейки, то убедитесь, что установлен флажок Skipempty cells. Оба параметра находятся в верхней части диалогового окна и обычно выбираются по умолчанию.

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

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

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

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

В нашем случае чтобы найти уникальные значения, вполне достаточно будет просто выделить их цветом. Поэтому выберем Highlight with color.

Нажмите кнопку «Готово» и получите результат:

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

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

Хитрости »

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


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

Представим себе большой список различных наименований, ФИО, табельных номеров и т.п. А необходимо из этого списка оставить список все тех же наименований, но чтобы они не повторялись — т.е. удалить из этого списка все дублирующие записи. Как это иначе называют: создать список уникальных элементов, список неповторяющихся, без дубликатов. Для этого существует несколько способов: встроенными средствами 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 431 скачиваний)

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


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

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


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



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

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

Способ 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

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

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

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

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

​Смотрите также​buchlotnik​ соответствует 10 часов,​Не забываем менять диапазоны​ код обработчика.Private Sub​ выделяем попеременно нужные​ появится сообщение: «Добавить​ позволит нам вводить​ заголовка (шапки) важно.​Очень удобный инструмент Excel​ manager)​ проверяются на уникальность​Данные — Фильтр -​ИНДЕКС(Список1;ПОИСКПОЗ(0;СЧЁТЕСЛИ($F$4:F4;Список1);0));​ этим решением и​

​ помощью Расширенного фильтра),​ с учетом 4-х​Продолжим идеи, изложенные в​: Да нет, просто​ встречается он в​

​ на «свои». Списки​ Worksheet_Change(ByVal Target As​ ячейки.​ введенное имя баобаб​ новые значения.​

​ В нашем примере​ для проверки введенных​

​или в старых​ и отбираются. В​ Расширенный фильтр​ИНДЕКС(Список2;ПОИСКПОЗ(0;СЧЁТЕСЛИ($F$4:F4;Список2);0))​ создадим объединенный список,​ Сводных таблиц (см.​ условий выглядит так:​ статье Отбор уникальных​

​ ошибочка закралась.​ списке 3 раза,​ создаем классическим способом.​ Range) On Error​Теперь создадим второй раскрывающийся​ в выпадающий список?».​Вызываем редактор Visual Basic.​ это ячейка А1​ данных. Повысить комфорт​ версиях — через​ предыдущих способах при​(Data — Filter -​);»»)​ записав в ячейке​ лист Сводная таблица​

​=ЕСЛИОШИБКА(ИНДЕКС($A$7:$A$25;ПОИСКПОЗ(0;​
​ значений в MS​

​Для диапазона ф2​

​ соответственно после выбора​
​ А всю остальную​

​ Resume Next If​​ список. В нем​Нажмем «Да» и добавиться​ Для этого щелкаем​ со словом «Деревья».​ работы с данными​ меню​ изменении исходного списка​ Advanced Filter)​Для вывода промежуточных результатов​

​С5​ в файле примера)​ЕСЛИ((($B$7:$B$25>=$F$7)+($B$7:$B$25<>=$G$7)+($C$7:$C$25 СЧЁТЕСЛИ($I$6:I6;$A$7:$A$25);»»);0));»») ​ EXCEL. Сначала отберем​ должно быть:​ Васи в выпадающем​ работу будут делать​ Not Intersect(Target, Range(«Н2:К2»))​ должны отражаться те​ еще одна строка​ правой кнопкой мыши​ То есть нужно​ позволяют возможности выпадающих​Вставка — Имя -​

​ нужно будет заново​.​ вычислений можно воспользоваться​формулу​ или через меню​​или так​​ из таблицы только​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(Лист1!$C$1:ИНДЕКС(Лист1!$C$1:$C$11;ПОИСКПОЗ(«»;Лист1!$C$1:$C$11;0)-1);;1)​ списке рядом должно​ макросы.​

​ Is Nothing And​
​ слова, которые соответствуют​ со значением «баобаб».​ по названию листа​ выбрать стиль таблицы​ списков: подстановка данных,​ Присвоить​ запускать​Получаем окно:​ клавише​=ЕСЛИ(СТРОКА()-СТРОКА($C$4)>СЧЁТЗ(Список1);​ Данные/ Работа с​=ЕСЛИОШИБКА(ИНДЕКС($A$7:$A$25;ПОИСКПОЗ(0;​ те строки, которые​Garik007​ появиться число 3​На вкладке «Разработчик» находим​ Target.Cells.Count = 1​ выбранному в первом​Когда значения для выпадающего​ и переходим по​ со строкой заголовка.​ отображение данных другого​(Insert — Name -​Расширенный фильтр​В нем:​

​F9​​ИНДЕКС(Список2;СТРОКА(C5)-СЧЁТЗ(Список1)-СТРОКА($B$4));A5)​ данными/ Удалить дубликаты.​ЕСЛИ((($B$7:$B$25>=$F$7)*($B$7:$B$25<>=$G$7)*($C$7:$C$25 СЧЁТЕСЛИ($I$6:I6;$A$7:$A$25);»»);0));»»)​ удовлетворяют заданным условиям,​: Спасибо, наворочено конечно​ и чуть дальше​ инструмент «Вставить» –​

excel2.ru

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

​ Then Application.EnableEvents =​ списке названию. Если​ списка расположены на​ вкладке «Исходный текст».​ Получаем следующий вид​

​ листа или файла,​​ Define)​​или жать на​Выделяем наш список компаний​, выделив интересующую часть​

Задача

​Динамический диапазон Список1 представляет​ У каждого способа​Примечание​

​ затем из этих​ с формулами, но​ 30.​ «ActiveX». Здесь нам​

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

​ False If Len(Target.Offset(1,​ «Деревья», то «граб»,​ другом листе или​ Либо одновременно нажимаем​ диапазона:​ наличие функции поиска​:​​ кнопку​​ в​
​ формулы.​
​ собой Исходный список​

​ есть свои преимущества​. В формуле использована​ строк выберем только​ попробую разобраться.​Nic70y​ нужна кнопка «Поле​ 0)) = 0​ «дуб» и т.д.​ в другой книге,​ клавиши Alt +​Ставим курсор в ячейку,​ и зависимости.​диапазону номеров (A1:A100) -​

​Удаление дубликатов.​Исходный диапазон (List Range)​Начиная с 2007-й версии​ №1 с названиями​

​ и недостатки. Но,​​ функция ЕСЛИОШИБКА(), которая​​ уникальные значения из​
​михаил—​
​:​

​ со списком» (ориентируемся​ Then Target.Offset(1, 0)​ Вводим в поле​ стандартный способ не​

Тестируем

​ F11. Копируем код​​ где будет находиться​​Путь: меню «Данные» -​ имя​
​Итак, снова имеем список​.​ функция удаления дубликатов​ компаний, причем его​ в этой статье​

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

​ работает только начиная​ первого столбца. При​: Добрый день!​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СЧЁТЕСЛИ(B2:B13;F2)​ на всплывающие подсказки).​
​ = Target Else​
​ «Источник» функцию вида​
​ работает. Решить задачу​
​ (только вставьте свои​

​ выпадающий список. Открываем​ инструмент «Проверка данных»​NameCount​​ беспорядочно повторяющихся элементов.​​Ставим переключатель в положение​ является стандартной -​

excel2.ru

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

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

​ границы могут изменяться​ нам требуется, чтобы​ с версии MS​ добавлении новых строк​Есть массив значений,​​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММЕСЛИ(B2:B13;F2;C2:C13)оно?​Щелкаем по значку –​ Target.End(xlDown).Offset(1, 0) =​​ =ДВССЫЛ(E3). E3 –​

Excel выбрать уникальные значения из спискаȎxcel

​ можно с помощью​ параметры).Private Sub Worksheet_Change(ByVal​ параметры инструмента «Проверка​ — вкладка «Параметры».​всему списку с номерами​ Например, такой:​Скопировать результат в другое​ найти ее можно​ в зависимости от​ при добавлении новых​ EXCEL 2007. О​ в таблицу, список​ из которого нужно​heaven33rus​

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

​ становится активным «Режим​ Target End If​ ячейка с именем​ функции ДВССЫЛ: она​ Target As Range)​ данных» (выше описан​ Тип данных –​​ (A1:B100) — имя​​Первая задача — пронумеровать​​ место (Copy to​​ на вкладке​

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

Excel выбрать уникальные значения из спискаȎxcel

​ выбрать только уникальные​​: Да!! Спасибо!!!​ конструктора». Рисуем курсором​​ Target.ClearContents Application.EnableEvents =​ первого диапазона.​​ сформирует правильную ссылку​​ Dim lReply As​

Excel выбрать уникальные значения из спискаȎxcel

​ путь). В поле​

  • ​ «Список».​NameList​​ всех уникальных представителей​​ another location)​
  • ​Данные — Удаление дубликатов​​ значений (пропуски не​ таблицу, список уникальных​ заменить, читайте в​​ автоматически обновляться.​ значения, и записать​
  • ​А как сделать​​ (он становится «крестиком»)​​ True End If​​Бывает, когда из раскрывающегося​​ на внешний источник​​ Long If Target.Cells.Count​

​ «Источник» прописываем такую​

Excel выбрать уникальные значения из спискаȎxcel

​Ввести значения, из которых​Теперь осталось выбрать из​ списка, дав каждому​и указываем пустую​ (Data — Remove​ допускаются). Аналогичные диапазоны​ значений автоматически обновлялся,​ статье Функция ЕСЛИОШИБКА()​Пусть в имеется таблица​​ их в один​​ чтоб список выпадающий​

Excel выбрать уникальные значения из спискаȎxcel

​ небольшой прямоугольник –​ End Sub​ списка необходимо выбрать​ информации.​

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

​ > 1 Then​ функцию:​ будет складываться выпадающий​ списка​ свой номер (столбец​ ячейку.​ Duplicates)​ Список2 и Объединенный_список​ поэтому здесь построен​ в MS EXCEL.​ с повторяющимися значениями​ столбец. Из какого​ показывал только уникальные​ место будущего списка.​Чтобы выбираемые значения отображались​​ сразу несколько элементов.​​Делаем активной ячейку, куда​ Exit Sub If​​Протестируем. Вот наша таблица​

​ список, можно разными​NameList​ А на рисунке).​

Excel выбрать уникальные значения из спискаȎxcel

​Включаем (самое главное!) флажок​:​ созданы для столбцов​ список с использованием​Если значения Стоимости и​ в первом столбце,​ именно столбца или​ имена?​Жмем «Свойства» – открывается​ в одной ячейке,​

​ Рассмотрим пути реализации​

​ хотим поместить раскрывающийся​ Target.Address = «$C$2″​

​ со списком на​

​ способами:​все элементы имеющие​ Для этого вставляем​Только уникальные записи​В открывшемся окне нужно​ Исходный список №2​ формул.​ Даты контракта соответствуют​ например список названий​ строки массива взятя​

​Nic70y​ перечень настроек.​ разделенные любым знаком​ задачи.​ список.​ Then If IsEmpty(Target)​ одном листе:​Вручную через «точку-с-запятой» в​ номер — это​​ в ячейку А2​(Uniqe records only)​ с помощью флажков​​ и Объединенный список.​Примечание​ 4-м условиям, то​​ компаний.​ уникальная ячейка не​ ​: как-то так​Вписываем диапазон в строку​​ препинания, применим такой​

  • ​Создаем стандартный список с​Открываем параметры проверки данных.​​ Then Exit Sub​
  • ​Добавим в таблицу новое​ поле «Источник».​​ и будут наши​

​ и копируем затем​и жмем​​ задать те столбцы,​​Далее используем решение, приведенное​. Как видно из​ при отборе уникальных​Отберем из таблицы только​ имеет значение. решение​Garik007​ ListFillRange (руками). Ячейку,​ модуль.​ помощью инструмента «Проверка​ В поле «Источник»​ If WorksheetFunction.CountIf(Range(«Деревья»), Target)​ значение «елка».​

​Ввести значения заранее. А​

​ уникальные представители. Сделать​ вниз до упора​

​ОК​

​ по которым необходимо​ в статье Отбор​​ рисунков выше, в​​ это название компании​ те строки, которые​ должно быть формульным.​:​

Excel выбрать уникальные значения из спискаȎxcel

planetaexcel.ru

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

​ куда будет выводиться​Private Sub Worksheet_Change(ByVal​ данных». Добавляем в​ вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).​ = 0 Then​Теперь удалим значение «береза».​ в качестве источника​

​ это можно в​ следующую формулу:​.​ обеспечивать уникальность. Т.е.​ уникальных значений (убираем​ файле примера использованы​ учитывается. Если хотя​ удовлетворяют заданным условиям,​Подскажите как можно​Nic70y​

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

​ выбранное значение –​ Target As Range)​ исходный код листа​Имя файла, из которого​ lReply = MsgBox(«Добавить​

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

​Осуществить задуманное нам помогла​ указать диапазон ячеек​ любой пустой ячейке​=ЕСЛИ(СЧЁТЕСЛИ(B$1:B2;B2)=1;МАКС(A$1:A1)+1;»»)​

  1. ​Получите список без дубликатов:​ если включить все​Ввод значений.
  2. ​ дубликаты из столбца).​ Элементы управления формы​ бы не выполняется​ которые приведены в​Проверка вводимых значений.
  3. ​ такое сделать не​, а можно разъяснить,​ в строку LinkedCell.​On Error Resume​

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

​ готовый макрос. Как​ берется информация для​

​ введенное имя «​

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

​ «умная таблица», которая​ со списком.​ соседних столбцов, введя​В английской версии это​Если требуется искать дубликаты​ флажки, то будут​Записав в​ для управления выделением​

  1. ​ 1 условие, то​ табличке ниже.​ использую функцию удалить​ не совсем понял​Форматировать как таблицу.
  2. ​ Для изменения шрифта​ Next​ это делать, описано​ списка, заключено в​ & _ Target​ легка «расширяется», меняется.​Назначить имя для диапазона​ туда вот такую​ будет:​ не по одному,​ удалены только полностью​E5​ строк с помощью​Выпадающий список.
  3. ​ название компании не​Отобранные строки выделим Условным​ дубликаты, т.к. столбцов​ принцип выбора уникальных​ и размера –​If Not Intersect(Target,​ выше. С его​ квадратные скобки. Этот​

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

​ & » в​Теперь сделаем так, чтобы​ значений и в​

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

​ формулу с известной​=IF(COUNTIF(B$1:B2;B2)=1;MAX(A$1:A1)+1;»»)​

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

​ а по нескольким​

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

​ совпадающие строки. Если​формулу массива:​ Условного форматирования.​

​ учитывается. Если нужно​ форматированием.​ достаточно большое количество?​ значений в выпадающем​ Font.​ Range(«C2:C5»)) Is Nothing​ помощью справа от​

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

  1. ​ файл должен быть​ выпадающий список?», vbYesNo​ можно было вводить​ поле источник вписать​ функцией ВПР (VLOOKUP) и​Создание имени.
  2. ​Эта формула проверяет сколько​ столбцам, то можно​ включить только флажок​=ЕСЛИОШИБКА(ИНДЕКС(Объединенный_список;​Имея два списка с​
  3. ​ ограничиться, например 2-мя​Затем из этих строк​Serge_007​ списке.​Скачать пример выпадающего списка​ And Target.Cells.Count =​ выпадающего списка будут​Сообщение об ошибке.
  4. ​ открыт. Если книга​ + vbQuestion) If​ новые значения прямо​ это имя.​ скопировав ее вниз​ раз текущее наименование​ предварительно склеить их​ заказчик, то останется​ПОИСКПОЗ(0;СЧЁТЕСЛИ($E$4:E4;Объединенный_список);0));»»)​ однотипными повторяющимися значениями,​ условиями (только Стоимость),​ выберем только уникальные​: http://www.excelworld.ru/publ/hacks/tricks/extract_unique/17-1-0-10​Как сделать так,​При вводе первых букв​ 1 Then​ добавляться выбранные значения.Private​ с нужными значениями​ lReply = vbYes​ в ячейку с​Любой из вариантов даст​ на весь столбец:​ уже встречалось в​ в один, сделав,​ только по одной​и скопировав ее вниз​ создадим из них​ то удалите часть​ значения из первого​михаил—​ чтобы в ячейке​ с клавиатуры высвечиваются​Application.EnableEvents = False​
  5. ​ Sub Worksheet_Change(ByVal Target​ находится в другой​Сообщение об ошибке.
  6. ​ Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count +​ этим списком. И​ такой результат.​=ЕСЛИ(МАКС(NameCount)​ списке (считая с​ своего рода, составной​ строке для каждого​ получим список уникальных​

Макрос.

​ список, содержащий только​ формулы +($C$7:$C$25>=$G$7)+($C$7:$C$25​ столбца, т.е. только​: А Как сделать​ С3 в выпадающем​ подходящие элементы. И​

​newVal = Target​ As Range) On​ папке, нужно указывать​

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

​ 1, 1) =​ данные автоматически добавлялись​​или в английской версии​ начала), и если​ ключ с помощью​ заказчика и т.д.​ значений из двух​ уникальные значения.​Не забудьте, что формулу​ те компании, у​

  1. ​ чтобы уникальные значения​ списке, сформированном из​ это далеко не​
  2. ​Application.Undo​ Error Resume Next​ путь полностью.​

​ Target End If​ в диапазон.​Необходимо сделать раскрывающийся список​ Excel:​ это количество =1,​ функции​Если у вас Excel​ столбцов.​Пусть столбцы​ массива нужно вводить​

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

​ которых Стоимость и​

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

​ брались сразу из​ ячеек А1:А11, показывались​ все приятные моменты​oldval = Target​ If Not Intersect(Target,​Возьмем три именованных диапазона:​ End If End​Сформируем именованный диапазон. Путь:​

  1. ​ со значениями из​=IF(MAX(NameCount)​ т.е. элемент встретился​Список диапазонов.
  2. ​СЦЕПИТЬ (CONCATENATE)​ 2003 или старше,​1. Введите в ячейку​АВ​ в ячейку EXCEL​Таблица со списком.
  3. ​ Дата контракта находится​ нескольких столбцов (​ только уникальные значения​ данного инструмента. Здесь​If Len(oldval) <>​ Range(«Е2:Е9»)) Is Nothing​Это обязательное условие. Выше​ If End Sub​ «Формулы» — «Диспетчер​ динамического диапазона. Если​Эта формула проходит сверху​ первый раз -​:​Второй раскрывающийся список.

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

    ​ то для удаления​А9​содержат списки названий​ с помощью одновременного​ в заданных диапазонах.​

    1. ​ если нужны не​ из этих ячеек?​ можно настраивать визуальное​ 0 And oldval​ And Target.Cells.Count =​ описано, как сделать​Сохраняем, установив тип файла​ имен» — «Создать».​ вносятся изменения в​ вниз по столбцу​ дает ему последовательно​Тогда дальнейшая задача будет​ дубликатов и вытаскивания​название новой компании​ компаний, в некоторых​ нажатия​Решение приведено в файле​ только фамилии, но​Заранее спасибо.​ представление информации, указывать​ <> newVal Then​ 1 Then Application.EnableEvents​ обычный список именованным​ «с поддержкой макросов».​ Вводим уникальное название​ имеющийся диапазон (добавляются​
    2. ​NameCount​ возрастающий номер.​ сводиться к поиску​ из списка уникальных​ – ООО Фортик​ ячейках имеются дубликаты.​CTRL+SHIFT+ENTER​ примера на листе​ и все наименовании​Nic70y​ в качестве источника​Target = Target​ = False If​ диапазоном (с помощью​Переходим на лист со​ диапазона – ОК.​ или удаляются данные),​и выводит все​Для упрощения адресации дадим​
    3. ​ дубликатов уже в​ (неповторяющихся) элементов можно​2. В таблице​Создадим список, состоящий только​, затем ее нужно​
      ​ Уникальные. В его​ регионов, все разновидности​
      ​: с дополнительными столбцами​ сразу два столбца.​
      ​ & "," &​ Len(Target.Offset(0, 1)) =​ «Диспетчера имен»). Помним,​ списком. Вкладка «Разработчик»​
      ​Создаем раскрывающийся список в​
      ​ они автоматически отражаются​
      ​ позиции списка с​
      ​ нашим диапазонам (например,​
      ​ одном столбце.​ использовать​ Уникальные значения через​
      ​ из уникальных значений​ скопировать вниз, например,​ основе лежит формула​
      ​ цен и т.д)​
      ​ и ИНДЕКСОМ:​
      ​heaven33rus​
      ​ newVal​ 0 Then Target.Offset(0,​
      ​ что имя не​
      ​ - «Код» -​
      ​ любой ячейке. Как​

    ​ в раскрывающемся списке.​ номерами в отдельную​ исходя из того,​Чуть более сложный способ,​Расширенный фильтр (Advanced Filter) ​ объединенный список будет​

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

    1. ​ (см. файл примера).​ с помощью Маркера​ массива из статьи​ и результат уникальных​Garik007​: Приветствую.​Вставить ActiveX.
    2. ​Else​ 1) = Target​ может содержать пробелов​ «Макросы». Сочетание клавиш​ это сделать, уже​Выделяем диапазон для выпадающего​Элемент ActiveX.
    3. ​ таблицу:​ что в списке​Свойства ActiveX.
    4. ​ чем первые два,​из меню (вкладки)​ автоматически выведено название​Решим задачу двумя способами:​ заполнения.​ Отбор уникальных значений​ значений по всем​: Походу дела какой-то​

    ​Помогите решить задачу:​

    ​Target = newVal​ Else Target.End(xlToRight).Offset(0, 1)​ и знаков препинания.​ для быстрого вызова​ известно. Источник –​ списка. В главном​Под выпадающим списком понимается​ может быть до​ но зато -​Данные (Data)​

    exceltable.com

Выпадающий список и посчитать уникальные значения. (Формулы/Formulas)

​ новой компании.​​ через промежуточное создание​
​СОВЕТ:​
​ (убираем повторы из​ столбцам выводился общий​ глюк в экселе,​Есть список имен,​End If​
​ = Target End​Создадим первый выпадающий список,​ – Alt +​ имя диапазона: =деревья.​ меню находим инструмент​ содержание в одной​ 100 элементов) имена.​ динамический, т.е. с​.​В принципе, можно обойтись​

​ объединенного списка и​​Список уникальных значений​​ списка) в MS​​ в отдельном столбце?​

​ в выпадающем списке​​ где каждому имени​
​If Len(newVal) =​ If Target.ClearContents Application.EnableEvents​ куда войдут названия​ F8. Выбираем нужное​

​Снимаем галочки на вкладках​​ «Форматировать как таблицу».​

​ ячейке нескольких значений.​​ Это можно сделать​​ автоматическим пересчетом, т.е.​​Предположим, что у нас​ и без объединенного​ без него.​ можно создать разными​ EXCEL, которая использовалась​
​Pelena​ 2 раза повторяется​ присвоено определенное значение​ 0 Then Target.ClearContents​ = True End​ диапазонов.​ имя. Нажимаем «Выполнить».​
​ «Сообщение для ввода»,​

​Откроются стили. Выбираем любой.​​ Когда пользователь щелкает​ в новых версиях​

​ если список редактируется​​ имеется вот такой​ списка. Платой за​В статье Объединение списков​ способами, например, с​ для игнорирования пропусков​: Без вашего примера​
​ двойка, а пятерки​ рядом в ячейке,​

​Application.EnableEvents = True​​ If End Sub​Когда поставили курсор в​
​Когда мы введем в​ «Сообщение об ошибке».​​ Для решения нашей​

​ по стрелочке справа,​​ Excel на вкладке​ или в него​ список беспорядочно повторяющихся​

excelworld.ru

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

​ это будет значительное​​ изложено решение создания​
​ использованием Расширенного фильтра​ в списке. После​ — только общие​ вообще нет.​ допустим это часы.​End If​Чтобы выбранные значения показывались​ поле «Источник», переходим​ пустую ячейку выпадающего​ Если этого не​ задачи дизайн не​
​ появляется определенный перечень.​Формулы — Диспетчер имен​ дописываются еще элементы,​ названий компаний:​ усложнение формулы массива:​

​ объединенного списка из​​ (см. статью Отбор​

​ небольших изменений, формула​​ ответы​Может что попроще​Допустим некому Васе​End Sub​ снизу, вставляем другой​ на лист и​ списка новое наименование,​ сделать, Excel не​ имеет значения. Наличие​ Можно выбрать конкретное.​ (Formulas — Name​ то они автоматически​Выбираем в меню​

​=ЕСЛИОШИБКА(ЕСЛИОШИБКА(​​ 2-х списков. Воспользуемся​ уникальных строк с​ для отбору уникальных​
​http://www.excelworld.ru/forum/2-3436-36914-16-1359023496​

excelworld.ru

​ есть?​

Понравилась статья? Поделить с друзьями:
  • Как в excel выбрать данные по двум
  • Как в excel выбрать только те ячейки в которых содержится
  • Как в excel выбрать только нужные строки
  • Как в excel выбрать только заполненные строки
  • Как в excel выбрать текстовое значение