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 функция удаления дубликатов является стандартной. Найти ее можно на вкладке Данные > Удаление дубликатов.
Вам нужно при помощи птички указать столбцы, в которых нужно найти и удалить повторяющиеся значения. Если сделать так, как на скриншоте, то в таблице останутся только уникальные пары «Заказчик – Товар». Остальное будет удалено. Если включить только флажок «Заказчик», то останется только по одной строке для каждого заказчика и т.д.
Использование расширенного фильтра.
Если вы не хотите тратить время на выяснение загадочных поворотов формул, вы можете быстро получить список уникальных значений с помощью расширенного фильтра. Подробные инструкции приведены ниже.
- Выберите столбец данных, из которого вы хотите извлечь отдельные значения.
- Перейдите на вкладку «Данные» > группа «Сортировка и фильтр» и нажмите кнопку «Дополнительно» .
- В диалоговом окне Расширенный фильтр выберите следующие параметры:
- Установите флажок Копировать в другое место .
- В поле Исходный диапазон убедитесь, что он указан правильно.
- В параметре Поместить результат в… укажите самую верхнюю ячейку целевого диапазона. Помните, что вы можете копировать отфильтрованные данные только на текущий лист.
- Выберите пункт «Только уникальные записи».
- Наконец, нажмите кнопку ОК и проверьте результат.
Как видите, мы проверили колонку B, и затем список уникальных наименований товара, найденных в ней, поместили в столбец K.
Обратите внимание, что хотя опция расширенного фильтра называется «Только уникальные записи», она извлекает различные значения, то есть уникальные и первые вхождения повторяющихся.
Теперь немного усложним задачу.
Если требуется искать записи не по одному, а по нескольким столбцам, то можно их предварительно «склеить» при помощи функции СЦЕПИТЬ.
=СЦЕПИТЬ(A2;B2)
Записываем это в столбец F и копируем вниз. Получаем вспомогательную колонку.
В качестве исходного диапазона мы по-прежнему выбираем данные, из которых извлекаем уникальные значения. Теперь это два столбца – A и B.
Но искать уникальные мы по-прежнему можем только в одном столбце. Вот для этого нам и пригодится вспомогательная колонка F с объединенными данными. Ее то мы и указываем в поле «Диапазон условий».
Все остальное – так же, как и в предыдущем примере.
В результате мы получили все имеющиеся в таблице комбинации «Заказчик — Товар» на основе данных во вспомогательном столбце F.
Думаю, вы понимаете, что аналогичные действия можно произвести и с тремя столбцами (например Фамилия – Имя – Отчество). Главное условие – исходный диапазон должен быть непрерывным, то есть все столбцы должны находиться рядом.
Как видите формулы здесь не нужны. Однако, если исходные данные изменятся, то все манипуляции придется повторять заново.
Извлечение уникальных значений с помощью Duplicate Remover.
В заключительной части этого руководства я покажу вам интересное решение для поиска и извлечения различных и уникальных значений в таблицах Excel. Это решение сочетает в себе универсальность формул Excel и простоту расширенного фильтра. Кроме того, здесь есть несколько уникальных функций:
- Найти и извлечь уникальные или различные значения на основе записей в одном или нескольких столбцах.
- Найти, выделить и скопировать уникальные значения в любое другое место в той же или другой книге Excel.
А теперь давайте посмотрим, как работает инструмент Duplicate Remover.
Предположим, у вас есть большая таблица, созданная путем объединения данных из нескольких других таблиц. Очевидно, что она содержит много повторяющихся строк, и ваша задача состоит в том, чтобы извлечь уникальные строки, которые появляются в таблице только один раз, или различные строки, включая уникальные и первые повторяющиеся вхождения. В любом случае, с надстройкой Duplicate Remover работа выполняется за несколько шагов.
- Выберите любую ячейку в исходной таблице и нажмите кнопку DuplicateRemover на вкладке AblebitsData в группе Dedupe.
Мастер Duplicate Remover запустится и выберет всю таблицу. Итак, просто нажмите « Далее», чтобы перейти к следующему шагу.
- Выберите тип значения, который вы хотите найти, и нажмите Далее :
- Уникальные
- Уникальные + 1е вхождения (различные)
- Выберите один или несколько столбцов для проверки уникальных значений.
В этом примере мы хотим убрать все повторяющиеся значения на основе значений в 2 столбцах ( заказчик и товар), поэтому мы выбираем только нужные нам столбцы.
В нашем случае таблица имеет заголовок, поэтому отмечаем птичкой пункт My table has headers.
Думаю, нам не нужны пустые строки, которые могут случайно встретиться при объединении данных из разных таблиц. Поэтому отмечаем такжеSkip empty cells.
Если вдруг в наших записях случайно появились лишние пробелы, то, думаю, стоит их игнорировать. Поэтому отмечаем также Ignore extra spaces.
Также наш поиск буден нечувствителен к регистру, то есть не будем при сравнении данных различать прописные и строчные буквы. Поэтому не трогаем опцию Case-sensitive match.
- Выберите действие, которое нужно выполнить с найденными значениями. Вам доступны следующие варианты:
- Выделить цветом.
- Выбрать и выделить.
- Отметить в столбце статуса.
- Копировать в другое место.
Чтобы не менять исходные данные, выберите «Копировать в другое место» (Copy to another location), а затем укажите, где именно вы хотите видеть новую таблицу – на этом же листе (выберите параметр «Custom Location» и укажите верхнюю ячейку целевого диапазона), на новом листе (New worksheet) или в новой книге (New workbook).
В этом примере давайте выберем новый лист:
- Нажмите кнопку « Готово» , и все готово!
В итоге у нас осталось всего 20 записей.
Понравился этот быстрый и простой способ получить список уникальных значений или записей в Excel? Если да, то я рекомендую вам загрузить полнофункциональную ознакомительную версию Ultimate Suite и попробовать в работе Duplicate Remover.
В Ultimate Suite for Excel также включено много других полезных инструментов, которые помогут вам сэкономить много времени. Мы о них также будем подробно рассказывать в других материалах на сайте.
Хитрости »
1 Май 2011 531852 просмотров
Как получить список уникальных(не повторяющихся) значений?
Представим себе большой список различных наименований, ФИО, табельных номеров и т.п. А необходимо из этого списка оставить список все тех же наименований, но чтобы они не повторялись — т.е. удалить из этого списка все дублирующие записи. Как это иначе называют: создать список уникальных элементов, список неповторяющихся, без дубликатов. Для этого существует несколько способов: встроенными средствами Excel, встроенными формулами и, наконец, при помощи кода Visual Basic for Application(VBA) и сводных таблиц. В этой статье рассмотрим каждый из вариантов.
- При помощи встроенных возможностей Excel 2007 и выше
- При помощи Расширенного фильтра
- При помощи формул
- При помощи кодов Visual Basic for Application(VBA) — макросы, включая универсальный код выборки из произвольного диапазона
- При помощи сводных таблиц
В 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 430 скачиваний)
Также см.:
Работа с дубликатами
Как подсчитать количество повторений
Общие сведения о сводных таблицах
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Извлечение уникальных элементов из диапазона
Способ 1. Штатная функция в Excel 2007
Начиная с 2007-й версии функция удаления дубликатов является стандартной — найти ее можно на вкладке Данные — Удаление дубликатов (Data — Remove Duplicates):
В открывшемся окне нужно с помощью флажков задать те столбцы, по которым необходимо обеспечивать уникальность. Т.е. если включить все флажки, то будут удалены только полностью совпадающие строки. Если включить только флажок заказчик, то останется только по одной строке для каждого заказчика и т.д.
Способ 2. Расширенный фильтр
Если у вас Excel 2003 или старше, то для удаления дубликатов и вытаскивания из списка уникальных (неповторяющихся) элементов можно использовать Расширенный фильтр (Advanced Filter) из меню (вкладки) Данные (Data).
Предположим, что у нас имеется вот такой список беспорядочно повторяющихся названий компаний:
Выбираем в меню Данные — Фильтр — Расширенный фильтр (Data — Filter — Advanced Filter). Получаем окно:
В нем:
- Выделяем наш список компаний в Исходный диапазон (List Range).
- Ставим переключатель в положение Скопировать результат в другое место (Copy to another location) и указываем пустую ячейку.
- Включаем (самое главное!) флажок Только уникальные записи(Uniqe records only) и жмем ОК.
Получите список без дубликатов:
Если требуется искать дубликаты не по одному, а по нескольким столбцам, то можно предварительно склеить их в один, сделав, своего рода, составной ключ с помощью функции СЦЕПИТЬ (CONCATENATE):
Тогда дальнейшая задача будет сводиться к поиску дубликатов уже в одном столбце.
Способ 3. Выборка уникальных записей формулой
Чуть более сложный способ, чем первые два, но зато — динамический, т.е. с автоматическим пересчетом, т.е. если список редактируется или в него дописываются еще элементы, то они автоматически проверяются на уникальность и отбираются. В предыдущих способах при изменении исходного списка нужно будет заново запускать Расширенный фильтр или жать на кнопку Удаление дубликатов.
Итак, снова имеем список беспорядочно повторяющихся элементов. Например, такой:
Первая задача — пронумеровать всех уникальных представителей списка, дав каждому свой номер (столбец А на рисунке). Для этого вставляем в ячейку А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 и выводит все позиции списка с номерами в отдельную таблицу:
Ссылки по теме
- Выделение дубликатов по одному или нескольким столбцам в списке цветом
- Запрет ввода повторяющихся значений
- Извлечение уникальных значений при помощи надстройки PLEX
Если пользователю Excel приходится работать с большой электронной таблицей и задача состоит в том, чтобы найти уникальные значения, соответствующие определенному критерию, им часто приходится использовать такой инструмент, как фильтр. Но в некоторых случаях необходимо сделать что-то еще, то есть выбрать все серии, в которых есть определенные значения по отношению к другим сериям. Если говорить об этой ситуации, то здесь необходимо использовать другую функцию — условное форматирование.
Чтобы максимизировать производительность, при необходимости следует использовать раскрывающийся список.
Это полезно в ситуациях, когда вам нужно постоянно изменять запросы одного и того же типа, чтобы отображать разные строки в диапазоне. Теперь мы подробно расскажем, какие действия нужно выполнить, чтобы создать выделение из повторяющихся ячеек, включенных в выпадающий список.
Прежде всего, нужно понять, что такое чемпион. Это одно из важнейших статистических понятий, означающее набор параметров, выбранных по определенному критерию. Выборка может быть чем угодно: люди для эксперимента, одежда, предприятия, титулы и так далее.
Чтобы создать образец, вы должны сначала выбрать те результаты, которые соответствуют условиям, из большого списка, а затем отобразить эти значения в отдельном списке или в исходной таблице.
Подготовка содержания выпадающего списка
Чтобы сделать нашу работу сегодня более наглядной, возьмем историю соглашений с клиентами. Это будет так, как показано на картинке.
Здесь необходимо с помощью цвета выделить все операции, выполняемые по отношению к каждому конкретному аналогу. Для переключения между ними применим выпадающий список. Поэтому изначально это необходимо сделать, а для этого необходимо выбрать данные, которые будут его элементами. В нашем примере нам нужны все совпадающие имена, которые находятся в столбце A и не повторяются. Чтобы подготовить содержимое выпадающего списка, вам необходимо выполнить следующие инструкции:
- Выберем первый столбец нашей таблицы.
- Воспользуемся инструментом «Данные» — «Сортировка и фильтр» — «Дополнительно».
- Далее перед нами появится окно, в котором мы должны выбрать тип обработки «копировать результат в другое место», а также поставить галочку напротив пункта «Только уникальные записи». В нашем случае диапазон, который мы используем, будет ячейкой с адресом $ F $ 1. Знак доллара означает, что ссылка является абсолютной и не будет изменяться в зависимости от того, копирует ли человек содержимое ячейки, связанной с ней, или вставляет ее.
- После установки всех необходимых параметров нам необходимо нажать кнопку ОК и затем мы подтверждаем свои действия.
Теперь мы видим список ячеек с уникальными фамилиями, которые больше не повторяются. Это будет наш выбор для списка.
Модификация исходной таблицы
После этого нам нужно внести некоторые изменения в нашу таблицу. Для этого выделите первые две строчки и нажмите комбинацию клавиш Ctrl + Shift + =. Поэтому мы вставили две дополнительные строки. Во вновь созданной ячейке A1 введите слово «Клиент».
Создание выпадающего списка
Далее нам нужно создать раскрывающийся список. Для этого выполните следующие действия:
- Щелкаем по ячейке B1. Переходим во вкладку «Данные» — «Работа с данными» — «Проверка данных».
- Появится диалоговое окно, в котором мы должны выбрать тип данных «Список» и выбрать наш список фамилий в качестве источника данных. Затем нажмите кнопку ОК.
Впоследствии ячейка B1 превращается в полный список имен клиентов. Если информация, которая служит источником для раскрывающегося списка, находится на другом листе, то в этом случае лучше всего назвать этот диапазон и обращаться к нему таким образом.
В нашем случае в этом нет необходимости, потому что у нас уже есть вся информация на одном листе.
Выборка ячеек из таблицы по условию
Теперь попробуем создать выделение ячеек по условию. Для этого выберите таблицу, содержащую название контрагента, его код, номер транзакции и сумму транзакции, после чего мы откроем окно «Условное форматирование». Для его вызова нужно перейти на вкладку «Главная», найти там группу «Стили» и там будет кнопка «Условное форматирование».
Появится меню, в котором мы должны нажать на пункт «Создать правило», так как мы выбираем «Использовать формулу для определения форматированных ячеек».
Затем введите формулу, показанную на снимке экрана, затем нажмите кнопку «Форматировать», чтобы все ячейки были того же цвета, что и фамилия. Например, зеленый. Далее подтверждаем все ранее выполненные действия, многократно нажимая «ОК» во всех окнах, которые будут открыты в этот момент. Впоследствии, когда мы выбираем фамилию нашего человека, все ячейки, которые ее включают, выделяются указанным нами цветом.
Как это работает? Когда мы выбираем значение в раскрывающемся списке, формула анализирует все доступные строки и, если находит совпадение, выделяет их цветом, указанным пользователем. Вы можете убедиться, что формула работает, выбрав другую фамилию. Впоследствии выбор изменится. Это значительно упрощает чтение таблицы.
Принцип работы следующий: проверяется значение в столбце A. Если оно совпадает с выбранным в списке в ячейке B1, эта формула возвращает значение ИСТИНА. После этого вся строка форматируется так, как вы хотите. В принципе, вы можете не только выделить эту строку отдельным цветом, но и произвольно настроить шрифт, границы и другие параметры. Но мелирование цветом — самый быстрый способ.
Как мы получили цвет всей строки, а не отдельной ячейки? Для этого мы применили ссылку на ячейку, где адрес столбца является абсолютным, а номер строки относительным.
4 способа выборки данных в Excel
Но это не конец нашего образования. Фактически, у нас есть до четырех способов сформировать выборку данных в Excel.
Расширенный автофильтр
Это самый простой способ выбрать значения, соответствующие определенным критериям. Давайте подробнее разберемся, что для этого нужно.
- Предположим, у вас есть таблица, содержащая название продукта, дату и общую сумму, полученную от продажи определенного предмета в определенный день. Нам нужно выбрать область, в которой мы хотим выбрать образец. Для этого переходим во вкладку «Главная», где находим кнопку «Сортировка и фильтр» и нажимаем на нее. Его можно найти в наборе инструментов редактирования. Далее находим опцию «Фильтр». Вот скриншот для наглядности.
- В этом случае есть и второй способ действовать. Вы можете найти кнопку «Фильтр» в группе «Сортировка и фильтр» на вкладке «Данные».
- После этого вверху таблицы появятся стрелки, с помощью которых вы сможете выбрать данные для фильтра. Мы должны щелкнуть по одному из них (какой зависит от столбца, в котором мы должны сортировать). Затем найдите «Числовые фильтры» и нажмите «Пользовательский фильтр».
- После этого появится окно, в котором можно настроить настраиваемый фильтр. С его помощью пользователь может установить критерий, по которому будут отбираться данные. В раскрывающемся списке для столбца, который содержит числовые ячейки (то есть, давайте использовать их, например), вы можете выбрать такие критерии, как равно, не равно, больше, больше или равно и меньше. То есть стандартные арифметические операции сравнения.
Устанавливаем для наглядности правило, согласно которому программа должна отбирать только те значения, при которых сумма выручки превышает 10 тысяч рублей. Следовательно, мы должны установить пункт «больше чем» в поле, обозначенном цифрой 1 на скриншоте, и установить значение 10 тысяч (цифрами) в поле, обозначенном цифрой 2. Так что остается только подтвердить наши действия. - Как мы поняли, после фильтрации данных остались только те строки, где сумма заработка без вычета налогов превышает 10 тысяч рублей.
- Но у нас есть возможность добавить еще один критерий. Для этого нам нужно вернуться к настраиваемому фильтру, внизу которого мы видим еще два поля, которые имеют ту же форму, что и то, в которое мы ввели наши критерии. Здесь вы можете установить второй параметр. Например, предположим, что вам нужно выбрать только те данные, которые не превышают 14999. Для этого выберите правило «Минус» и установите значение «15000».
вы также можете использовать опцию условия, которая может принимать одно из двух значений: И и ИЛИ. Изначально он настроен для первого варианта, но если человеку необходимо выполнить какое-либо из этих условий, можно выбрать значение ИЛИ. Чтобы изменить тип взаимосвязи между условиями, тумблер необходимо установить в соответствующее положение. После выполнения всех необходимых действий нажмите кнопку «ОК». - Теперь в нашей таблице показаны только значения от 10 тысяч до 14999 рублей.
Формула массива
Другой вариант выбора — использовать формулу массива. В этом случае результат отображается в отдельной таблице, что может быть полезно, если вам всегда нужно, чтобы исходные данные у вас на глазах оставались неизменными. Для этого нам понадобится следующее:
- Скопируйте заголовок таблицы в желаемое место.
- Выделите все ячейки, содержащиеся в первом столбце вновь созданной таблицы, и переместите курсор в строку для ввода формул. Далее вводим туда следующую формулу (значения разумеется меняем на свои). = ИНДЕКС (LA2: A29; МАЛЫЙ (ЕСЛИ (15000
- Подтвердите ввод, используя комбинацию клавиш Ctrl + Shift + Enter.
- Аналогичную операцию проделываем со вторым столбиком.
- То же проделываем с третьим столбиком.
Во всех трех ситуациях формула в основном одинакова, меняются только координаты.
Далее мы назначаем правильный формат ячейкам, где появляется ошибка. Затем мы используем условное форматирование, чтобы выделить те ячейки, которые содержат определенное значение.
Выборка с несколькими условиями с помощью формулы
Использование формул также позволяет выбирать значения на основе нескольких критериев. Для этого выполняем следующие действия:
- Мы устанавливаем условия в специальном столбце таблицы.
- Пишем по три формулы с правильными координатами в каждый из вспомогательных столбцов, которые необходимо предварительно создать. Мы используем для этого формулу массива точно так же.
Преимущество этого метода в том, что вам не нужно менять формулу, если вам нужно внезапно изменить условия. Они всегда будут сохранены в соответствующих местах.
Случайная выборка
Наконец, последний метод выборки, который может работать не во всех ситуациях, — это использование генератора случайных чисел. Для этого используйте функцию = RAND (). Затем заполните все нужные ячейки с помощью маркера автозаполнения.
Затем выберите «Пользовательская сортировка» в меню фильтра.
Появляется меню настроек, где выставляем параметры как на скриншоте.
Затем нажимаем «ОК» и получаем результат.
Мы видим, что здесь нет ничего сложного. После небольшой практики все будет очень просто. Главное — понять принцип, и вы можете выбрать любой метод, какой душе угодно.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще…Меньше
Функция УНИК возвращает список уникальных значений в списке или диапазоне.
Возвращение уникальных значений из списка значений
Возвращение уникальных имен из списка имен
=УНИК(массив,[by_col],[exactly_once])
Функция УНИК имеет следующие аргументы:
Аргумент |
Описание |
---|---|
массив Обязательный |
Диапазон или массив, из которого возвращаются уникальные строки или столбцы |
[by_col] Необязательный |
Аргумент by_col является логическим значением, указывающим, как проводить сравнение. Значение ИСТИНА сравнивает столбцы друг с другом и возвращает уникальные столбцы Значение ЛОЖЬ (или отсутствующее значение) сравнивает строки друг с другом и возвращает уникальные строки |
[exactly_once] Необязательно |
Аргумент exactly_once является логическим значением, которое возвращает строки или столбцы, встречающиеся в диапазоне или массиве только один раз. Это концепция базы данных УНИК. Значение ИСТИНА возвращает из диапазона или массива все отдельные строки или столбцы, которые встречаются только один раз Значение ЛОЖЬ (или отсутствующее значение) возвращает из диапазона или массива все отдельные строки или столбцы |
Примечания:
-
Массив может рассматриваться как строка или столбец со значениями либо комбинация строк и столбцов со значениями. В примерах выше массивы для наших формул УНИК являются диапазонами D2:D11 и D2:D17 соответственно.
-
Функция УНИК возвращает массив, который будет рассеиваться, если это будет конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши ВВОД. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете Структурированные ссылки. Дополнительные сведения см. в статье Поведение рассеянного массива.
-
Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.
Примеры
Пример 1
В этом примере СОРТ и УНИК используются совместно для возврата уникального списка имен в порядке возрастания.
Пример 2
В этом примере аргумент exactly_once имеет значение ИСТИНА, и функция возвращает только тех клиентов, которые обслуживались один раз. Это может быть полезно, если вы хотите найти людей, которые не получали дополнительное обслуживание, и связаться с ними.
Пример 3
В этом примере используется амперсанд (&) для сцепления фамилии и имени в полное имя. Обратите внимание, что формула ссылается на весь диапазон имен в массивах A2:A12 и B2:B12. Это позволяет Excel вернуть массив всех имен.
Советы:
-
Если указать диапазон имен в формате таблицы Excel, формула автоматически обновляется при добавлении или удалении имен.
-
Чтобы отсортировать список имен, можно добавить функцию СОРТ: =СОРТ(УНИК(B2:B12&» «&A2:A12))
Пример 4
В этом примере сравниваются два столбца и возвращаются только уникальные значения в них.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Функция ФИЛЬТР
Функция СЛУЧМАССИВ
Функция ПОСЛЕДОВ
Функция СОРТ
Функция СОРТПО
Ошибки #SPILL! в Excel
Динамические массивы и поведение массива с переносом
Оператор неявного пересечения: @
Нужна дополнительная помощь?
В этой статье я хочу рассказать о возможности создать список уникальных значений в таблицах Excel. Эта возможность очень часто используется при работе с таблицами, так как часто возникает потребность с большого массива данных выбрать уникальные данные, которые не повторяются. Это может быть нужно для разнообразных целей, и уже вам решать каким способом и как произвести отбор нужных вам уникальных значений.
Это очень простой способ для владельцев Excel выше 2007 версии как произвести отбор уникальных значений. Вам нужно на вкладке «Данные», в разделе «Работа с данными», использовать специальную команду «Удалить дубликаты».
В появившемся диалоговом окне «Удалить дубликаты», вы выделяете те столбики, где необходимо произвести отсев уникальных значений и нажимаете «Ок». В случае, когда в выделенном диапазоне размещается и заголовок таблицы, то поставьте галочку на пункте «Мои данные содержат заголовки», что бы вы случайно не удалили данные. Внимание! Когда вы будете производить отсев уникальных значений в таблице, где столбиков больше 2 и они взаимосвязаны информацией, Excel предложит вам расширить диапазон выбора, с чем вы должны, согласится, иначе будет нарушена логическая связь с другими столбиками.
Это также не сложный способ произвести отбор уникальных значений в таблице. Использовать этот инструмент возможно на вкладке «Данные», потом выбрать «Фильтр», и наконец «Расширенный фильтр», этот путь подходит для Excel 2003, а вот владельцы более юных версий, от 2007 и выше стоит пройти по пути: «Данные» — «Сортировка и фильтр» — «Дополнительно». Огромный плюс этого способа в том, что вы можете создать новый список уникальных значений в другом месте. После появления диалогового окна «Расширенный фильтр», устанавливаем галочку напротив пункта «Скопировать результат в другое место», потом указываем диапазон с вашими данными в поле «Исходный диапазон», при необходимости указываем критерий отбора, но для общего отсева поле оставляем пустым «Диапазон критериев», в третьем поле «Поместить результат в диапазон» указываем первую ячейку куда будут помещаться наши данные, отмечаем галочкой пункт «Только уникальные записи» и нажимаем «Ок». Если же вам не нужно никуда переносить ваши данные, то просто установите флажок для пункта «Фильтровать список на месте», данные не пострадают, произойдет наложение обыкновенного фильтра.
Внимание! Если программа запрещает вам переносить отфильтрованные данные на другой лист, вы просто запустите «Расширенный фильтр» на том листе, куда вам надо перенести отобранные уникальные значения.
Этот способ более сложен, нежели те, что мы рассматривали ранее, но его преимущество в том, что он более динамичен и работает на постоянной основе. В разных случаях вам будут нужны разные формулы, вот и рассмотрим несколько вариантов и примеров.
Пример 1. Вам нужно пронумеровать, уникальные, значение в списке значений, для этого нужно использовать функцию ЕСЛИ в формуле следующего вида:
Суть формулы в том, что она проверяет сколько раз, текущее значение встречается в вашем диапазоне (начиная с начала), и если это значение равно 1, то есть это первое уникальное значение, формула ставит последовательно возвращающий номер по порядку. Теперь можно произвести отбор уникальных значений, которые были ранее пронумерованы. Сделать это возможно в любом из соседних столбиков используя функцию ВПР и копируя ее вниз:
С ростом богатства растут и заботы. Гораций
Отбор уникальных значений (убираем повторы из списка) в 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 решена обратная задача: из списка уникальных значений, в котором для каждого значения задано количество повторов, создается список этих значений с повторами.
Фильтр уникальных значений или удаление повторяющихся значений
В этом курсе:
В Excel есть несколько способов фильтрации уникальных значений, а также удаления повторяющихся значений.
Чтобы отфильтровать уникальные значения, нажмите кнопку данные > отсортировать & фильтр > Дополнительно.
Чтобы удалить повторяющиеся значения, выберите > инструменты данные > Удалить дубликаты.
Чтобы выделиь уникальные или повторяющиеся значения, используйте команду условное форматирование в группе стиль на вкладке Главная .
Фильтрация уникальных значений и удаление повторяющихся значений — это две похожие задачи, так как целью является предоставление списка уникальных значений. Тем не менее, при фильтрации уникальных значений вы должны временно скрыть повторяющиеся значения. Однако удаление повторяющихся значений означает безвозвратное удаление повторяющихся значений.
Повторяющееся значение — это одно из значений, для которого все значения по крайней мере одной строки идентичны всем значениям в другой строке. Сравнение повторяющихся значений зависит от того, что отображается в ячейке, а не на основе значения, хранящегося в ячейке. Например, если у вас есть одинаковое значение даты в разных ячейках, например «3/8/2006», а другое — «Мар 8, 2006», значения будут уникальными.
Проверка перед удалением дубликатов: Прежде чем удалять повторяющиеся значения, рекомендуется сначала попытаться отфильтровать (или условно отформатировать по — уникальные значения), чтобы подтвердить достижение ожидаемых результатов.
Выполните указанные ниже действия.
Выделите диапазон ячеек или убедитесь в том, что активная ячейка находится в таблице.
Нажмите кнопку данные > дополнительно (в группе Фильтр сортировки & ).
В всплывающем окне Расширенный фильтр выполните одно из следующих действий:
Чтобы отфильтровать диапазон ячеек или таблицы по месту, выполните указанные ниже действия.
Нажмите кнопку Фильтровать список на месте.
Чтобы скопировать результаты фильтра в другое место, выполните указанные ниже действия.
Выберите команду скопировать в другое место.
В поле Копировать в введите ссылку на ячейку.
Кроме того, можно нажать кнопку Свернуть диалоговое окно , чтобы временно скрыть всплывающее окно, выбрать ячейку на листе, а затем нажать кнопку развернуть .
Установите флажок только уникальные записии нажмите кнопку ОК.
Уникальные значения из диапазона будут скопированы в новое место.
При удалении повторяющихся значений единственным эффектом будут значения в диапазоне ячеек или таблице. Другие значения, находящиеся за пределами диапазона ячеек или таблицы, не изменяются и не перемещаются. При удалении дубликатов сохраняется первое вхождение значения в списке, а также удаляются другие идентичные значения.
Так как вы удаляете данные безвозвратно, рекомендуется скопировать исходный диапазон ячеек или таблицы на другой лист или в другую книгу, прежде чем удалять повторяющиеся значения.
Выполните указанные ниже действия.
Выделите диапазон ячеек или убедитесь в том, что активная ячейка находится в таблице.
На вкладке данные нажмите кнопку Удалить дубликаты (в группе Работа с данными ).
Выполните одно или несколько из указанных ниже действий:
В разделе столбцывыберите один или несколько столбцов.
Чтобы быстро выделить все столбцы, нажмите кнопку выделить все.
Чтобы быстро удалить все столбцы, нажмите кнопку снять выделение.
Если диапазон ячеек или таблица содержат много столбцов и нужно выделить несколько столбцов, возможно, вам будет проще щелкнуть снять все, а затем в разделе столбцывыберите эти столбцы.
Примечание: Данные будут удалены из всех столбцов, даже если на этом этапе не будут выделяться все столбцы. Например, если выбрать Столбец1 и Столбец2 (но не Столбец3), то «Key», использованный для поиска дубликатов, — это значение обоих Столбец1 & Столбец2. Если в этих столбцах обнаружена повторяющаяся копия, вся строка удаляется, в том числе другие столбцы в таблице или диапазоне.
Нажмите кнопку ОК, и появится сообщение о том, сколько повторяющихся значений было удалено, или сколько уникальных значений осталось. Нажмите кнопку ОК , чтобы закрыть сообщение.
Чтобы изменить изменения, нажмите кнопку Отменить (или нажмите клавиши CTRL + Z на клавиатуре).
Невозможно удалить повторяющиеся значения из структурированных данных структуры или с промежуточными итогами. Для удаления дубликатов необходимо удалить структуру и промежуточные итоги. Дополнительные сведения можно найти в разделе Структурирование списка данных на листе и Удаление промежуточных итогов.
Примечание: Вы не можете условно форматировать поля в области значений отчета сводной таблицы с помощью уникальных или повторяющихся значений.
Выполните указанные ниже действия.
Выделите одну или несколько ячеек в диапазоне, таблице или отчете сводной таблицы.
На вкладке Главная в группе стиль щелкните маленькую стрелку для условного форматированияи выберите пункт правила выделения ячеек, а затем — повторяющиеся значения.
Введите значения, которые вы хотите использовать, а затем выберите формат.
Выполните указанные ниже действия.
Выделите одну или несколько ячеек в диапазоне, таблице или отчете сводной таблицы.
На вкладке Главная в группе стили щелкните стрелку рядом с кнопкой условное форматированиеи выберите пункт Управление правилами , чтобы открыть всплывающее окно диспетчера правил условного форматирования .
Выполните одно из следующих действий.
Чтобы добавить условное форматирование, нажмите кнопку создать правило , чтобы открыть всплывающее окно » новое правило форматирования «.
Чтобы изменить условное форматирование, сначала убедитесь, что в списке Показать правила форматирования для выбран соответствующий лист или таблица. При необходимости выберите другой диапазон ячеек, нажав кнопку свернуть в окне применено, чтобы временно скрыть его. Выберите новый диапазон ячеек на листе, а затем снова разверните всплывающее окно . Выберите правило и нажмите кнопку изменить правило , чтобы открыть всплывающее окно » Изменение правила форматирования «.
В группе Выберите тип правила выберите параметр Форматировать только уникальные или повторяющиеся значения.
В списке форматировать всеизмените описание правилавыберите значение уникальное или повторяющееся.
Нажмите кнопку Формат , чтобы открыть всплывающее окно Формат ячеек .
Выберите число, шрифт, границу или формат заливки, которые нужно применить, если значение ячейки соответствует условию, а затем нажмите кнопку ОК. Можно выбрать несколько форматов. Выбранные форматы отображаются на панели Предварительный просмотр .
В Excel Online вы можете удалить повторяющиеся значения.
Удаление повторяющихся значений
При удалении повторяющихся значений единственным эффектом будут значения в диапазоне ячеек или таблице. Другие значения, находящиеся за пределами диапазона ячеек или таблицы, не изменяются и не перемещаются. При удалении дубликатов сохраняется первое вхождение значения в списке, а также удаляются другие идентичные значения.
Важно: Вы всегда можете нажать кнопку отменить , чтобы вернуть данные после удаления дубликатов. С другой стороны, перед удалением повторяющихся значений рекомендуется скопировать исходный диапазон ячеек или таблицы на лист или в другую книгу.
Выполните указанные ниже действия.
Выделите диапазон ячеек или убедитесь в том, что активная ячейка находится в таблице.
На вкладке данные нажмите кнопку Удалить дубликаты .
В диалоговом окне Удаление дубликатов снимите флажок для столбцов, в которых не нужно удалять повторяющиеся значения.
Примечание: Данные будут удалены из всех столбцов, даже если на этом этапе не будут выделяться все столбцы. Например, если выбрать Столбец1 и Столбец2 (но не Столбец3), то «Key», использованный для поиска дубликатов, — это значение обоих Столбец1 & Столбец2. При обнаружении дубликата в Столбец1 и Столбец2 вся строка будет удалена, включая данные из Столбец3.
Нажмите кнопку ОК, и появится сообщение о том, сколько повторяющихся значений было удалено. Нажмите кнопку ОК , чтобы закрыть сообщение.
Примечание: Если вы хотите вернуться к данным, просто нажмите кнопку отменить (или нажмите клавиши CTRL + Z на клавиатуре).
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).
Excel — как удалить дубликаты но оставить уникальные значения?
Всем добрый вечер! Случалось ли Вам когда нибудь работать с данными в excel строковое значение которых переваливает за пару десятков тысяч? А вот мне человеку который создает и продвигает сайты и интернет магазины приходится сталкиваться достаточно часто, особенно когда дело касается загрузки и выгрузки данных от поставщика на сайт интернет магазина. Данная заметка родилась не на пустом месте, а прямо так сказать с пылу жару! Сегодня делал загрузку на свой интернет магазин по интим тематике (см портфолио) и после того как скачал прайс от поставщика и открыв его в excel (перед загрузкой на сайт я сначала все сверяю, на случай ошибок и случайных изменений столбцов со стороны поставщика) и увидел что из 25 тыс строк более 6-8 тыс являются дубликатами, зачем и почему так делает поставщик мы сейчас обсуждать не будем, на это не хочется тратить не сил, ни времени, а просто понимаем, что так сделал программист и по другому это делать нельзя!
После долгих колупаний решил выложить Вам инструкцию как удалить дубли строк без сдвига значений вверх.
Удаление дубликатов в Microsoft Excel
Для меня человека который проводит время в отпуске и работает с мобильного интернета скорость которого измеряется от 1-2 мегабита, прокачивать в пустую такое кол-во товара с фотографиями смысла не имеет и время пустое и трафика сожрет не мало, поэтому решил повторяющиеся товары просто удалить и тут столкнулся с тем, что удалить дублирующиеся значения в столбце не так то и просто, потому как стандартная функция excel 2010 делает это топорно и после удаления дубликата двигает вверх нижние значения и в итоге у нас все перепутается в документе и будет каша.
В данной статье будет представлено два варианта решения проблемы.
1 Вариант — Стандартная функция в эксель — Удалить дубликаты
Я не могу пропустить этот вариант, хоть он и самый примитивный но может это то, что именно Вы искали для своей ситуации, поэтому давайте рассмотрим тот функционал который идет из коробки самого экселя
Для этого выделим те столбцы или область в какой надо удалить дубликаты и зайдем в меню Данные и потом выберем Удалить дубликаты, после чего у нас удаляться дубликаты, но будет сдвиг ячеек, если для вас это не критично, то этот способ Ваш!
2 Вариант — Пометить дубликаты строк в Лож или Истина
Этот вариант самый простой и отсюда сразу вылетает птичка которая ограничит этот вариант в действии, а именно в том, что им можно воспользоваться если у вас все дублирующие значения идут по порядку, а не в разнобой по всему документу
для примера возьмем два столбика с данными, в одном (пример1) дублирующие значения повторяются, а в (примере2) в разнобой и не идут друг за другом.
В примере1 мы должны в стоящей рядом ячейки нажать знак ровно и выбрать первое и нижние значение что бы формула была такая:
и нажимаем энтер, и у нас в этой ячейки в зависимости от данных должно появится значение Лож или Истина
ЛОЖ — если А1 не будет равно А2
Истина — если А1 будет ровно А2
если применить этот вариант на столбце Пример2, то как вы поняли везде будет значение Лож
Этот вариант хорош только в редких случаях, но его тоже надо знать, его ограничение в том что эта формула сравнивает себя и следующее значение, тоесть она применима только одновременно к двум ячейкам, а не ко всему столбцу. Но если у вас данные как с столбце Пример2, тогда читайте дальше )
3 Вариант — Удалить дубликаты в столбе
Вот этот вариант уже более сложный, но он решит вашу проблему на все 100% и сразу ответит на все вопросы.
Как видим у нас имеется столбец в котором все значения идут не по порядку и они перемешаны
Мы как и в прошлый раз в соседнюю ячейку вставляем следующую формулу
После применения которой у нас будет либо пуская ячейка, либо значение из ячейки напротив.
из нашего примера сразу видно, что в этом столбце было два дубля и эта формула нам значительно сэкономила времени, а дальше фильтруем второй столбец и в фильтре выбираем пустые ячейки и дальше удаляем строки, вот и все)
Таким образом я в документе который который скачал у поставщика создал перед артикулом пустой столбце и далее применил эту формулу и после отфильтровав получил документ который был на 6-8 тыс строк меньше и самое главное после удаление дубликатов у меня не поднимались значения вверх, все стояло на своих местах
Надеюсь статья была полезная, если не поняли я прикрепил к каналу видео смотрите его или задавайте вопросы,
Извлечение уникальных элементов из диапазона
Способ 1. Штатная функция в Excel 2007
Начиная с 2007-й версии функция удаления дубликатов является стандартной — найти ее можно на вкладке Данные — Удаление дубликатов (Data — Remove Duplicates) :
В открывшемся окне нужно с помощью флажков задать те столбцы, по которым необходимо обеспечивать уникальность. Т.е. если включить все флажки, то будут удалены только полностью совпадающие строки. Если включить только флажок заказчик, то останется только по одной строке для каждого заказчика и т.д.
Способ 2. Расширенный фильтр
Если у вас Excel 2003 или старше, то для удаления дубликатов и вытаскивания из списка уникальных (неповторяющихся) элементов можно использовать Расширенный фильтр (Advanced Filter) из меню (вкладки) Данные (Data) .
Предположим, что у нас имеется вот такой список беспорядочно повторяющихся названий компаний:
Выбираем в меню Данные — Фильтр — Расширенный фильтр (Data — Filter — Advanced Filter) . Получаем окно:
- Выделяем наш список компаний в Исходный диапазон (List Range) .
- Ставим переключатель в положение Скопировать результат в другое место (Copy to another location) и указываем пустую ячейку.
- Включаем (самое главное!) флажок Только уникальные записи(Uniqe records only) и жмем ОК.
Получите список без дубликатов:
Если требуется искать дубликаты не по одному, а по нескольким столбцам, то можно предварительно склеить их в один, сделав, своего рода, составной ключ с помощью функции СЦЕПИТЬ (CONCATENATE) :
Тогда дальнейшая задача будет сводиться к поиску дубликатов уже в одном столбце.
Способ 3. Выборка уникальных записей формулой
Чуть более сложный способ, чем первые два, но зато — динамический, т.е. с автоматическим пересчетом, т.е. если список редактируется или в него дописываются еще элементы, то они автоматически проверяются на уникальность и отбираются. В предыдущих способах при изменении исходного списка нужно будет заново запускать Расширенный фильтр или жать на кнопку Удаление дубликатов.
Итак, снова имеем список беспорядочно повторяющихся элементов. Например, такой:
Первая задача — пронумеровать всех уникальных представителей списка, дав каждому свой номер (столбец А на рисунке). Для этого вставляем в ячейку А2 и копируем затем вниз до упора следующую формулу:
В английской версии это будет:
Эта формула проверяет сколько раз текущее наименование уже встречалось в списке (считая с начала), и если это количество =1, т.е. элемент встретился первый раз — дает ему последовательно возрастающий номер.
Для упрощения адресации дадим нашим диапазонам (например, исходя из того, что в списке может быть до 100 элементов) имена. Это можно сделать в новых версиях Excel на вкладке Формулы — Диспетчер имен (Formulas — Name manager) или в старых версиях — через меню Вставка — Имя — Присвоить (Insert — Name — Define) :
- диапазону номеров (A1:A100) — имя NameCount
- всему списку с номерами (A1:B100) — имя NameList
Теперь осталось выбрать из списка NameList все элементы имеющие номер — это и будут наши уникальные представители. Сделать это можно в любой пустой ячейке соседних столбцов, введя туда вот такую формулу с известной функцией ВПР (VLOOKUP) и скопировав ее вниз на весь столбец:
Эта формула проходит сверху вниз по столбцу NameCount и выводит все позиции списка с номерами в отдельную таблицу:
Продолжим идеи, изложенные в статье Отбор уникальных значений в MS EXCEL . Сначала отберем из таблицы только те строки, которые удовлетворяют заданным условиям, затем из этих строк выберем только уникальные значения из первого столбца. При добавлении новых строк в таблицу, список уникальных значений будет автоматически обновляться.
Пусть в имеется таблица с повторяющимися значениями в первом столбце, например список названий компаний.
Отберем из таблицы только те строки, которые удовлетворяют заданным условиям, которые приведены в табличке ниже.
Отобранные строки выделим Условным форматированием .
Затем из этих строк выберем только уникальные значения из первого столбца, т.е. только те компании, у которых Стоимость и Дата контракта находится в заданных диапазонах.
Решение приведено в файле примера на листе Уникальные. В его основе лежит формула массива из статьи Отбор уникальных значений (убираем повторы из списка) в MS EXCEL , которая использовалась для игнорирования пропусков в списке. После небольших изменений, формула для отбору уникальных с учетом 4-х условий выглядит так:
= ЕСЛИОШИБКА(ИНДЕКС($A$7:$A$25;ПОИСКПОЗ(0; ЕСЛИ((($B$7:$B$25>=$F$7)+($B$7:$B$25<=$F$8)+($C$7:$C$25>=$G$7)+($C$7:$C$25<=$G$8))=4; СЧЁТЕСЛИ($I$6:I6;$A$7:$A$25);»»);0));»»)
или так
= ЕСЛИОШИБКА(ИНДЕКС($A$7:$A$25;ПОИСКПОЗ(0; ЕСЛИ((($B$7:$B$25>=$F$7)*($B$7:$B$25<=$F$8)*($C$7:$C$25>=$G$7)*($C$7:$C$25<=$G$8)); СЧЁТЕСЛИ($I$6:I6;$A$7:$A$25);»»);0));»»)
Примечание . В формуле использована функция ЕСЛИОШИБКА() , которая работает только начиная с версии MS EXCEL 2007. О том как ее заменить, читайте в статье Функция ЕСЛИОШИБКА() в MS EXCEL .
Если значения Стоимости и Даты контракта соответствуют 4-м условиям, то при отборе уникальных это название компании учитывается. Если хотя бы не выполняется 1 условие, то название компании не учитывается. Если нужно ограничиться, например 2-мя условиями (только Стоимость), то удалите часть формулы +($C$7:$C$25>=$G$7)+($C$7:$C$25<=$G$8) , а 4 замените на 2. Решение для одного условия приведено на отдельном листе файла примера.
Не забудьте, что формулу массива нужно вводить в ячейку EXCEL с помощью одновременного нажатия CTRL+SHIFT+ENTER , затем ее нужно скопировать вниз, например, с помощью Маркера заполнения .
СОВЕТ: Список уникальных значений можно создать разными способами, например, с использованием Расширенного фильтра (см. статью Отбор уникальных строк с помощью Расширенного фильтра ), Сводных таблиц (см. лист Сводная таблица в файле примера ) или через меню Данные/ Работа с данными/ Удалить дубликаты . У каждого способа есть свои преимущества и недостатки. Но, в этой статье нам требуется, чтобы при добавлении новых строк в исходную таблицу, список уникальных значений автоматически обновлялся, поэтому здесь построен список с использованием формул.
Примечание . Как видно из рисунков выше, в файле примера использованы Элементы управления формы для управления выделением строк с помощью Условного форматирования .
Одно условие отбора
В файле примера добавлено 2 листа с примерами отбора значений по 1 критерию (текстовый и числовой).
Фильтр уникальных значений или удаление повторяющихся значений
Смотрите также (или после вставки), собственно увидел, чтоikki и фильтр-Дополнительно-Ставим галку Define) предыдущих способах при список беспорядочно повторяющихся Рога и копытцаДля создания списка уникальных всех повторяющиеся значений а затем развернитестиль используется для поискаПоскольку данные будут удаленыгруппа списка уникальных значений.Примечание: в эксель, в решается просто, а: эт куда сабрался? Только уникальные записи-Переключатель
: изменении исходного списка названий компаний:4. Установите серый флажок
-
значений введем в исходной таблицы, а узел во всплывающем щелкните маленькую стрелку дубликатов «ключ» — окончательно, перед удалением
-
Сортировка и фильтр Есть важные различия,Мы стараемся как столбце бы остались сейчас сомневаюсь, когда ста-ять!!! скопировать результат в
-
диапазону номеров (A1:A100) - нужно будет зановоВыбираем в меню Выделите компанию ячейку только из тех, окне еще разУсловное форматирование
Сведения о фильтрации уникальных значений и удалении повторяющихся значений
значение ОБА Столбец1 повторяющихся значений рекомендуется). однако: при фильтрации можно оперативнее обеспечивать только уникальные значения? разговор пошел прорановато ещё. другое место. Указываете имя запускатьДанные — Фильтр -5. В исходнойG5 у которых соответствующие
. Выберите правилои затем щелкните & Столбец2. Если дубликат скопировать исходный диапазонВ поле всплывающего окна уникальных значений повторяющиеся вас актуальными справочнымиEwe 2e¶ coлнышкоcbetиточеньярко* макросы от старожилSerge_007 диапазоны Исходный иNameCountРасширенный фильтр Расширенный фильтр таблице будут выделеныформулу массива: значения в соседних и нажмите кнопкуЭлемент правила выделения ячеек находится в этих ячеек или таблицу
Расширенный фильтр значения будут видны материалами на вашем: В Excel выделить и ветеранов. Вот: Пора-пора… Куда поместить результат.всему списку с номерамиили жать на(Data — Filter - 2 строки содержащие=ЕСЛИОШИБКА(ИНДЕКС(Компании;
Фильтрация уникальных значений
столбцах удовлетворяют определенному
-
Изменить правилои выберите столбцах, затем всей в другой лист
-
выполните одно из только временно. Тем языке. Эта страница диапазон ячеек с я и подумал,Простую задачу неastradewa
-
(A1:B100) — имя кнопку Advanced Filter) название компании ООО
ПОИСКПОЗ(0;ЕСЛИ(E$5=Тип_контракта;0;1)+СЧЁТЕСЛИ($G$4:G4;Компании);0) критерию., чтобы открыть
-
Повторяющиеся значения строки будут удалены, или книгу.
указанных ниже действий. не менее удаление
-
переведена автоматически, поэтому данными, «Данные» - может чего не
-
могу решить…: Serge_007, добрый вечер,NameListУдаление дубликатов.
-
. Рога и копытца );»»)Разовьем идеи, изложенные в всплывающее окно. включая другие столбцы Выполните следующие действия.
-
Чтобы отфильтровать диапазон ячеек повторяющихся значений означает, ее текст может «Фильтр» — «Расиренный догоняю?
astradewa читая форумы Excel,Теперь осталось выбрать из
Удаление повторяющихся значений
Итак, снова имеем списокПолучаем окно: с типом контрактаПри выборе в ячейке статье Отбор уникальныхИзменение правила форматированияВведите значения, которые вы в таблицу илиВыделите диапазон ячеек или или таблицы в что вы окончательное содержать неточности и фильтр» — поставитьalx74
: ikki, доброе утро, в том числе списка беспорядочно повторяющихся элементов.В нем: РублевыйE5
значений (убираем повторы).
-
. хотите использовать и диапазон. убедитесь, что активная
-
программе: удаление повторяющихся значений. грамматические ошибки. Для галочку «Только уникальные: Во вложении файл макрос или UDF и Ваш, я
-
NameList Например, такой:
-
Выделяем наш список компанийСозданная структура является разновидностьюзначения Валютный, всеПусть исходная таблица содержит
-
В разделе нажмите кнопку Формат.Нажмите кнопку ячейка находится в
-
ВыберитеПовторяющееся значение входит в нас важно, чтобы значения»
и скрин. подойдут, если не понял что Вывсе элементы имеющиеПервая задача — пронумеровать в Связанного списка. компании, НЕ поставляющие три столбца: одинвыберите тип правила
Расширенное форматированиеОК таблице.фильтровать список на месте котором все значения эта статья былаВалерийSerge_007 жалко, можно и один из главных номер — это всех уникальных представителейИсходный диапазон (List Range)СОВЕТ: по валютным контрактам, с названиями компаний,нажмите кнопкуВыполните следующие действия., и появится сообщение,
-
-
На вкладке. в по крайней вам полезна. Просим: Есть несколько методов.: Это не совсем то и другое «формулистов» и будут наши списка, дав каждому.
-
Другим подходом к будут проигнорированы, другой с указаниемФорматировать только уникальные или
Удаление дубликатов с промежуточными итогами или структурированных данных проблем
Выделите одну или несколько чтобы указать, сколькоданныеЧтобы скопировать в другое мере одна строка вас уделить пару1. использовать расширенный верно (для общего т.с., поэтому обратился уникальные представители. Сделать свой номер (столбец
Условное форматирование уникальных или повторяющихся значений
Ставим переключатель в положение решению этой задачии список уникальных значений типа контракта (валютный повторяющиеся значения ячеек в диапазоне,
повторяющиеся значения были
нажмите кнопку
-
место результаты фильтрации: идентичны всех значений секунд и сообщить, фильтр и там
-
ТС не заполнил развития) к Вам. это можно в А на рисунке).Скопировать результат в другое является использование Сводных будет сформирован только или рублевый), третий. таблице или отчете
-
удалены или остаютсяУдалить повторенияНажмите кнопку
в другую строку.
помогла ли она
-
поставить галочку «Только пример, но интересуютСпасибо за помощь.А вопрос -
-
любой пустой ячейке Для этого вставляем место (Copy to таблиц. из тех компаний, с суммами продажВ списке сводной таблицы. количества уникальных значений.(в группеКопировать в другое место Сравнение повторяющихся значений
-
вам, с помощью уникальные записи»
-
значения из ДИАПАЗОНАAlex_ST переделать формулу так, соседних столбцов, введя в ячейку А2 another location)Начиная с 2007-й версии
-
которые имеют контракты по контракту. СтолбецФормат всеНа вкладке Нажмите кнопкуРабота с данными. зависит от того, кнопок внизу страницы. 2. использовать функцию в столбце: Александр, чтобы она выбирала туда вот такую и копируем затеми указываем пустую функция удаления дубликатов в валюте. Также с названиями компанийИзмените описание правилаГлавнаяОК).В поле
-
-
что отображается в Для удобства также «создать сводную таблицу».RANastradewa и выводила в
-
формулу с известной вниз до упора ячейку. является стандартной - будут подсчитаны суммарные содержит повторяющиеся значения,выберитев группе
-
, чтобы закрытьВыполните одно или несколькоКопировать ячейке, не базового приводим ссылку наА после этого
-
: Я думаю, делопросит столбец уникальные значения функцией ВПР (VLOOKUP) и следующую формулу:Включаем (самое главное!) флажок найти ее можно продажи и количество т.к. (см. файлуникальныеСтили сообщение. следующих действий.введите ссылку на
support.office.com
Отбор уникальных значений на основании значений из соседнего столбца в MS EXCEL
значения, хранящегося в оригинал (на английском копировать в буфер в неудачном примере.формулами из диапазона А2:Е20 скопировав ее вниз=ЕСЛИ(СЧЁТЕСЛИ(B$1:B2;B2)=1;МАКС(A$1:A1)+1;»»)Только уникальные записи на вкладке продаж по каждой примера).илищелкните стрелку дляU тменить отменить изменения,В разделе
ячейку. ячейке. Например, если языке) .
из ExcelЗаполнен 1 столбец,, поэтому код VBA (у The_Prist формула на весь столбец:В английской версии это(Uniqe records only)Данные — Удаление дубликатов компании (столбцыСоздадим таблицу, состоящую толькоповторяющиесяУсловного форматирования
Задача
щелкните (или нажатьстолбцыКроме того нажмите кнопку у вас естьВ Excel существует несколькоЁжж а должно быть его вряд ли извлекает уникальные из=ЕСЛИ(МАКС(NameCount)
Решение
будет:и жмем (Data — RemoveHI из строк с.и выберите пункт клавиши Ctrl +выберите один или несколькоСвернуть диалоговое окно то же значение способов фильтр уникальных: Добрый день! Подскажите, 4. устроит. столбца в столбец,
или в английской версии=IF(COUNTIF(B$1:B2;B2)=1;MAX(A$1:A1)+1;»»)ОК Duplicates)).
уникальными названиями компаний.Нажмите кнопкуУправление правилами Z на клавиатуре). столбцов.
временно скрыть всплывающее
даты в разных
значений — или
как выбрать уникальныеalx74Но на всякий а надо из Excel:Эта формула проверяет сколько
.:1. Выберите в желтой Уникальные значения будемФормат, чтобы открытьНельзя удалить повторяющиеся значенияЧтобы быстро выделить все окно, выберите ячейку ячейках, один в удаление повторяющихся значений:
Тестируем
значения по двум: Теперь понял, спасибо.
случай, если формулами диапазона).=IF(MAX(NameCount) раз текущее наименованиеПолучите список без дубликатов:В открывшемся окне нужно
ячейке значение Рублевый; выбирать не издля отображения во всплывающее окно из структуры данных,
столбцы, нажмите кнопку на листе и формате «3/8/2006», аЧтобы фильтр уникальных значений, столбцам с более (невнимательно прочитал первый
так никто иSerge_007Эта формула проходит сверху уже встречалось вЕсли требуется искать дубликаты
с помощью флажков2. В столбце всех названий компаний, всплывающем окнеДиспетчер правил условного форматирования
структурированный или, вВыделить все
нажмите кнопку другой — как нажмите кнопку поздней датой? Данные пост А2:Е20). не решит, то:
вниз по столбцу списке (считая с
не по одному,
задать те столбцы,G а сначала изФормат ячеек
excel2.ru
Извлечение уникальных элементов из диапазона
Способ 1. Штатная функция в Excel 2007
. котором содержится промежуточные.Развернуть «8 мар «2006данных > с более раннейastradewa в «Готовых решениях»
astradewaNameCount начала), и если а по нескольким по которым необходимобудет выведен список компаний с типом.Выполните одно из действий, итоги. Чтобы удалитьЧтобы быстро удалить все. г. значения должныСортировка и фильтр >
Способ 2. Расширенный фильтр
датой в новой: Спасибо Всем ответившим я выкладывал макрос, спасибо за лестноеи выводит все это количество =1, столбцам, то можно обеспечивать уникальность. Т.е. названий компаний с контракта Валютный, затемВыберите номер, шрифт, границы
указанных ниже. дубликаты, необходимо удалить столбцы, нажмите кнопкуУстановите флажок
быть уникальными. Дополнительно таблице не нужны.Исходная за помощь, буду NoDups_in_Range мнение, но думаю позиции списка с
т.е. элемент встретился
- предварительно склеить их если включить все типом контракта – — Рублевый.
- и заливка формат,Чтобы добавить условное форматирование, структуры и промежуточныеСнять выделениетолько уникальные записиУстановите флажок перед удалением
- . таблица будет увеличиваться. разбираться в предоставленномMichael_S что здесь я номерами в отдельную
первый раз -
в один, сделав, флажки, то будут Рублевый:Для удобства создадим динамические который нужно применять, нажмите кнопку итоги. Для получения., а затем нажмите дубликаты:Чтобы удалить повторяющиеся значения,
Файл прикрепил. материале.: Да не такая не помогу…
Способ 3. Выборка уникальных записей формулой
таблицу: дает ему последовательно своего рода, составной удалены только полностью- в исходной диапазоны: Компании (названия если значение вСоздать правило дополнительных сведений отображаетсяЕсли диапазон ячеек иликнопку ОКПеред удалением повторяющиеся нажмите кнопкуKuklPPS: alx74-Расширенный фильтр она уж иБолезнь не позволяетastradewa возрастающий номер.
ключ с помощью совпадающие строки. Если таблице Условным форматированием
компаний из столбца ячейке удовлетворяет условиюдля отображения во Структура списка данных таблица содержит много. значения, рекомендуется установитьданные > Работа с: Сортируете по первым не подходит потому
простая. Здесь уже
мне использовать мозг: На сайте www.excel-vba.ru
Для упрощения адресации дадим
функции включить только флажок будут выделены строкиА и нажмите кнопку всплывающем окне на листе «и» столбцов, чтобы выбратьУникальные значения из диапазона для первой попытке
данными трем полям(дата от что слишком много решали , и на полную катушку, The_Prist (Щербаков Дмитрий) нашим диапазонам (например,СЦЕПИТЬ (CONCATENATE) заказчик, то останется с типом контракта), Тип_контракта (столбецОКСоздание правила форматирования удалить промежуточные итоги. несколько столбцов только скопирует на новое выполнить фильтрацию по > новых к старым). телодвижений
- формулами, и макросом. а стандартного решения нашёл формулу вывода
- исходя из того,: только по одной
Рублевый;B. Вы можете выбрать.Примечание: может проще нажмите место. — или применитьУдалить повторения Далее данные -, а надоalx74 формулами Вашей задачи уникальных значений из что в списке
Тогда дальнейшая задача будет
строке для каждого- в столбце
) и Продажи (столбец
более одного формата.Убедитесь, что выбран соответствующий Условное форматирование полей в кнопкуПри удалении повторяющихся значений условное форматирование на.
planetaexcel.ru
Вывод уникальных значений из диапазона в столбец
удалить дубликаты. Все. чтобы при заполнении: Добрый день. Подскажите, нет столбца в назначенный может быть до сводиться к поиску заказчика и т.д.HС Форматы, которые можно лист или таблица области «Значения» отчетаСнять выделение всех
на значения в — для подтвержденияЧтобы выделить уникальные или
Можете записать макрорекордером. таблицы данными может я чегоastradewa столбец. Помогите переделать 100 элементов) имена. дубликатов уже вЕсли у вас Excel
будут выведены суммарные). Если в таблицу выбрать, отображаются на в списке сводной таблицы пои выберите в разделе диапазоне ячеек или добиться таких результатов, повторяющиеся значения, команда_Boroda_
автоматом в назначенный не понимаю: Почему: Serge_007, спасибо за формулу так, чтобы Это можно сделать одном столбце. 2003 или старше, продажи отобранных компаний будет добавлена новая панелиПоказать правила форматирования для
уникальным или повторяющимсястолбцы таблице — единственный предполагается, что уникальныеУсловного форматирования: Так нужно? Немассивные столбец выводились уникальные
нельзя решить Расширенным участие, желаю Вам она выбирала и в новых версияхЧуть более сложный способ, то для удаления
(по данному типу строка, то еепредварительного просмотраизменения условного форматирования, значениям невозможно.выберите столбцы.
эффект. Другие значения значения.
в группе формулы
значения. фильтром? Пример простой скорейшего выздоровления и
выводила в столбец Excel на вкладке чем первые два,
дубликатов и вытаскивания
контракта); значения будут автоматически
. начинается. При необходимости
Быстрое форматированиеПримечание: вне диапазона ячеекВыполните следующие действия.стильДля умной таблицыЕщё раз всем и фильтр там
вообще кавказского здоровья
уникальные значения изФормулы — Диспетчер имен но зато - из списка уникальных- в столбце включены в ДинамическиеИмеется таблица, состоящая их выберите другой диапазон
Выполните следующие действия. Данные будут удалены из или таблице неВыделите диапазон ячеек илина вкладке «200?’200px’:»+(this.scrollHeight+5)+’px’);»>ПРОСМОТР(;-1/ЕОШИБКА(ПОИСКПОЗ(Таблица2[[Покупатель]:[Покупатель]]&Таблица2[[Товар]:[Товар]];$F$2:$F2&$G$2:$G2;));Таблица2[Покупатель]) Большое спасибо.
работает. Пробовал вчераи долголетия диапазона А2:Е20, если (Formulas — Name динамический, т.е. с (неповторяющихся) элементов можно
I диапазоны и нижеследующие нескольких столбцов. В ячеек, нажав кнопкуВыделите одну или несколько всех столбцов, даже будет изменить или убедитесь, что активнаяГлавнаяесли без протягиванияКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>ПРОСМОТР(;-1/ЕОШИБКА(ПОИСКПОЗ(Таблица2[Покупатель]&Таблица2[Покупатель];$F$2:$F2&$G$2:$G2;));Таблица2[Покупатель])В буфере хранится колонка и в посте
Serge_007 это возможно. Спасибо manager) автоматическим пересчетом, т.е. использоватьбудет выведено количество формулы не придется одном из столбцовСвернуть ячеек в диапазоне, если вы не переместить. При удалении
ячейка находится в».Для обычной таблицыКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>ПРОСМОТР(;-1/$D$3:$D$99/ЕОШИБКА(ПОИСКПОЗ($A$3:$A$99&$B$3:$B$99;$F$2:$F2&$G$2:$G2;));A$3:A$99)
со значениями, скопированными 2 написал об: Спасибо!
за помощь.или в старых если список редактируетсяРасширенный фильтр (Advanced Filter)
продаж (кол-во контрактов модифицировать. имеются повторяющиеся текстовые
во всплывающем окне таблице или отчете выбрали всех столбцов
повторяющихся данных, хранящихся таблице.Фильтр уникальных значений иВсе это можно
из экселя. Многие этом, правда ТСНо видимо пораalx74 версиях — через
или в негоиз меню (вкладки) выбранного типа).Также создадим в ячейке значения. Создадим список,относится к сводной таблицы.
на этом этапе. в первое значениеНажмите кнопку
удаление повторяющихся значений вовнутрь ЕСЛИОШИБКА засунуть
excelworld.ru
Как оставить уникальные значения в колонке в эксель?
значение в этой промолчал. на свалку: Что мешает использовать меню дописываются еще элементы,Данные (Data)3. Теперь вE5 состоящий только извременно скрыть ее.
На вкладке Например при выборе в списке, ноданные > Дополнительно являются две сходныеЁжж колонке повторяются. Можноalx74
ikki Расширенный фильтр?
Вставка — Имя - то они автоматически. зеленой ячейке
Выпадающий (раскрывающийся) список уникальных текстовых значений.
Выберите новый диапазонГлавная Столбец1 и Столбец2,
выбрать уникальные значения по двум столбцам с поздней датой (Макросы/Sub)
других идентичных значений( задачи, поскольку цель: Большое спасибо! ли как-то сделать,:: макрос или UDFДля 2007 и Присвоить проверяются на уникальность
Предположим, что у нас
Е12 с двумя значениями: Уникальные значения будем ячеек на листе,в группе но не Столбец3 удаляются.
в — для представленияВопрос снят.
чтобы при вставкеSerge_007
не подходят?
2010: Вкладка Данные-Сортировка
(Insert — Name - и отбираются. В
имеется вот такойвыберите компанию ООО
Валютный и Рублевый.
excelworld.ru
выбирать не из