Extrahieren Sie eindeutige Werte in Excel mit einer Funktion

Anonim

In unseren vorherigen Artikeln haben wir gelernt, wie man mit einer Kombination verschiedener Excel-Funktionen eindeutige Werte aus einem Bereich extrahiert. Obwohl sie fantastisch funktionieren, aber auch komplex sind, ist dies nicht zu leugnen. Wenn Sie häufig einzigartige Werte extrahieren, können diese Formeln Sie ermüden. Auch sie machen die Datei schwer und langsam.

In diesem Artikel erfahren Sie also, wie Sie eine benutzerdefinierte Funktion erstellen, die einen Bereich als Argument verwendet und nur eindeutige Werte aus diesem Bereich zurückgibt. Sie können den Code direkt in Ihre Datei kopieren und sofort verwenden.

VBA-Code für eindeutige Funktion:

Funktion UNIQUES(rng As Range) As Variant() Dim list As New Collection Dim Ulist() As Variant 'Hinzufügen jedes Wertes von rng zur Collection. Bei Fehler Fortsetzen für jeden Wert in rng 'hier sind Wert und Schlüssel gleich. Die Sammlung lässt keine doppelten Schlüssel zu, daher bleiben nur eindeutige Werte zurück. list.Add CStr(Value), CStr(Value) Next On Error GoTo 0 'Definieren der Länge des Arrays auf die Anzahl der eindeutigen Werte. Da das Array bei 0 beginnt, subtrahieren wir 1. ReDim Ulist(list.Count - 1, 0) 'Eindeutigen Wert zum Array hinzufügen. For i = 0 To list.Count - 1 Ulist(i, 0) = list(i + 1) Weiter 'Drucken des Arrays UNIQUES = Ulist End Function 

Kopieren Sie den Code in den VB-Editor von Excel.

Verwenden der UNIQUE-Funktion

Die obige Funktion ist eine benutzerdefinierte Multi-Cell-Array-Funktion. Das bedeutet, dass Sie den Bereich auswählen müssen, in dem die eindeutige Liste gedruckt werden soll, dann die Formel schreiben und die Tastenkombination STRG+UMSCHALT+EINGABE drücken müssen.

Im obigen gif haben wir eine Liste der Länder. Jetzt gibt es viele doppelte Länder auf der Liste. Wir möchten nur die Liste der einzigartigen Länder erhalten.

Wählen Sie dazu einen Bereich aus, in dem Sie die eindeutige Liste erstellen möchten. Schreiben Sie nun diese Formel:

=EINZIGARTIG(A2:B7)

Drücken Sie die Tastenkombination STRG+UMSCHALT+EINGABE. Und es ist vollbracht. Alle eindeutigen Werte werden im ausgewählten Bereich aufgelistet.

Notiz:Wenn der von Ihnen ausgewählte Bereich größer als der eindeutige Wert ist, wird der Fehler #N/A angezeigt. Sie können es als Hinweis darauf verwenden, dass eindeutige Werte enden. Wenn #N/A am Ende der Liste nicht angezeigt wird, bedeutet dies, dass möglicherweise mehr eindeutige Werte vorhanden sind.

Erklärung des Codes

Ich habe in dieser UD-Funktion zwei Hauptkonzepte von VBA verwendet. Sammlungen und benutzerdefinierte Array-Funktion. Zuerst haben wir eine Sammlung verwendet, um die eindeutigen Werte aus dem bereitgestellten Bereich abzurufen.

für jeden Wert in rng list.Add CStr(Value), CStr(Value) Next next 

Da wir keine Sammlung auf dem Blatt drucken können, haben wir sie auf ein anderes Array UList übertragen.

for i = 0 To list.Count - 1 Ulist(i, 0) = list(i + 1) Next next 

Notiz:Die VBA-Array-Indizierung beginnt bei 0 und die Auflistungsindizierung beginnt bei 1. Aus diesem Grund haben wir 1 für Array in der for-Schleife abgezogen und 1 zur Indizierung der Listenauflistung hinzugefügt.

Am Ende haben wir dieses Array auf das Blatt gedruckt.

Es gibt eine EINZIGARTIGE Funktion, die in Excel 2016 nicht verfügbar ist und dasselbe tut. Diese Funktion ist in Excel 2019 verfügbar. Nur die Mitglieder des Insiderprogramms haben Zugriff auf diese Funktion. Mit dieser Technik können Sie im Büro angeben, dass Sie MS voraus sind.

Also ja, Leute, so können Sie eine Funktion erstellen, die eindeutige Werte einfach extrahiert. Ich hoffe, ich war erklärend genug, um Ihnen das verständlich zu machen. Wenn Sie spezielle Fragen zu dieser oder einer anderen Excel-VBA-bezogenen Frage haben, stellen Sie diese im Kommentarbereich unten.

Klicken Sie auf den folgenden Link, um die Arbeitsdatei herunterzuladen:

UNIQUES-Funktion

So verwenden Sie VBA-Sammlungen in Excel | Lernen Sie die Verwendung von Sammlungen kennen, die Ihnen helfen können, einzigartige Werte zu erhalten.

VBA-Funktion erstellen, um Array zurückzugeben | Erfahren Sie, wie Sie eine benutzerdefinierte Array-Funktion erstellen, die ein Array zurückgibt.

Arrays in Excel Formul|Erfahren Sie, was Arrays in Excel sind.

So erstellen Sie eine benutzerdefinierte Funktion über VBA | Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel erstellen

Verwenden einer benutzerdefinierten Funktion (UDF) aus einer anderen Arbeitsmappe mit VBA in Microsoft Excel | Verwenden Sie die benutzerdefinierte Funktion in einer anderen Arbeitsmappe von Excel

Fehlerwerte von benutzerdefinierten Funktionen mit VBA in Microsoft Excel zurückgeben | Erfahren Sie, wie Sie Fehlerwerte von einer benutzerdefinierten Funktion zurückgeben können