Ugrás a tartalomra

Hogyan nyerhetünk ki egyedi értékeket az Excel több oszlopából?

Tegyük fel, hogy több oszlop van több értékkel, néhány érték megismétlődik ugyanabban az oszlopban vagy más oszlopban. Most pedig meg akarja találni azokat az értékeket, amelyek mindkét oszlopban csak egyszer szerepelnek. Vannak gyors trükkök az egyedi értékek kinyeréséhez az Excel több oszlopából?


Egyedi értékek kinyerése több oszlopból képletekkel

Ez a rész két képletet tartalmaz: az egyik az Excel összes verziójához megfelelő tömbképletet használ, a másik pedig egy dinamikus tömbképletet kifejezetten az Excel 365-höz.

Különleges értékek kinyerése több oszlopból a tömbképlettel az összes Excel-verzióhoz

Az Excel bármely verziójával rendelkező felhasználók számára a tömbképletek hatékony eszközt jelenthetnek az egyedi értékek kinyerésére több oszlopból. A következőképpen teheti meg:

1. Ha feltételezzük, hogy értékei a tartományban vannak A2: C9, kérjük, írja be a következő képletet az E2 cellába:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
Megjegyzések: A fenti képletben A2: C9 azt a cellatartományt jelöli, amelyikkel ki akarja vonni az egyedi értékeket, E1: E1 az oszlop első cellája, amelybe be akarja helyezni az eredményt, $ 2: $ 9 áll a sorokban a használni kívánt cellákat, és $ A: $ C azt jelzi, hogy az oszlopok tartalmazzák a használni kívánt cellákat. Kérjük, változtassa meg őket sajátjaira.

2. Ezután nyomja meg a gombot Shift + Ctrl + Enter gombokat, majd húzza a kitöltő fogantyút az egyedi értékek kibontásához, amíg üres cellák nem jelennek meg. Lásd a képernyőképet:

Ennek a képletnek a magyarázata:
  1. $ A $ 2: $ C $ 9: Megadja az ellenőrizendő adattartományt, amely az A2-től C9-ig terjedő cellák.
  2. IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C), 7^8):
    • $A$2:$C$9<>" ellenőrzi, hogy a tartomány cellái nem üresek-e.
    • COUNTIF($E$1:E1,$A$2:$C$9)=0 meghatározza, hogy ezeknek a celláknak az értékei még nem szerepelnek-e az E1-től E1-ig terjedő cellák tartományában.
    • Ha mindkét feltétel teljesül (azaz az érték nem üres, és még nem szerepel az E oszlopban), az IF függvény egyedi számot számít ki sora és oszlopa alapján (ROW($2:$9)*100+COLUMN($A: $C)).
    • Ha a feltételek nem teljesülnek, a függvény egy nagy számot (7^8) ad vissza, amely helyőrzőként szolgál.
  3. MIN(...): Megkeresi a fenti IF függvény által visszaadott legkisebb számot, amely megfelel a következő egyedi érték helyének.
  4. SZÖVEG(..."R0C00"): Ezt a minimális számot R1C1 stílusú címmé alakítja. Az R0C00 formátumkód a szám Excel cellahivatkozási formátumba való konvertálását jelzi.
  5. KÖZVETETT(...): Az INDIRECT függvényt használja az előző lépésben generált R1C1 stíluscím visszaállításához normál A1 stílusú cellahivatkozássá. Az INDIRECT funkció lehetővé teszi a cellahivatkozást egy szöveges karakterlánc tartalma alapján.
  6. &"": A képlet végén található &"" hozzáfűzése biztosítja, hogy a végső kimenetet szövegként kezeljük, így a páros számok szövegként jelennek meg.
 
Különleges értékek kinyerése több oszlopból az Excel 365 képletével

Az Excel 365 támogatja a dinamikus tömböket, így sokkal könnyebbé válik az egyedi értékek kinyerése több oszlopból:

Kérjük, írja be vagy másolja a következő képletet egy üres cellába, ahová az eredményt el szeretné helyezni, majd kattintson a gombra belép kulcs, hogy az összes egyedi értéket egyszerre kapja meg. Lásd a képernyőképet:

=UNIQUE(TOCOL(A2:C9,1))


Különleges értékeket nyerhet ki több oszlopból a Kutools AI Aide segítségével

