Voeg twee lyste saam sonder duplikate

'n Klassieke situasie: jy het twee lyste wat in een saamgevoeg moet word. Boonop kan daar in die aanvanklike lyste beide unieke elemente en ooreenstemmende elemente wees (beide tussen die lyste en binne), maar by die uitvoer moet u 'n lys sonder duplikate (herhalings) kry:

Voeg twee lyste saam sonder duplikate

Kom ons kyk tradisioneel na verskeie maniere om so 'n algemene probleem op te los – van primitief “op die voorkop” tot meer kompleks, maar elegant.

Metode 1: Verwyder duplikate

U kan die probleem op die eenvoudigste manier oplos - kopieer die elemente van beide lyste handmatig in een en pas dan die instrument op die resulterende stel toe. Verwyder duplikate vanaf die blad data (Data – Verwyder duplikate):

Voeg twee lyste saam sonder duplikate

Natuurlik sal hierdie metode nie werk as die data in die bronnelyste dikwels verander nie – jy sal die hele prosedure na elke verandering weer moet herhaal. 

Metode 1a. draaitafel

Hierdie metode is in werklikheid 'n logiese voortsetting van die vorige een. As die lyste nie baie groot is nie en die maksimum aantal elemente daarin is vooraf bekend (byvoorbeeld nie meer as 10), dan kan jy twee tabelle in een kombineer deur direkte skakels, voeg 'n kolom by met ene aan die regterkant en bou 'n opsommingstabel gebaseer op die resulterende tabel:

Voeg twee lyste saam sonder duplikate

Soos u weet, ignoreer die spiltabel herhalings, so by die uitset kry ons 'n gekombineerde lys sonder duplikate. Die hulpkolom met 1 is slegs nodig omdat Excel opsommingstabelle kan bou wat ten minste twee kolomme bevat.

Wanneer die oorspronklike lyste verander word, sal die nuwe data via direkte skakels na die gekombineerde tabel gaan, maar die spilpunttabel sal met die hand opgedateer moet word (regskliek – Dateer op en stoor). As jy nie dadelik herberekening nodig het nie, is dit beter om ander opsies te gebruik.

Metode 2: Skikkingsformule

Jy kan die probleem met formules oplos. In hierdie geval sal die herberekening en opdatering van die resultate outomaties en onmiddellik plaasvind, onmiddellik na veranderinge in die oorspronklike lyste. Vir gerief en bondigheid, kom ons gee ons lyste name. lys 1 и lys 2gebruik van Naam Bestuurder tab formule (Formules — Naambestuurder — Skep):

Voeg twee lyste saam sonder duplikate

Nadat ons benoem het, sal die formule wat ons benodig soos volg lyk:

Voeg twee lyste saam sonder duplikate

Met die eerste oogopslag lyk dit grillerig, maar in werklikheid is alles nie so eng nie. Laat ek hierdie formule op verskeie reëls uitbrei deur die Alt+Enter-sleutelkombinasie en inkeping met spasies te gebruik, soos ons gedoen het, byvoorbeeld hier:

Voeg twee lyste saam sonder duplikate

Die logika hier is die volgende:

  • Die formule INDEX(Lys1;MATCH(0;COUNTIF($E$1:E1;Lys1); 0) kies alle unieke elemente uit die eerste lys. Sodra hulle opraak, begin dit 'n #N/A-fout gee:

    Voeg twee lyste saam sonder duplikate

  • Die formule INDEX(Lys2;MATCH(0;COUNTIF($E$1:E1;Lys2); 0)) onttrek die unieke elemente uit die tweede lys op dieselfde manier.
  • Geneste in mekaar twee IFERROR funksies implementeer die uitvoer eerste van die unieke van die lys-1, en dan vanaf die lys-2 een na die ander.

Let daarop dat dit 'n skikkingsformule is, maw nadat dit getik is, moet dit in 'n sel ingevoer word wat nie gewone is nie Tik, maar met 'n sleutelbordkortpad Ctrl+Skuif+Tik en kopieer (sleep) dan af na die kinderselle met 'n kantlyn.

In die Engelse weergawe van Excel lyk hierdie formule soos volg:

=IFERROR(IFERROR(INDEX(Lys1, MATCH(0, COUNTIF($E$1:E1, Lys1), 0)), INDEX(Lys2, MATCH(0, COUNTIF($E$1:E1, Lys2), 0)) ), "") 

Die nadeel van hierdie benadering is dat skikkingsformules merkbaar stadiger werk met die lêer as die brontabelle 'n groot ('n paar honderd of meer) aantal elemente het. 

