Како да отстраните дупликати во ќелија во Excel

  • Споделете Го Ова
Michael Brown

Постојат три начини за наоѓање и бришење дупликати во ќелија во Excel. Само изберете го оној кој најдобро функционира за вас.

Кога станува збор за отстранување на дупликатните вредности или редови, Microsoft Excel нуди низа различни опции. Но, кога станува збор за отстранување на идентичен текст во дадена ќелија, Excel не дава... ништо. Без алатки, без карактеристики, без формули, без ништо. Дали тоа ќе не спречи да ја постигнеме нашата цел? Во никој случај. Ако Excel ја нема функцијата што ни треба, ајде да одиме да ја напишеме нашата сопствена :)

    Како да ги отстраните повторените зборови во ќелијата на Excel

    Проблем : Ги имате истите зборови или текстуални низи во ќелијата и би сакале да го отстраните вториот и сите наредни повторувања.

    Решение : приспособена функција дефинирана од корисникот или VBA макро.

    Функција дефинирана од корисникот за отстранување на дупликати во ќелија

    За елиминирање на дупликат текст во ќелија, можете да ја користите следнава функција дефинирана од корисникот (UDF) , именувана како RemoveDupeWords :

    Функција RemoveDupeWords(текст како стринг , изборен разграничувач како стринг = " " ) Како речник за затемнување на низата како објект Дим х, дел Поставете речник = КреирајОбјект ( "Скриптинг.Речник" ) речник .CompareMode = vbTextCompare For Every x In Split(текст, разграничувач) дел = Trim(x) If part "" And not dictionary.Exists(дел) Потоа речник.Додај дел, Nothing End If Next If dictionary.Count > 0 Потоа RemoveDupeWords = Join(dictionary.keys,разграничувач) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Како да го вметнете кодот на функцијата во вашата работна книга

    За да го додадете горниот код во вашиот Excel, ова е она што треба да го направите:

    1. Притиснете Alt + F11 за да го отворите уредникот на Visual Basic.
    2. На левиот панел, кликнете со десното копче This Workbook и изберете Insert > Модул .
    3. Залепете го горниот код во прозорецот Code .

    За повеќе информации, погледнете Како да вметнете VBA код во Excel.

    Синтакса на функцијата RemoveDupeWords

    Нашата новосоздадена функција за отстранување на дупликат текст во ќелија ја има следнава синтакса:

    RemoveDupeWords(текст, [разграничувач])

    Каде :

    • Текст (задолжително) - низа или ќелија од која сакате да го избришете повторениот текст.
    • Одделувач (изборно) - разграничувачот со кој се одвојува повторениот текст. Ако се испушти, се користи празно место за разграничувачот.

    Функцијата не е чувствителна на големи букви , што значи дека малите и големите букви се третираат како исти знаци.

    Како да ја користите функцијата RemoveDupeWords

    Откако кодот на функцијата ќе се додаде во вашата работна книга, можете да го користите во вашите формули на ист начин како што ги користите вградените функции на Excel.

    Само почнете да го пишувате името на функцијата по знакот за еднаквост и ќе се појави во формулата intellisense. Кликнете двапати на функцијата и ќе ја иматевметната во ќелија. Дефинирајте ги аргументите, напишете ја завршната заграда, притиснете Enter и вашата формула е завршена.

    На пример, за да избришете дупликат зборови одделени со запирка и празно место од A2, внесете ја формулата подолу во B2, а потоа повлечете ја надолу низ онолку ќелии колку што е потребно:

    =RemoveDupeWords(A2, ", ")

    Како резултат на тоа, ќе имате листа на единствени зборови или поднизи одделени со запирка и празно место :

    Ако сакате да добиете листа одвоена со запирки, тогаш користете само запирка за разграничувачот :

    =RemoveDupeWords(A2, ",")

    Ако вашите изворни податоци се поделени со празнина , вториот аргумент треба да биде „ " или да се испушти:

    =RemoveDupeWords(A2)

    Како и секоја друга функција на Excel, нашиот UDF повторно се пресметува автоматски кога се менуваат изворните податоци, така што вашите резултати секогаш ќе бидат ажурирани.

    VBA макро за бришење дупликат текст од повеќе ќелии одеднаш

    Ако сакате да отстраните повторен текст од повеќе ќелии во еден потег, тогаш можете да ја повикате функцијата RemoveDupeWords од m во макро. Во овој случај, разграничувачот е хардкодиран и ќе мора да го ажурирате кодот на макрото секој пат кога разграничувачот се менува. Алтернативно, можете да напишете неколку варијации на код за најчестите разграничувачи, да речеме, празно место, запирка или запирка и празно место, и да им дадете значајни имиња на вашите макроа, на пр. RemoveDupesDelimSpace .

    Кодот на макрото е како што следува:

    Јавна под RemoveDupeWords2() Затемнета ќелија како опсег за секоја ќелија во Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Следен крај Sub

    Во горниот код, разграничувачот е запирка и простор . За да користите различен разграниувач, заменете го ", " со друг знак(и) во оваа линија за код:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Забелешка. За да работи макрото, неговиот код и шифрата на функцијата RemoveDupeWords мора да се стават на истиот модул.

    Како да го користите макрото

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

    1. Изберете опсег на ќелии од кои сакате да го отстраните повторениот текст.
    2. Притиснете Alt + F8 за да го отворите полето за дијалог Macro .
    3. Во списокот со макроа, изберете RemoveDupeWords2 .
    4. Кликнете Изврши .

    За повеќе детали, погледнете Како да стартувајте макро во Excel.

    Забелешка. Бидејќи дејството на макрото не може да се врати , препорачуваме да ја зачувате работната книга непосредно пред да го користите макрото. На овој начин, ако нешто тргне наопаку, можете едноставно да ја затворите и повторно да ја отворите работната книга и ќе се вратите токму таму каде што сте биле. Или можете само да направите копија од работниот лист(ите) на кои може да влијае макрото.

    Како да отстраните дупликат знаци во ќелија

    Проблем : Имате повеќекратни појави на ист знак во ќелијата, додека секојќелијата треба да содржи само една појава на даден знак.

    Решение : приспособена функција дефинирана од корисникот или VBA макро.

    Функција дефинирана од корисникот за бришење повторени знаци

    За да ги отстраните дупликатите знаци во ќелија со задржување само на првите појави, можете да ја користите следнава функција дефинирана од корисникот, наречена RemoveDupeChars :

    Функција RemoveDupeChars(текст како стринг ) Како низа Затемнување речник како објект Затемнување char Како стринг затемнување резултат како сет на низа речник = CreateObject ( "Scripting.Dictionary" ) За i = 1 До Лен(текст) char = Средно(текст, јас, 1 ) Ако не е речник.Постои(char) Потоа речник.Додај знак, Ништо резултат = резултат & засилувач; char End If Next RemoveDupeChars = резултат Поставете речник = Ништо заврши функција

    За да го вметнете кодот на функцијата во вашата работна книга, чекорите се сосема исти како во претходниот пример.

    RemoveDupeChars синтакса на функцијата

    Синтаксата на оваа приспособена функција е едноставна колку што може да биде - потребен е само еден аргумент:

    RemoveDupeChars(текст)

    Каде што текст е низа или ќелија од која сакате за отстранување на дупликат знаци.

    Функцијата е чувствителна на букви и ги третира малите и големите букви како различни знаци.

    Како да ја користите функцијата RemoveDupeChars

    Сè што кажавме за употребата на RemoveDupeWords е точно за RemoveDupeChars . Значи, без да одимепремногу во теоријата, ајде да преминеме директно на пример.

    За да избришете дупликат знаци од колоната А почнувајќи од A2, внесете ја оваа формула во B2 и копирајте ја надолу:

    =RemoveDupeChars(A2)

    Како што можете да видите на сликата подолу, функцијата успешно се справува со различни типови знаци вклучувајќи букви, цифри и специјални симболи:

    Совет. Ако вашите знаци се одделени еден од друг со некој разграничувач како празно место, запирка или цртичка, тогаш користете ја функцијата RemoveDupeWords како што е прикажано во претходниот пример.

    VBA макро за отстранување на истите знаци од ќелија

    Како RemoveDupeWords , функцијата RemoveDupeChars може да се повика и од макро:

    Јавно Под RemoveDupeChars2() Затемнета ќелија како опсег за секоја ќелија во Application.Selection cell.Value = RemoveDupeChars(cell.Value) Следен крај Под

    Бидејќи овој UDF не користи разграничувач, нема да мора да правите никакви прилагодувања во кодот.

    Забелешка. За да работи макрото, неговиот код и кодот на RemoveDupeChars UDF мора да се стават на истиот модул во уредникот VBA.

    Како да го користите макрото

    Претпоставувајќи дека веќе сте го внеле кодот на макрото во вашата работна книга или сте ја отвориле нашата примерок од работната книга што го содржи кодот, стартувајте го макрото на овој начин.

    1. Изберете опсег на ќелии од кои сакате да ги отстраните повторените знаци.
    2. Притиснете Alt + F8 за да го отворите дијалогот Macro поле.
    3. Во списокот со макроа, изберете RemoveDupeChars2 .
    4. Кликнете Изврши .

    Отстранете ги дупликатните поднизи со Ultimate Suite

    На почетокот на ова упатство, беше споменато дека Microsoft Excel нема вградена функција за отстранување дупликати во ќелија. Но, нашиот Ultimate Suite го прави тоа!

    Можете да го најдете во паѓачкото мени Duplicate Remover на картичката Ablebits Data , во Dedupe група. Ако опцијата Отстрани ги дупликатите поднизи не се појави во вашиот Excel, проверете дали ја имате инсталирано најновата верзија на Ultimate Suite (бесплатен пробен период може да се преземе овде).

    За да отстраните повторени зборови или текст од повеќе ќелии за 5 секунди (секунда по чекор :), еве што треба да направите:

    1. Изберете ги вашите изворни податоци и стартувајте го Отстранете ја алатката Duplicate Substrings .
    2. Наведете го разграничувачот .
    3. Дефинирајте дали последователните разграничувачи да се третираат како еден (стандардно).
    4. Изберете дали да се изврши пребарување со чувствителност на мали букви или неосетливи на мали букви .
    5. Кликнете Отстрани .

    Готово! Нема да се мачите со VBA или формули, само брзи и точни резултати.

    За да дознаете повеќе за овој извонреден додаток, посетете ја неговата почетна страница. Или уште подобро, преземете ја верзијата за оценување подолу и пробајте ја!

    Така да се отстрани дупликат текст во ќелија.Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

    Достапни преземања

    Примери за отстранување дупликати во ќелијата (датотека.xlsm)

    Ultimate Suite 14 -дневна целосно функционална верзија (датотека .exe)

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.