Szabadítsa fel az erejét Kutools AI Aide az egyedi értékek zökkenőmentes kinyeréséhez az Excel több oszlopából. Ez az intelligens eszköz néhány kattintással átszitálja az Ön adatait, azonosítja és listázza az egyedi bejegyzéseket bármely kiválasztott tartományban. Felejtsd el az összetett képletek vagy a vba kódok fáradalmait; Fogadd el a hatékonyságot Kutools AI Aide és alakítsa át Excel-munkafolyamatát termelékenyebb és hibamentesebb élménnyé.

Megjegyzések: Ennek használatához Kutools AI Aide of Kutools az Excel számáraKérjük, töltse le és telepítse a Kutools for Excel alkalmazást először.

A Kutools for Excel telepítése után kattintson Kutools AI > AI segéd megnyitni Kutools AI Aide ablaktábla:

  1. Írja be igényét a chat mezőbe, majd kattintson Küldés vagy nyomja meg a gombot belép kulcs a kérdés elküldéséhez;
    "Kivonja ki az egyedi értékeket az A2:C9 tartományból, figyelmen kívül hagyva az üres cellákat, és helyezze el az eredményeket az E2-től kezdve:"
  2. Az elemzés után kattintson a gombra Végrehajt gombot a futtatáshoz. A Kutools AI Aide feldolgozza kérését AI segítségével, és az eredményeket közvetlenül az Excelben a megadott cellában adja vissza.


Kivonat egyedi értékeket több oszlopból a Pivot Table segítségével

Ha ismeri a kimutató táblázatot, az alábbi lépésekkel könnyedén kivonhatja az egyedi értékeket több oszlopból:

1. Először kérjük, helyezzen be egy új üres oszlopot az adatai bal oldalán, ebben a példában az A oszlopot illesztem be az eredeti adatok mellé.

2. Kattintson az adatok egyik cellájára, majd nyomja meg az gombot Alt + D gombokat, majd nyomja meg a gombot P azonnal nyissa meg a PivotTable és PivotChart varázsló, választ Több konszolidációs tartomány a varázsló 1. lépésében lásd a képernyőképet:

3. Ezután kattintson Következő gombot, ellenőrizze Hozzon létre egyoldalas mezőt számomra opció a varázsló 2. lépésében, lásd a képernyőképet:

4. Kattintson a gombra Következő gombra kattintva válassza ki azt az adattartományt, amely tartalmazza a bal oldali új oszlopot is, majd kattintson a gombra hozzáad gomb az adattartomány hozzáadásához a Minden tartomány lista mező, lásd a képernyőképet:

5. Az adattartomány kiválasztása után kattintson a tovább gombra Következő, a varázsló 3. lépésében válassza ki, hová kívánja helyezni a kimutatás táblázatot.

6. Végül kattintson befejez a varázsló befejezéséhez, és az aktuális munkalapon létrejött egy pivot tábla, majd törölje az összes mező jelölését Válassza ki a jelentéshez hozzáadni kívánt mezőket szakasz, lásd a képernyőképet:

7. Ezután ellenőrizze a mezőt Érték vagy húzza az Értéket a Sorok címkét, akkor a több oszlopból az alábbiak szerint kapja meg az egyedi értékeket:


Kivonat egyedi értékeket több oszlopból VBA kóddal

A következő VBA-kóddal több oszlopból is kivonhatja az egyedi értékeket.

1. Tartsa lenyomva a ALT + F11 gombokat, és ez megnyitja a Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablakba.

VBA: Kivonat egyedi értékeket több oszlopból

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Ezután nyomja meg a gombot F5 a kód futtatásához, és megjelenik egy felszólító mező, amely emlékezteti Önt a használni kívánt adattartomány kiválasztására. Lásd a képernyőképet:

4. Kattintson a gombra OK, megjelenik egy másik prompt doboz, amely lehetővé teszi, hogy kiválasszon egy helyet az eredmény elhelyezéséhez, lásd a képernyőképet:

5. Kattints OK ennek a párbeszédpanelnek a bezárásához és az összes egyedi értéket egyszerre kinyerte.