Metode 3. Kragnavraag

As jou bronnelyste 'n groot aantal elemente het, byvoorbeeld 'n paar honderde of duisende, dan is dit beter om 'n fundamenteel ander benadering te gebruik, in plaas van 'n stadige skikkingsformule, naamlik die Power Query-byvoegingsnutsgoed. Hierdie byvoeging is by verstek in Excel 2016 ingebou. As jy Excel 2010 of 2013 het, kan jy dit afsonderlik aflaai en installeer (gratis).

Die algoritme van aksies is soos volg:

  1. Maak 'n aparte oortjie van die geïnstalleerde byvoeging oop Kragnavraag (as jy Excel 2010-2013 het) of gaan net na die oortjie data (as jy Excel 2016 het).
  2. Kies die eerste lys en druk die knoppie Van tabel/reeks (Van reeks/tabel). Wanneer ons gevra word oor die skep van 'n "slim tafel" uit ons lys, stem ons saam:

    Voeg twee lyste saam sonder duplikate

  3. Die navraagredigeerdervenster maak oop, waar jy die gelaaide data en die navraagnaam kan sien Tabel 1 (jy kan dit na jou eie verander as jy wil).
  4. Dubbelklik op die tabelopskrif (word lys 1) en hernoem dit na enige ander (byvoorbeeld Mense). Wat presies om te noem is nie belangrik nie, maar die bedinkte naam moet onthou word, want. dit sal later weer gebruik moet word wanneer die tweede tabel ingevoer word. Om twee tabelle in die toekoms saam te voeg, sal slegs werk as hul kolomopskrifte ooreenstem.
  5. Brei die aftreklys in die boonste linkerhoek uit maak toe en laai af en kies Maak toe en laai in... (Maak toe en laai na...):

    Voeg twee lyste saam sonder duplikate

  6. In die volgende dialoogkassie (dit kan 'n bietjie anders lyk – moenie bekommerd wees nie), kies Skep net 'n verbinding (Skep net verbinding):

    Voeg twee lyste saam sonder duplikate

  7. Ons herhaal die hele prosedure (punte 2-6) vir die tweede lys. Wanneer 'n kolomopskrif hernoem word, is dit belangrik om dieselfde naam (People) as in die vorige navraag te gebruik.
  8. In die Excel-venster op die blad data of op die blad Kragnavraag Kies Kry data – Kombineer versoeke – Voeg by (Kry data – voeg navrae saam – voeg by):

    Voeg twee lyste saam sonder duplikate

  9. In die dialoogkassie wat verskyn, kies ons versoeke uit die aftreklyste:

    Voeg twee lyste saam sonder duplikate

  10. Gevolglik sal ons 'n nuwe navraag kry, waar twee lyste onder mekaar verbind sal word. Dit bly om duplikate met die knoppie te verwyder Vee rye uit - Verwyder duplikate (Vee rye uit — vee duplikate uit):

    Voeg twee lyste saam sonder duplikate

  11. Die voltooide navraag kan hernoem word aan die regterkant van die opsiepaneel, wat dit 'n gesonde naam gee (dit sal in werklikheid die naam van die resultaattabel wees) en alles kan na die blad opgelaai word met die opdrag maak toe en laai af (Maak toe en laai):

    Voeg twee lyste saam sonder duplikate

In die toekoms, met enige veranderinge of toevoegings tot die oorspronklike lyste, sal dit genoeg wees om net met die rechtermuisknop te klik om die resultatetabel op te dateer.

  • Hoe om veelvuldige tabelle van verskillende lêers te versamel met behulp van Power Query
  • Onttrek unieke items uit 'n lys
  • Hoe om twee lyste met mekaar te vergelyk vir passings en verskille

Lewer Kommentaar