Hvordan sammenligner man kommaseparerede værdier i to celler og returnerer duplikerede eller unikke værdier i Excel?
Som vist på skærmbilledet nedenfor, er der to kolonner - Kolonne1 og Kolonne2, hver celle i kolonnen indeholder kommaseparerede tal. Hvad kan du gøre for at sammenligne de kommaseparerede tal i Kolonne1 med celleindholdet i den samme række af Kolonne2 og returnere alle duplikerede eller unikke værdier?
Denne vejledning giver dig to metoder til at hjælpe dig med at udføre denne opgave.
Sammenlign kommaseparerede værdier i to celler og returner duplikerede eller unikke værdier med formler
Dette afsnit indeholder to formler, der hjælper med at sammenligne de kommaseparerede værdier i to celler og returnere de duplikerede eller unikke værdier mellem dem.
Bemærk: Følgende formler virker kun i Excel til 365. Hvis du bruger andre versioner af Excel, prøv at bruge nedenstående VBA-metode.
Tag ovenstående to kolonner som et eksempel. For at sammenligne de kommaseparerede tal i Kolonne1 med de kommaseparerede tal i den samme række af Kolonne2 og returnere duplikerede eller unikke værdier, skal du gøre følgende.
Returner duplikerede værdier
1. Vælg en celle for at udskrive dublettallene mellem de to specificerede celler med kommaseparerede tal. I dette tilfælde vælger jeg celle D2, indtast derefter formlen nedenfor og trykker på Indtast nøgle. Vælg formelcellen og træk den Håndtag til automatisk udfyldning ned for at få dobbelttallene mellem celler i de andre rækker.
=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))
Returner unikke værdier
For at returnere de unikke tal mellem de to specificerede celler med kommaseparerede tal i samme række, kan følgende formel hjælpe.
1. Vælg en celle for at udskrive de unikke tal, i dette tilfælde vælger jeg celle E2, indtast derefter formlen nedenfor og trykker på Indtast nøgle. Vælg formelcellen og træk den Håndtag til automatisk udfyldning ned for at få de unikke tal mellem cellerne i de andre rækker.
=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))
Noter:
Sammenlign to kolonner med kommaseparerede værdier og returner duplikerede eller unikke værdier med VBA
Den brugerdefinerede funktion i dette afsnit hjælper med at sammenligne de kommaseparerede værdier i to specificerede celler og returnere de duplikerede værdier eller unikke værdier mellem dem. Gør venligst som følger.
Tag det samme eksempel som ovenfor, for at sammenligne de kommaseparerede tal i Kolonne1 med de kommaseparerede tal i den samme række af Kolonne2 og returnere duplikerede eller unikke værdier, prøv venligst den brugerdefinerede funktion i dette afsnit.
1. I åbningsprojektmappen skal du trykke på andre + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.
2. i Microsoft Visual Basic til applikationer vindue, skal du klikke på indsatte > Moduler, og kopier følgende VBA-kode i Modul (kode) vindue.
VBA-kode: Sammenlign kommaseparerede værdier i to celler og returner duplikerede/unikke værdier
Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
Dim R1Arr As Variant
Dim R2Arr As Variant
Dim Ans1 As String
Dim Ans2 As String
Dim Separator As String
Dim d1 As New Dictionary
Dim d2 As New Dictionary
Dim d3 As New Dictionary
Application.Volatile
Separator = ", "
R1Arr = Split(Rng1.Value, Separator)
R2Arr = Split(Rng2.Value, Separator)
Ans1 = ""
Ans2 = ""
For Each ch In R2Arr
If Not d2.Exists(ch) Then
d2.Add ch, "1"
End If
Next
If Op Then
For Each ch In R1Arr
If d2.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans1 = Ans1 & ch & Separator
End If
End If
Next
If Ans1 <> "" Then
Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
End If
COMPARE = Ans1
Else
For Each ch In R1Arr
If Not d1.Exists(ch) Then
d1.Add ch, "1"
End If
Next
For Each ch In R1Arr
If Not d2.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans2 = Ans2 & ch & Separator
End If
End If
Next
For Each ch In R2Arr
If Not d1.Exists(ch) Then
If Not d3.Exists(ch) Then
d3.Add ch, "1"
Ans2 = Ans2 & ch & Separator
End If
End If
Next
If Ans2 <> "" Then
Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
End If
COMPARE = Ans2
End If
End Function
3. Efter at have indsat koden i Modul (kode) vindue, gå til klik Værktøjer > Referencer at åbne Referencer - VBAProject vindue, skal du kontrollere Microsoft Scripting Runtime boks og klik derefter på OK .
4. Tryk på andre + Q taster for at lukke Microsoft Visual Basic til applikationer vindue.
5. Nu skal du anvende to funktioner separat for at returnere de duplikerede og unikke værdier fra to kommaseparerede værdiceller.
Returner dubletværdi
Vælg en celle for at udskrive dublettallene, i dette eksempel vælger jeg celle D2, indtast derefter formlen nedenfor og trykker på Indtast tasten for at få de duplikerede tal mellem celle A2 og B2.
Vælg formelcellen, og træk dens AutoFyld-håndtag ned for at få dublettallene mellem cellerne i de andre rækker.
=COMPARE(A2,B2,TRUE)
Returner unikke værdier
Vælg en celle for at udskrive de unikke tal, i dette eksempel vælger jeg celle E2, indtaster derefter formlen nedenfor og trykker på Indtast tasten for at få de unikke tal mellem celle A2 og B2.
Vælg formelcellen, og træk dens AutoFyld-håndtag ned for at få de unikke tal mellem cellerne i de andre rækker.
=COMPARE(A2,B2,FALSE)
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!