Przejdź do głównej zawartości

Jak wyodrębnić unikalne wartości z wielu kolumn w programie Excel?

Przypuśćmy, że masz kilka kolumn z wieloma wartościami, niektóre wartości są powtarzane w tej samej lub innej kolumnie. A teraz chcesz znaleźć wartości, które są obecne w jednej z kolumn tylko raz. Czy są jakieś szybkie sztuczki, aby wyodrębnić unikalne wartości z wielu kolumn w programie Excel?


Wyodrębnij unikalne wartości z wielu kolumn za pomocą formuł

W tej sekcji zostaną omówione dwie formuły: jedna wykorzystująca formułę tablicową odpowiednią dla wszystkich wersji programu Excel, a druga wykorzystująca dynamiczną formułę tablicową specjalnie dla programu Excel 365.

Wyodrębnij unikalne wartości z wielu kolumn za pomocą formuły tablicowej dla wszystkich wersji programu Excel

Dla użytkowników dowolnej wersji programu Excel formuły tablicowe mogą być potężnym narzędziem do wyodrębniania unikalnych wartości z wielu kolumn. Oto jak możesz to zrobić:

1. Zakładając wartości w zakresie Odp.2: C9, wprowadź następującą formułę do komórki E2:

=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"),)&""
Note: W powyższym wzorze, A2: C9 wskazuje zakres komórek, z których chcesz wyodrębnić unikalne wartości, E1: E1 to pierwsza komórka kolumny, w której chcesz umieścić wynik, $ 2: $ 9 stoi w wierszach zawiera komórki, których chcesz użyć, i $ A: $ C wskazuje, że kolumny zawierają komórki, których chcesz użyć. Zmień je na własne.

2. Następnie naciśnij Shift + Ctrl + Enter klucze razem, a następnie przeciągnij uchwyt wypełniania, aby wyodrębnić unikatowe wartości, aż pojawią się puste komórki. Zobacz zrzut ekranu:

Wyjaśnienie tego wzoru:
  1. 2 $ A: 9 $ C $: Określa zakres danych do sprawdzenia, czyli komórki od A2 do C9.
  2. IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C), 7^8):
    • 2 $A$: 9$C$<>"" sprawdza, czy komórki zakresu nie są puste.
    • COUNTIF($E$1:E1,$A$2:$C$9)=0 określa, czy wartości tych komórek nie znalazły się jeszcze w zakresie komórek od E1 do E1.
    • Jeżeli oba warunki są spełnione (tj. wartość nie jest pusta i nie znajduje się jeszcze w kolumnie E), funkcja JEŻELI oblicza unikalną liczbę na podstawie swojego wiersza i kolumny (ROW($2:$9)*100+COLUMN($A: $C)).
    • Jeśli warunki nie są spełnione, funkcja zwraca dużą liczbę (7^8), która służy jako symbol zastępczy.
  3. MIN(...): Znajduje najmniejszą liczbę zwróconą przez powyższą funkcję JEŻELI, odpowiadającą lokalizacji następnej unikalnej wartości.
  4. TEKST(...,"R0C00"): Konwertuje tę minimalną liczbę na adres typu R1C1. Kod formatu R0C00 wskazuje konwersję liczby na format odniesienia do komórki Excel.
  5. POŚREDNI(...): Używa funkcji POŚREDNIE do konwersji adresu typu R1C1 wygenerowanego w poprzednim kroku z powrotem na normalne odwołanie do komórki typu A1. Funkcja POŚREDNIA umożliwia odwoływanie się do komórek na podstawie zawartości ciągu tekstowego.
  6. &"": Dodanie &„” na końcu formuły gwarantuje, że wynik końcowy będzie traktowany jako tekst, więc liczby parzyste będą wyświetlane jako tekst.
 
Wyodrębnij unikalne wartości z wielu kolumn za pomocą formuły dla programu Excel 365

Excel 365 obsługuje tablice dynamiczne, co znacznie ułatwia wyodrębnianie unikalnych wartości z wielu kolumn:

Wprowadź lub skopiuj poniższą formułę do pustej komórki, w której chcesz umieścić wynik, a następnie kliknij Wchodzę klucz, aby uzyskać wszystkie unikalne wartości na raz. Zobacz zrzut ekranu:

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


Wyodrębnij unikalne wartości z wielu kolumn za pomocą Kutools AI Aide

Uwolnij moc Pomocnik AI Kutools aby bezproblemowo wyodrębnić unikalne wartości z wielu kolumn w programie Excel. Za pomocą zaledwie kilku kliknięć to inteligentne narzędzie przesiewa dane, identyfikując i wyświetlając unikalne wpisy w dowolnym wybranym zakresie. Zapomnij o kłopotach związanych ze złożonymi formułami lub kodem vba; ciesz się wydajnością Pomocnik AI Kutools i przekształć przepływ pracy w programie Excel w bardziej produktywne i wolne od błędów doświadczenie.

