Як видалити дублікати в комірці в Excel

  • Поділитися Цим
Michael Brown

Існує три способи пошуку та видалення дублікатів у комірці в Excel. Просто виберіть той, який найкраще підходить для вас.

Коли мова йде про видалення дублікатів значень або рядків, Microsoft Excel пропонує безліч різних варіантів. Але коли мова йде про видалення ідентичного тексту в межах даної комірки, Excel не пропонує... нічого. Ні інструментів, ні функцій, ні формул, нічого. Чи завадить це нам досягти нашої мети? Ні в якому разі. Якщо в Excel немає потрібної нам функції, давайте напишемо власну :)

    Як видалити повторювані слова в комірці Excel

    Проблема Ви маєте однакові слова або текстові рядки в комірці і хочете видалити другий і всі наступні повтори.

    Рішення користувацька функція або макрос VBA.

    Користувацька функція для видалення дублікатів в комірці

    Для усунення дублюючого тексту в комірці можна використовувати наступну призначену для користувача функцію (UDF), що має назву RemoveDupeWords :

    Function RemoveDupleWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ("Scripting.Словник") dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> 0 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Як вставити код функції в робочу книгу

    Щоб додати наведений вище код у свій Excel, потрібно зробити ось що:

    1. Натисніть Alt + F11, щоб відкрити редактор Visual Basic.
    2. На лівій панелі натисніть правою кнопкою миші ThisWorkbook та оберіть Вставка > Модуль .
    3. Вставте вищевказаний код в поле Код вікно.

    Для отримання додаткової інформації див. статтю Як вставити код VBA в Excel.

    Синтаксис функції RemoveDupeWords

    Новостворена функція видалення дублікатів тексту в комірці має наступний синтаксис:

    RemoveDupeWords(text, [роздільник])

    Де:

    • Текст (обов'язково) - рядок або комірка, з якої потрібно видалити текст, що повторюється.
    • Розмежувач (необов'язково) - роздільник, яким відокремлюється текст, що повторюється. У разі його відсутності замість роздільника використовується пробіл.

    Функція полягає в тому, щоб не чутливий до регістру що означає, що малі та великі літери розглядаються як однакові символи.

    Як використовувати функцію RemoveDupeWords

    Після додавання коду функції до робочої книги її можна використовувати у формулах так само, як і вбудовані функції Excel.

    Просто почніть вводити ім'я функції після знаку рівності, і вона з'явиться у підказці формул. Двічі клацніть на функції, і вона буде вставлена в комірку. Визначте аргументи, введіть закриваючу дужку, натисніть Enter, і ваша формула буде завершена.

    Наприклад, щоб видалити повторювані слова, розділені комою та пробілом, з клітинки A2, введіть наведену нижче формулу в клітинку B2, а потім перетягніть її вниз через стільки клітинок, скільки потрібно:

    =RemoveDupeWords(A2, ", ")

    В результаті ви отримаєте список унікальних слів або підрядків, розділених символом кома та пробіл :

    Якщо ви бажаєте отримати список через кому, то використовуйте тільки кома для делімітатора:

    =RemoveDupeWords(A2, ",")

    Якщо ваші вихідні дані розділені символом простір другий аргумент повинен бути " " або опускатися:

    =RemoveDupeWords(A2)

    Як і будь-яка інша функція Excel, наш UDF перераховує автоматично при зміні вихідних даних, тому ваші результати завжди будуть актуальними.

    Макрос VBA для видалення повторюваного тексту з декількох комірок одночасно

    Якщо ви хочете видалити повторюваний текст з декількох комірок за один раз, ви можете викликати команду RemoveDupeWords У цьому випадку роздільник жорстко кодується, і вам доведеться оновлювати код макросу щоразу, коли роздільник змінюється. Крім того, ви можете написати кілька варіантів коду для найпоширеніших роздільників, наприклад, пробіл, кома або кома і пробіл, і дати своїм макросам змістовні імена, наприклад, "пробіл RemoveDupesDelimSpace .

    Код макросу наступний:

    Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    У вищенаведеному коді розділювачем є кома та пробіл Щоб використовувати інший роздільник, замініть ", " на інший(і) символ(и) у цьому рядку коду:

    значення комірки = RemoveDupeWords(значення комірки, ", ")

    Примітка: для роботи макросу його код і код функції RemoveDupeWords повинні бути розміщені в одному модулі.

    Як використовувати макрос

    Вставте код макросу у власну робочу книгу або відкрийте наш зразок робочої книги з кодом, а потім виконайте наступні кроки для запуску макросу.

    1. Виділіть діапазон комірок, з яких потрібно видалити текст, що повторюється.
    2. Натисніть Alt + F8, щоб відкрити вікно Макрос діалогове вікно.
    3. У списку макросів виберіть RemoveDupeWords2 .
    4. Натисніть Біжи .

    Більш детально див. статтю Як запустити макрос в Excel.

    Зауваження. Оскільки дія макросу не можна скасувати ми настійно рекомендуємо зберігати робочу книгу безпосередньо перед використанням макросу. Таким чином, якщо щось піде не так, ви можете просто закрити і знову відкрити робочу книгу, і ви повернетеся точно до того місця, де ви були. Або ви можете просто зробити копію робочого аркуша (аркушів), які можуть бути задіяні макросом.

    Як видалити повторювані символи в комірці

    Проблема Пояснення: Ви маєте декілька входжень одного і того ж символу в комірці, в той час як кожна комірка повинна містити тільки одне входження даного символу.

    Рішення користувацька функція або макрос VBA.

    Користувацька функція видалення символів, що повторюються

    Для видалення символів, що повторюються в комірці зі збереженням тільки перших входжень, можна скористатися наступною призначеною для користувача функцією, яка називається RemoveDupeChars :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

    Для вставки коду функції в робочу книгу необхідно виконати ті ж самі дії, що і в попередньому прикладі.

    Синтаксис функції RemoveDupeChars

    Синтаксис цієї користувацької функції максимально простий - потрібен лише один аргумент:

    RemoveDupeChars(text)

    Де текст рядок або комірка, з якої потрібно видалити повторювані символи.

    Функція полягає в тому, щоб з урахуванням особливостей конкретного випадку і розглядає малі та великі літери як різні символи.

    Як використовувати функцію RemoveDupeChars

    Все, що ми говорили про використання RemoveDupeWords, справедливо для RemoveDupeChars Отже, не вдаючись у теорію, перейдемо одразу до прикладу.

    Щоб видалити повторювані символи з колонки А, починаючи з А2, введіть цю формулу в комірку В2 і скопіюйте її вниз:

    =RemoveDupeChars(A2)

    Як ви можете бачити на зображенні нижче, функція успішно обробляє різні типи символів, включаючи літери, цифри та спеціальні символи:

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

    Макрос VBA для видалення однакових символів з комірки

    Наприклад RemoveDupeWords "Про те, що в Україні не існує жодного закону, який би RemoveDupeChars також може бути викликана з макросу:

    Public Sub RemoveDupleChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupleChars(cell.Value) Next End Sub

    Оскільки цей UDF не використовує жодного роздільника, вам не доведеться вносити жодних змін до коду.

    Примітка: Для роботи макросу його код і код UDF RemoveDupeChars повинні бути розміщені в одному модулі в редакторі VBA.

    Як використовувати макрос

    Припускаючи, що ви вже вставили код макросу в свою робочу книгу або відкрили наш зразок робочої книги, що містить код, запустіть макрос таким чином.

    1. Виділіть діапазон комірок, з яких необхідно видалити символи, що повторюються.
    2. Натисніть Alt + F8, щоб відкрити вікно Макрос діалогове вікно.
    3. У списку макросів виберіть RemoveDupeChars2 .
    4. Натисніть Біжи .

    Видалення дубльованих підрядків за допомогою Ultimate Suite

    На початку цього уроку згадувалося, що Microsoft Excel не має вбудованої функції для видалення дублікатів в комірці. Але в нашому Ultimate Suite вона є!

    Ознайомитися з ним можна в розділі Duplicate Remover у випадаючому меню на сторінці Дані про абіти у вкладці Dedupe Якщо в групі Видалення дубльованих підрядків не відображається у вашому Excel, переконайтеся, що у вас встановлена остання версія Ultimate Suite (безкоштовну пробну версію можна завантажити тут).

    Щоб видалити повторювані слова або текст з декількох клітинок за 5 секунд (по секунді на крок :), ось що потрібно зробити:

    1. Виберіть вихідні дані та запустіть Видалення дубльованих підрядків інструмент.
    2. Вкажіть роздільник .
    3. Визначити, чи потрібно лікувати послідовні роздільники як один (за замовчуванням).
    4. Вибирайте, чи виконувати з урахуванням особливостей конкретного випадку або нечутливий до регістру обшук.
    5. Натисніть Видалити .

    Готово! Ніякої мороки з VBA чи формулами, лише швидкий і точний результат.

    Щоб дізнатися більше про це дивовижне доповнення, відвідайте його домашню сторінку. А ще краще завантажте ознайомчу версію нижче і спробуйте!

    Ось так можна видалити дубльований текст в комірці. Дякую за увагу і сподіваюся побачити вас на нашому блозі наступного тижня!

    Доступні для завантаження

    Приклади видалення дублікатів в комірці (файл .xlsm)

    Ultimate Suite 14-денна повнофункціональна версія (файл .exe)

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.