Paano mag-alis ng mga duplicate sa loob ng isang cell sa Excel

  • Ibahagi Ito
Michael Brown

May tatlong paraan upang maghanap at magtanggal ng mga duplicate sa loob ng isang cell sa Excel. Piliin lang ang isa na pinakamainam para sa iyo.

Kapag may kinalaman sa pag-alis ng mga duplicate na value o row, nag-aalok ang Microsoft Excel ng hanay ng iba't ibang opsyon. Ngunit pagdating sa pag-alis ng magkaparehong teksto sa loob ng isang naibigay na cell, ang Excel ay nagbibigay ng... wala. Walang tool, walang feature, walang formula, walang wala. Pipigilan ba tayo nito sa pagkamit ng ating layunin? Sa anumang kaso. Kung ang Excel ay walang function na kailangan natin, sumulat tayo ng sarili nating function :)

    Paano mag-alis ng mga paulit-ulit na salita sa Excel cell

    Problema : Mayroon kang parehong mga salita o text string sa isang cell at gusto mong tanggalin ang pangalawa at lahat ng kasunod na pag-uulit.

    Solusyon : isang custom na function na tinukoy ng user o VBA macro.

    Fungsi na tinukoy ng gumagamit upang alisin ang mga duplicate sa loob ng isang cell

    Upang alisin ang duplicate na teksto sa isang cell, maaari mong gamitin ang sumusunod na function na tinukoy ng gumagamit (UDF) , pinangalanang RemoveDupeWords :

    Function RemoveDupeWords(text As String , Opsyonal delimiter As String = " " ) Bilang String Dim na diksyunaryo Bilang Object Dim x, bahagi Itakda ang diksyunaryo = CreateObject ( "Scripting.Dictionary" ) diksyunaryo .CompareMode = vbTextCompare Para sa Bawat x Sa 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 Pagkatapos RemoveDupeWords = Join(dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Paano ipasok ang code ng function sa iyong workbook

    Upang idagdag ang code sa itaas sa iyong Excel, ito ang kailangan mong gawin:

    1. Pindutin ang Alt + F11 upang buksan ang Visual Basic Editor.
    2. Sa kaliwang pane, i-right-click ang ThisWorkbook at piliin ang Insert > Module .
    3. I-paste ang code sa itaas sa window ng Code .

    Para sa higit pang impormasyon, pakitingnan ang Paano magpasok ng VBA code sa Excel.

    RemoveDupeWords function syntax

    Ang aming bagong likhang function para sa pag-alis ng duplicate na text sa isang cell ay may sumusunod na syntax:

    RemoveDupeWords(text, [delimiter])

    Saan :

    • Text (kinakailangan) - isang string o cell kung saan mo gustong tanggalin ang paulit-ulit na text.
    • Delimiter (opsyonal) - ang delimiter na pinaghihiwalay ng paulit-ulit na teksto. Kung aalisin, gagamit ng puwang para sa delimiter.

    Ang function ay hindi case-sensitive , ibig sabihin, ang mga maliliit at malalaking titik ay itinuturing bilang parehong mga character.

    Paano gamitin ang RemoveDupeWords function

    Kapag naidagdag na ang code ng function sa iyong workbook, magagamit mo ito sa iyong mga formula sa parehong paraan tulad ng paggamit mo sa mga built-in na function ng Excel.

    Simulan lang ang pag-type ng pangalan ng function pagkatapos ng equal sign, at lalabas ito sa formula intellisense. Mag-double click sa function, at magkakaroon ka nitoipinasok sa isang cell. Tukuyin ang mga argumento, i-type ang pansarang panaklong, pindutin ang Enter , at makumpleto ang iyong formula.

    Halimbawa, upang tanggalin ang mga duplicate na salita na pinaghihiwalay ng kuwit at puwang mula sa A2, ipasok ang formula sa ibaba sa B2, at pagkatapos ay i-drag ito pababa sa pinakamaraming cell kung kinakailangan:

    =RemoveDupeWords(A2, ", ")

    Bilang resulta, magkakaroon ka ng listahan ng mga natatanging salita o substring na pinaghihiwalay ng kuwit at espasyo :

    Kung mas gusto mong makakuha ng listahang pinaghihiwalay ng kuwit, pagkatapos ay gumamit ng isang kuwit lang para sa delimiter :

    =RemoveDupeWords(A2, ",")

    Kung ang iyong source data ay pinaghihiwalay ng space , ang pangalawang argumento ay dapat na " " o tinanggal:

    =RemoveDupeWords(A2)

    Tulad ng anumang iba pang function ng Excel, ang aming UDF ay awtomatikong muling magkalkula kapag nagbago ang source data, kaya ang iyong mga resulta ay palaging napapanahon.

    VBA macro para tanggalin ang duplicate na text mula sa maraming cell nang sabay-sabay

    Kung gusto mong tanggalin ang paulit-ulit na text mula sa maraming cell nang sabay-sabay, maaari mong tawagan ang function na RemoveDupeWords pabalik m sa loob ng isang macro. Sa kasong ito, hardcoded ang delimiter, at kakailanganin mong i-update ang code ng macro sa tuwing magbabago ang delimiter. Bilang kahalili, maaari kang magsulat ng ilang mga variation ng code para sa mga pinakakaraniwang delimiter, halimbawa, isang puwang, kuwit, o kuwit at espasyo, at bigyan ang iyong mga macro ng makabuluhang pangalan, hal. RemoveDupesDelimSpace .

    Ang code ng macro ay ang sumusunod:

    Pampublikong Sub RemoveDupeWords2() Dim cell Bilang Saklaw Para sa Bawat cell Sa Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    Sa code sa itaas, ang delimiter ay isang comma at espasyo . Upang gumamit ng ibang delimiter, palitan ang "," ng isa pang (mga) character sa linya ng code na ito:

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

    Tandaan. Para gumana ang macro, ang code nito at ang code ng RemoveDupeWords function ay dapat ilagay sa parehong module.

    Paano gamitin ang macro

    Ilagay ang code ng macro sa iyong sariling workbook o buksan ang aming sample workbook gamit ang code, at pagkatapos ay gawin ang mga sumusunod na hakbang upang patakbuhin ang macro.

    1. Pumili ng hanay ng mga cell kung saan mo gustong alisin ang paulit-ulit na text.
    2. Pindutin ang Alt + F8 upang buksan ang Macro dialog box.
    3. Sa listahan ng mga macro, piliin ang RemoveDupeWords2 .
    4. I-click ang Run .

    Para sa higit pang mga detalye, pakitingnan ang Paano magpatakbo ng macro sa Excel.

    Tandaan. Dahil ang pagkilos ng macro hindi maa-undo , lubos naming inirerekomenda na i-save ang iyong workbook bago gamitin ang macro. Sa ganitong paraan, kung may nangyaring mali, maaari mong isara at muling buksan ang workbook, at babalik ka sa kung nasaan ka mismo. O maaari ka lang gumawa ng kopya ng (mga) worksheet na maaaring maapektuhan ng macro.

    Paano mag-alis ng mga duplicate na character sa isang cell

    Problema : Mayroon kang maraming paglitaw ng parehong character sa isang cell, habang ang bawat isacell ay dapat lamang maglaman ng isang pangyayari ng isang naibigay na character.

    Solusyon : isang custom na user-defined function o VBA macro.

    User-defined function para tanggalin ang mga paulit-ulit na character

    Upang tanggalin ang mga duplicate na character sa loob ng isang cell na pinapanatili lamang ang mga unang paglitaw, maaari mong gamitin ang sumusunod na user-defined function, na pinangalanang RemoveDupeChars :

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

    Upang ipasok ang code ng function sa iyong workbook, ang mga hakbang ay eksaktong kapareho ng sa nakaraang halimbawa.

    RemoveDupeChars function syntax

    Ang syntax ng custom na function na ito ay kasing simple ng posibleng mangyari - isang argument lang ang kailangan:

    RemoveDupeChars(text)

    Kung saan ang text ay isang string o cell kung saan mo nais upang alisin ang mga duplicate na character.

    Ang function ay case-sensitive at tinatrato ang maliliit at malalaking titik bilang magkaibang mga character.

    Paano gamitin ang RemoveDupeChars function

    Lahat ng sinabi namin tungkol sa paggamit ng RemoveDupeWords ay totoo para sa RemoveDupeChars . Kaya, nang hindi pumuntamasyadong marami sa teorya, dumiretso tayo sa isang halimbawa.

    Upang tanggalin ang mga duplicate na character mula sa column A na nagsisimula sa A2, ilagay ang formula na ito sa B2 at kopyahin ito pababa:

    =RemoveDupeChars(A2)

    Tulad ng makikita mo sa larawan sa ibaba, matagumpay na pinangangasiwaan ng function ang iba't ibang uri ng character kabilang ang mga titik, digit at espesyal na simbolo:

    Tip. Kung ang iyong mga character ay pinaghihiwalay sa isa't isa ng ilang delimiter gaya ng isang puwang, kuwit o gitling, pagkatapos ay gamitin ang RemoveDupeWords na function tulad ng ipinapakita sa nakaraang halimbawa.

    VBA macro upang alisin ang parehong mga character mula sa isang cell

    Tulad ng RemoveDupeWords , ang RemoveDupeChars function ay maaari ding tawagan mula sa loob ng isang macro:

    Pampubliko Sub RemoveDupeChars2() Dim cell Bilang Saklaw Para sa Bawat cell Sa Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    Dahil ang UDF na ito ay hindi gumagamit ng anumang delimiter, hindi mo na kailangang gumawa ng anumang mga pagsasaayos sa ang code.

    Tandaan. Para gumana ang macro, ang code nito at ang code ng RemoveDupeChars UDF ay dapat ilagay sa parehong module sa VBA editor.

    Paano gamitin ang macro

    Ipagpalagay na naipasok mo na ang code ng macro sa iyong workbook o binuksan ang aming sample na workbook na naglalaman ng code, ilunsad ang macro sa ganitong paraan.

    1. Pumili ng hanay ng mga cell kung saan mo gustong alisin ang mga paulit-ulit na character.
    2. Pindutin ang Alt + F8 upang buksan ang Macro dialogbox.
    3. Sa listahan ng mga macro, piliin ang RemoveDupeChars2 .
    4. I-click ang Run .

    Alisin ang mga duplicate na substring gamit ang Ultimate Suite

    Sa simula ng tutorial na ito, nabanggit na ang Microsoft Excel ay walang inbuilt na feature para sa pag-alis ng mga duplicate sa loob ng isang cell. Ngunit nakikita ng aming Ultimate Suite!

    Makikita mo ito sa drop-down na menu ng Duplicate Remover sa tab na Ablebits Data , sa Dedupe pangkat. Kung ang pagpipiliang Alisin ang Mga Duplicate na Substring ay hindi lalabas sa iyong Excel, tiyaking mayroon kang pinakabagong bersyon ng Ultimate Suite na naka-install (maaaring ma-download ang isang libreng pagsubok dito).

    Upang alisin ang mga paulit-ulit na salita o text mula sa maraming cell sa loob ng 5 segundo (isang segundo bawat hakbang :), ito ang kailangan mong gawin:

    1. Piliin ang iyong source data at ilunsad ang Alisin ang Duplicate Substrings tool.
    2. Tukuyin ang delimiter .
    3. Tukuyin kung ituturing ang magkakasunod na delimiter bilang isa (default).
    4. Piliin kung magsasagawa ng case-sensitive o case-insensitive na paghahanap.
    5. I-click ang Alisin .

    Tapos na! Walang kalikot sa VBA o mga formula, mabilis at tumpak na mga resulta.

    Upang matuto pa tungkol sa kahanga-hangang add-in na ito, pakibisita ang home page nito. O mas mabuti pa, mag-download ng bersyon ng pagsusuri sa ibaba at subukan ito!

    Ganyan mag-alis ng duplicate na text sa isang cell.Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!

    Mga available na download

    Mga halimbawa upang alisin ang mga duplicate sa cell (.xlsm file)

    Ultimate Suite 14 -day fully-functional na bersyon (.exe file)

    Si Michael Brown ay isang dedikadong mahilig sa teknolohiya na may hilig sa pagpapasimple ng mga kumplikadong proseso gamit ang mga tool sa software. Sa higit sa isang dekada ng karanasan sa industriya ng tech, hinasa niya ang kanyang mga kasanayan sa Microsoft Excel at Outlook, pati na rin ang Google Sheets at Docs. Ang blog ni Michael ay nakatuon sa pagbabahagi ng kanyang kaalaman at kadalubhasaan sa iba, na nagbibigay ng madaling sundan na mga tip at mga tutorial para sa pagpapabuti ng pagiging produktibo at kahusayan. Isa ka mang batikang propesyonal o baguhan, nag-aalok ang blog ni Michael ng mahahalagang insight at praktikal na payo para masulit ang mahahalagang software tool na ito.