Note: Aby tego użyć Pomocnik AI Kutools of Kutools dla programu ExcelProszę pobierz i zainstaluj Kutools dla Excela pierwszy.

Po zainstalowaniu Kutools dla programu Excel kliknij Kutools AI > Doradca AI otworzyć Pomocnik AI Kutools szkło:

  1. Wpisz swoje wymagania w polu czatu i kliknij Wyślij lub naciśnij Wchodzę klucz do wysłania pytania;
    „Wyodrębnij unikalne wartości z zakresu A2:C9, ignorując puste komórki, i umieść wyniki zaczynając od E2:”
  2. Po analizie kliknij Wykonać przycisk, aby uruchomić. Kutools AI Aide przetworzy Twoje żądanie za pomocą AI i zwróci wyniki w określonej komórce bezpośrednio w Excelu.


Wyodrębnij unikalne wartości z wielu kolumn za pomocą tabeli przestawnej

Jeśli znasz tabelę przestawną, możesz łatwo wyodrębnić unikalne wartości z wielu kolumn, wykonując następujące czynności:

1. Najpierw wstaw jedną nową pustą kolumnę po lewej stronie danych, w tym przykładzie wstawię kolumnę A obok oryginalnych danych.

2. Kliknij jedną komórkę w swoich danych i naciśnij Alt + D klawiszy, a następnie naciśnij P natychmiast, aby otworzyć Kreator tabel przestawnych i wykresów przestawnychwybierz Wiele zakresów konsolidacji w kroku kreatora 1, zobacz zrzut ekranu:

3. Następnie kliknij Następna przycisk, sprawdź Utwórz dla mnie jedno pole strony opcja w kroku kreatora 2, zobacz zrzut ekranu:

4. Kliknij dalej Następna kliknij, aby zaznaczyć zakres danych obejmujący lewą nową kolumnę komórek, a następnie kliknij Dodaj przycisk, aby dodać zakres danych do pliku Wszystkie zakresy pole listy, zobacz zrzut ekranu:

5. Po wybraniu zakresu danych kliknij dalej Następna, w kroku 3 kreatora wybierz, gdzie chcesz umieścić raport w formie tabeli przestawnej, jak chcesz.

6. Nareszcie kliknij koniec aby zakończyć pracę kreatora, a tabela przestawna została utworzona w bieżącym arkuszu, a następnie odznacz wszystkie pola w Wybierz pola, które chcesz dodać do raportu sekcja, patrz zrzut ekranu:

7. Następnie sprawdź pole wartość lub przeciągnij wartość do Wydziwianie label, teraz otrzymasz unikalne wartości z wielu kolumn w następujący sposób:


Wyodrębnij unikalne wartości z wielu kolumn za pomocą kodu VBA

Za pomocą następującego kodu VBA można również wyodrębnić unikalne wartości z wielu kolumn.

1. Przytrzymaj ALT + F11 klucze i otwiera plik Okno Microsoft Visual Basic for Applications.

2. Kliknij wstawka > Modułi wklej następujący kod w oknie modułu.

VBA: wyodrębnij unikalne wartości z wielu kolumn

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. Następnie naciśnij F5 aby uruchomić ten kod, pojawi się okno zachęty przypominające o wyborze zakresu danych, którego chcesz użyć. Zobacz zrzut ekranu:

4. A następnie kliknij OKpojawi się kolejne okno zachęty umożliwiające wybranie miejsca do umieszczenia wyniku, patrz zrzut ekranu:

5. Kliknij OK aby zamknąć to okno dialogowe, a wszystkie unikalne wartości zostały wyodrębnione jednocześnie.


Więcej artykułów względnych:

  • Policz liczbę unikalnych i odrębnych wartości z listy
  • Przypuśćmy, że masz długą listę wartości z kilkoma zduplikowanymi elementami, teraz chcesz policzyć liczbę unikalnych wartości (wartości, które pojawiają się na liście tylko raz) lub odrębnych wartości (wszystkie różne wartości na liście, oznacza to unikalne wartości + pierwsze zduplikowane wartości) w kolumnie, jak pokazano na lewym ekranie. W tym artykule opowiem o tym, jak radzić sobie z tą pracą w programie Excel.
  • Sumuj unikalne wartości na podstawie kryteriów w programie Excel
  • Na przykład mam zakres danych, który zawiera kolumny Nazwa i Kolejność, aby teraz zsumować tylko unikalne wartości w kolumnie Zamówienie na podstawie kolumny Nazwa, jak pokazano na poniższym zrzucie ekranu. Jak szybko i łatwo rozwiązać to zadanie w programie Excel?

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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