Satura rādītājs
Ir trīs veidi, kā Excel šūnā atrast un dzēst dublikātus. Vienkārši izvēlieties sev piemērotāko.
Kad runa ir par divkāršu vērtību vai rindu noņemšanu, Microsoft Excel piedāvā virkni dažādu iespēju. Bet, kad runa ir par identiska teksta noņemšanu konkrētā šūnā, Excel nesniedz... neko. Nekādus rīkus, nekādas funkcijas, nekādas formulas, neko. Vai tas mūs atturēs no mūsu mērķa sasniegšanas? Nekādā gadījumā. Ja Excel nav vajadzīgās funkcijas, tad iesim rakstīt savu :)
Kā noņemt atkārtotus vārdus Excel šūnā
Problēma : Šūnā ir vienādi vārdi vai teksta virknes, un jūs vēlaties noņemt otro un visus turpmākos atkārtojumus.
Risinājums : pielāgota lietotāja definēta funkcija vai VBA makro.
Lietotāja definēta funkcija, lai noņemtu dublikātus šūnā
Lai novērstu teksta dublēšanos šūnā, varat izmantot šādu lietotāja definētu funkciju (UDF) ar nosaukumu RemoveDupeWords :
Funkcija RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ("Scripting.Dictionary" ) 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 FunctionKā ievietot funkcijas kodu darbgrāmatā
Lai pievienotu iepriekš minēto kodu programmai Excel, ir jādara šādi:
- Nospiediet Alt + F11, lai atvērtu Visual Basic redaktoru.
- Kreisajā panelī ar peles labo pogu noklikšķiniet uz Šīdarbgrāmata un izvēlieties Ievietot > Modulis .
- Ievietojiet iepriekš minēto kodu Kods logs.
Lai uzzinātu vairāk, skatiet sadaļu Kā ievietot VBA kodu programmā Excel.
Funkcijas RemoveDupeWords sintakse
Mūsu jaunizveidotajai funkcijai, kas paredzēta divkārša teksta noņemšanai šūnā, ir šāda sintakse:
RemoveDupeWords(teksts, [norobežotājs])Kur:
- Teksts (obligāts) - virkne vai šūna, no kuras vēlaties dzēst atkārtotu tekstu.
- Atdalītājs (nav obligāts) - norobežotājs, ar kuru tiek atdalīts atkārtotais teksts. Ja tas netiek norādīts, kā norobežotājs tiek izmantota atstarpe.
Funkcija ir nav lielo un mazo burtu sensitivitātes , kas nozīmē, ka mazie un lielie burti tiek uzskatīti par vienādiem burtiem.
Kā lietot funkciju RemoveDupeWords
Kad funkcijas kods ir pievienots darbgrāmatā, varat to izmantot formulās tāpat kā Excel iebūvētās funkcijas.
Vienkārši sāciet rakstīt funkcijas nosaukumu pēc vienādības zīmes, un tas parādīsies formulas inteliģencē. Divreiz noklikšķiniet uz funkcijas, un tā tiks ievietota šūnā. Definējiet argumentus, ierakstiet noslēdzošo iekavi, nospiediet Enter , un jūsu formula ir pabeigta.
Piemēram, lai no A2 dzēstu ar komatu un atstarpi atdalītus dubultvārdus, B2 ievadiet tālāk norādīto formulu un pēc tam velciet to uz leju, izmantojot tik šūnu, cik nepieciešams:
=RemoveDupeWords(A2, ", ")
Rezultātā iegūsiet unikālu vārdu vai apakšsarakstu sarakstu, kas atdalīts ar komats un atstarpe :
Ja vēlaties saņemt sarakstu, kas atdalīts ar komatu, izmantojiet tikai komats kā norobežotāju:
=RemoveDupeWords(A2, ",")
Ja avota dati ir atdalīti ar telpa , otrajam argumentam jābūt " " vai tas jāizlaiž:
=RemoveDupeWords(A2)
Tāpat kā jebkura cita Excel funkcija, mūsu UDF pārrēķina automātiski, kad mainās avota dati, tāpēc rezultāti vienmēr būs aktuāli.
VBA makro, lai dzēstu dublēto tekstu no vairākām šūnām vienlaicīgi
Ja vēlaties no vairākām šūnām vienā reizē noņemt atkārtotu tekstu, varat izsaukt funkciju RemoveDupeWords Šādā gadījumā norobežotājs ir stingri noteikts, un katru reizi, kad norobežotājs mainās, ir jāatjaunina makrokoda kods. Alternatīvi varat uzrakstīt dažus koda variantus visbiežāk sastopamajiem norobežotājiem, piemēram, atstarpi, komatu vai komatu un atstarpi, un piešķirt makram jēgpilnus nosaukumus, piem. RemoveDupesDelimSpace .
Makro kods ir šāds:
Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubIepriekš minētajā kodā norobežotājs ir a komats un atstarpe Lai izmantotu citu norobežotāju, šajā kodu rindā aizstāt ", " ar citu(-ām) rakstzīmi(-ēm):
cell.Value = RemoveDupeWords(cell.Value, ", ")
Piezīme. Lai makroreaktors darbotos, tā kodam un funkcijas RemoveDupeWords kodam jābūt ievietotam vienā modulī.
Kā lietot makro
Ievietojiet makrokopas kodu savā darbgrāmatā vai atveriet mūsu parauga darbgrāmatu ar kodu un pēc tam izpildiet tālāk norādītās darbības, lai palaistu makrokopu.
- Atlasiet šūnu diapazonu, no kura vēlaties noņemt atkārtotu tekstu.
- Nospiediet Alt + F8, lai atvērtu Makro dialoglodziņš.
- Makroprogrammu sarakstā atlasiet RemoveDupeWords2 .
- Noklikšķiniet uz Palaist .
Lai iegūtu sīkāku informāciju, skatiet sadaļu Kā palaist makro programmā Excel.
Piezīme. Tā kā makro darbība nevar atcelt , mēs noteikti iesakām saglabāt darbgrāmatu tieši pirms makra izmantošanas. Šādā veidā, ja kaut kas neizdodas, varat vienkārši aizvērt un atkal atvērt darbgrāmatu, un jūs atgriezīsieties tieši tur, kur bijāt. Vai arī varat vienkārši izveidot darblapas(-u) kopiju, uz kurām varētu attiekties makro.
Kā noņemt divkāršās rakstzīmes šūnā
Problēma : Vienā šūnā ir vairāki vienas un tās pašas rakstzīmes atkārtojumi, bet katrā šūnā jābūt tikai vienam konkrētās rakstzīmes atkārtojumam.
Risinājums : pielāgota lietotāja definēta funkcija vai VBA makro.
Lietotāja definēta funkcija atkārtotu rakstzīmju dzēšanai
Lai šūnā noņemtu dublētās rakstzīmes, saglabājot tikai pirmos atkārtojumus, varat izmantot šādu lietotāja definētu funkciju ar nosaukumu 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 & amp; char End If Next RemoveDupeChars = result Set dictionary = Nothing End FunctionLai ievietotu funkcijas kodu darbgrāmatā, veiciet tieši tos pašus soļus kā iepriekšējā piemērā.
Funkcijas RemoveDupeChars sintakse
Šīs pielāgotās funkcijas sintakse ir tik vienkārša, cik vien iespējams - ir nepieciešams tikai viens arguments:
RemoveDupeChars(teksts)Kur teksts ir virkne vai šūna, no kuras vēlaties noņemt dublējošās rakstzīmes.
Funkcija ir lielo un mazo izmēru un mazos un lielos burtus uzskata par dažādām rakstzīmēm.
Kā lietot funkciju RemoveDupeChars
Viss, ko minējām par RemoveDupeWords lietošanu, attiecas arī uz RemoveDupeChars . Tāpēc, neiedziļinoties teorijā, pāriesim pie piemēra.
Lai dzēstu dublējošās rakstzīmes no A slejas, sākot no A2, ievadiet šo formulu B2 un nokopējiet to uz leju:
=RemoveDupeChars(A2)
Kā redzams attēlā zemāk, funkcija veiksmīgi apstrādā dažādus rakstzīmju tipus, tostarp burtus, ciparus un īpašos simbolus:
Padoms. Ja jūsu rakstzīmes ir atdalītas viena no otras ar kādu norobežotājs piemēram, atstarpi, komatu vai defisi, tad izmantojiet RemoveDupeWords funkcija, kā parādīts iepriekšējā piemērā.
VBA makro, lai no šūnas noņemtu tās pašas rakstzīmes
Tāpat kā RemoveDupeWords , un RemoveDupeChars funkciju var izsaukt arī no makro:
Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubTā kā šajā UDF netiek izmantots nekāds norobežotājs, kodā nav jāveic nekādi pielāgojumi.
Piezīme. Lai makro programma darbotos, tās kodam un UDF RemoveDupeChars kodam jābūt ievietotam vienā un tajā pašā VBA redaktora modulī.
Kā lietot makro
Pieņemot, ka makrokopas kods jau ir ievietots darbgrāmatā vai atvērta mūsu parauga darbgrāmata, kurā ir kods, palaidiet makrokopu šādā veidā.
- Atlasiet šūnu diapazonu, no kura vēlaties noņemt atkārtotas rakstzīmes.
- Nospiediet Alt + F8, lai atvērtu Makro dialoglodziņš.
- Makroprogrammu sarakstā atlasiet RemoveDupeChars2 .
- Noklikšķiniet uz Palaist .
Dublējošu apakšvirsrakstu noņemšana ar Ultimate Suite
Šīs pamācības sākumā tika minēts, ka programmā Microsoft Excel nav iebūvētas funkcijas, kas ļautu noņemt dublikātus šūnā. Bet mūsu Ultimate Suite ir!
To var atrast Dublēšanas novēršanas līdzeklis nolaižamajā izvēlnē Ablebits dati cilnē Dedupe grupa. Ja Dublējošu apakšvirsrakstu dzēšana opcija nav redzama programmā Excel, pārliecinieties, vai ir instalēta jaunākā Ultimate Suite versija (bezmaksas izmēģinājuma versiju var lejupielādēt šeit).
Lai 5 sekunžu laikā (pa sekundei katrā solī :) no vairākām šūnām noņemtu atkārtotus vārdus vai tekstu, jums ir jādara tas, kas jādara:
- Izvēlieties avota datus un palaidiet Divkāršu apakšvirsrakstu dzēšana instruments.
- Norādiet norobežotājs .
- Noteikt, vai ārstēt secīgi norobežotāji kā viens (noklusējuma iestatījums).
- Izvēlieties, vai veikt lielo un mazo izmēru vai lielo un mazo burtu un atbilžu meklēšana.
- Noklikšķiniet uz Noņemt .
Gatavs! Nav nekādu VBA vai formulu manipulāciju, tikai ātri un precīzi rezultāti.
Lai uzzinātu vairāk par šo lielisko papildinājumu, lūdzu, apmeklējiet tā sākuma lapu. Vai vēl labāk, lejupielādējiet novērtējuma versiju zemāk un izmēģiniet to!
Lūk, kā noņemt dublējošos tekstus šūnā. Paldies, ka izlasījāt, un ceru, ka nākamnedēļ tiksimies mūsu emuārā!
Pieejamās lejupielādes
Piemēri, lai noņemtu dublikātus šūnā (.xlsm fails)
Ultimate Suite 14 dienu pilnībā funkcionāla versija (.exe fails)