Relatívabb cikkek:

  • Számolja meg az egyedi és megkülönböztetett értékek számát egy listából
  • Tételezzük fel, hogy hosszú értéklistád van néhány ismétlődő elemmel, most meg akarod számolni az egyedi értékek számát (az értékeket, amelyek csak egyszer jelennek meg a listában) vagy a különálló értékeket (a lista összes különböző értéke, ez egyedi értékek + 1. duplikált értékek) egy oszlopban, a bal oldali képernyőkép szerint. Ez a cikk arról fog beszélni, hogyan kell kezelni ezt a munkát az Excel programban.
  • Kivonat egyedi kritériumok alapján az Excelben
  • Tételezzük fel, hogy Önnek a következő adattartománya van, amely csak az „A” oszlop egyedi kritériumai alapján szeretné felsorolni a „B” oszlop egyedi neveit, hogy az eredményt az alábbi képernyőképen láthatja. Hogyan tudná gyorsan és egyszerűen kezelni ezt a feladatot az Excel programban?
  • Összegezze az egyedi értékeket az Excel kritériumai alapján
  • Például van egy adattartományom, amely a Név és a Sorrend oszlopokat tartalmazza, hogy a Rendelés oszlopban csak az egyedi értékeket összegezzem a Név oszlop alapján, a következő képernyőkép szerint. Hogyan lehet ezt a feladatot gyorsan és egyszerűen megoldani az Excelben?

A legjobb irodai hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
Comments (31)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Thank you for this solution, however what if the columns are in separate excel sheet? or is in separate columns instead of a table?
This comment was minimized by the moderator on the site
Hello, Jon,
The methods in this article ar only works well for a range of data, if your data in separate columns, you should copy and paste them into one range first, and then apply the formula or VBA code.
Thank you!
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello, Michael H.
Thanks for your kindly explanation.
Hope this can help others in the future.😄
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello Sir! The VBA worked wonders, thank you very much for that! I was wondering, If I change the original data, is it possible to refresh the column with the unique values automatically?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello Ioannis,

Glad to help. After you change the original data, the VBA can not refresh the result automatically. And the easiest way I can think of is to press Ctrl + Alt + F9 to refresh all results in worksheets in all open workbooks. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
The array formula at the top is working great when used with data in the same sheet, however when I try to use it to reference the same exact data from another sheet the formula returns nothing. I'm unable to figure out why. Is there a limitation with array functions that prevents you from referencing ranges in a different sheet?

Thanks for any insight you can provide.
This comment was minimized by the moderator on the site
Hello Erin,

Glad to help. The INDIRECT function in this formula is more complicated to use when referencing data in other worksheets. It is not recommended to use this feature when referencing ranges in different worksheets.

For example: Now the data is in Sheet1, I want to reference the content of cell C2 of Sheet1 in Sheet2. First, in any two cells in Sheet2, such as D1 and D2, enter Sheet1 and C2, respectively. At this point, enter the formula in the empty cell of Sheet2:
=INDIRECT("'"&D1&"'!"&D2), then the content of cell C2 in Sheet1 can be returned.

As you can see, it make things way more complex. Hope my explanation can help. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Czy to żart?
This comment was minimized by the moderator on the site
can we create uniqdata function instead of macro?
This comment was minimized by the moderator on the site
Hi, İlhan,If you like a User Defined Function to create a formula for solving this problem, the below code may help you:After inserting the code, select a list of cells where you want to put the results. Then type this formula:=Uniques(A1:C4)  in the formula bar.Press Ctrl+Shift+Enter keys together. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
This comment was minimized by the moderator on the site
Thanks for the code. I'm using the VBA code of this page. Is there a way to add a sorting code after the unique values are extracted so it sorts it automatically?
This comment was minimized by the moderator on the site
Regarding the formula version, could you explain in more detail what this portion is doing? *100+COLUMN($A:$C),7^8)),"R0C00") Specifically, what are the *100, 7^8, and "R0C000" doing? I'm understanding everything else, but I can't figure out what these are for.
This comment was minimized by the moderator on the site
Little late for my response here but...
ROW($2:$9)*100 - this is multiplying the row number *100, so if it's in row 5, now the number is 500
COLUMN($A:$C) - this gets added to the row*100 number, so if it's row 5 col 2, then the number is 502.
7^8)), - this (I think) is to have a max value for the min statement from earlier.
"R0C00") - this formats the text based on the number. In the example, we had 502 so this gives R5C02 (row 5, col 02).

If you have a lot of columns but not many rows, then you could change it to ROW($2:$9)*1000+COLUMN($A:$C),7^8)),"R0C000")
This comment was minimized by the moderator on the site
i've adjusted to my sheet but am only returning the first value in the defined array... what am i missing?
This comment was minimized by the moderator on the site
Hello, Cody,
The above formula works well in my worksheet, could you give a screenshot of your data problem here?
Thank you!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations