Jak porovnat hodnoty oddělené čárkami ve dvou buňkách a vrátit duplicitní nebo jedinečné hodnoty v aplikaci Excel?
Jak je znázorněno na obrázku níže, existují dva sloupce – Sloupec1 a Sloupec2, každá buňka ve sloupci obsahuje čísla oddělená čárkami. Co můžete udělat, chcete-li porovnat čísla oddělená čárkami ve Sloupec1 s obsahem buňky ve stejném řádku Sloupec2 a vrátit všechny duplicitní nebo jedinečné hodnoty?
Tento kurz poskytuje dvě metody, které vám pomohou tento úkol splnit.
Porovnejte hodnoty oddělené čárkami ve dvou buňkách a vraťte duplicitní nebo jedinečné hodnoty pomocí vzorců
Tato část obsahuje dva vzorce, které vám pomohou porovnat hodnoty oddělené čárkami ve dvou buňkách a vrátit mezi nimi duplicitní nebo jedinečné hodnoty.
Poznámka: Následující vzorce fungují pouze v Excel pro 365. Pokud používáte jiné verze aplikace Excel, zkuste použít níže uvedenou metodu VBA.
Vezměte si dva výše uvedené sloupce jako příklad, chcete-li porovnat čísla oddělená čárkami ve sloupci 1 s čísly oddělenými čárkami ve stejném řádku sloupce 2 a vrátit duplicitní nebo jedinečné hodnoty, postupujte následovně.
Vrátit duplicitní hodnoty
1. Vyberte buňku pro výstup duplicitních čísel mezi dvěma určenými buňkami s čísly oddělenými čárkami, v tomto případě vyberu buňku D2, poté zadejte vzorec níže a stiskněte klávesu vstoupit klíč. Vyberte buňku vzorce a přetáhněte ji Rukojeť automatického vyplňování dolů, abyste získali duplicitní čísla mezi buňkami v ostatních řádcích.
=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))
Vrátí jedinečné hodnoty
Chcete-li vrátit jedinečná čísla mezi dvěma určenými buňkami s čísly oddělenými čárkami ve stejném řádku, může vám pomoci následující vzorec.
1. Vyberte buňku pro výstup jedinečných čísel, v tomto případě vyberu buňku E2, poté zadejte vzorec níže a stiskněte vstoupit klíč. Vyberte buňku vzorce a přetáhněte ji Rukojeť automatického vyplňování dolů, abyste získali jedinečná čísla mezi buňkami v ostatních řádcích.
=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))
Poznámky:
Porovnejte dva sloupce s hodnotami oddělenými čárkami a vraťte duplicitní nebo jedinečné hodnoty pomocí jazyka VBA
Uživatelsky definovaná funkce uvedená v této části pomáhá porovnat hodnoty oddělené čárkami ve dvou určených buňkách a vrátit mezi nimi duplicitní hodnoty nebo jedinečné hodnoty. Postupujte prosím následovně.
Vezměte stejný příklad jako výše, chcete-li porovnat čísla oddělená čárkami ve sloupci1 s čísly oddělenými čárkami ve stejném řádku sloupce2 a vrátit duplicitní nebo jedinečné hodnoty, vyzkoušejte uživatelsky definovanou funkci v této části.
1. V otevíracím sešitu stiskněte tlačítko Další + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.
2. V Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Vložit > Modula zkopírujte následující kód VBA do souboru Modul (kód) okno.
Kód VBA: Porovnejte hodnoty oddělené čárkami ve dvou buňkách a vraťte duplicitní/jedinečné hodnoty
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. Po vložení kódu do Modul (kód) okno, přejděte ke kliknutí Tools > Reference k otevření Reference - VBAProject okno, zkontrolujte Microsoft Scripting Runtime a potom klepněte na tlačítko OK .
4. zmáčkni Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace okno.
5. Nyní musíte použít dvě funkce samostatně, abyste vrátili duplicitní a jedinečné hodnoty ze dvou buněk s hodnotami oddělenými čárkami.
Vrátit duplicitní hodnotu
Vyberte buňku pro výstup duplicitních čísel, v tomto příkladu vyberu buňku D2, poté zadejte vzorec níže a stiskněte klávesu vstoupit k získání duplicitních čísel mezi buňkami A2 a B2.
Vyberte buňku vzorce a přetáhněte její úchyt automatického vyplňování dolů, abyste získali duplicitní čísla mezi buňkami v ostatních řádcích.
=COMPARE(A2,B2,TRUE)
Vrátí jedinečné hodnoty
Vyberte buňku pro výstup jedinečných čísel, v tomto příkladu vyberu buňku E2, poté zadejte vzorec níže a stiskněte klávesu vstoupit klíč k získání jedinečných čísel mezi buňkami A2 a B2.
Vyberte buňku vzorce a přetáhněte její úchyt automatického vyplňování dolů, abyste získali jedinečná čísla mezi buňkami v ostatních řádcích.
=COMPARE(A2,B2,FALSE)
Nejlepší nástroje pro produktivitu v kanceláři
Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času. Kliknutím sem získáte funkci, kterou nejvíce potřebujete...
Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci
- Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
- Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
- Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!