image

In unseren vorherigen Artikeln haben wir gelernt, wie Sie mithilfe einer Kombination verschiedener Excel-Funktionen eindeutige Werte aus einem Bereich extrahieren. Obwohl sie fantastisch funktionieren, aber auch komplex sind, lässt sich dies nicht leugnen. Wenn Sie häufig eindeutige Werte extrahieren, werden Sie möglicherweise durch diese Formeln müde. Auch sie machen die Datei schwer und langsam.

In diesem Artikel erfahren Sie, 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:

Function UNIQUES(rng As Range) As Variant()

Dim list As New Collection

Dim Ulist() As Variant

'Adding each value of rng to the collection.

On Error Resume Next

For Each Value In rng

'here value and key are the same. The collection does not allow duplicate keys hence only unique values will remain.

list.Add CStr(Value), CStr(Value)

Next

On Error GoTo 0

'Defining the length of the array to the number of unique values. Since the array starts from 0, we subtract 1.

ReDim Ulist(list.Count - 1, 0)

'Adding unique value to the array.

For i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1)

Next

'Printing the array

UNIQUES = Ulist

End Function

Kopieren Sie den Codeto VB-Editor von Excel.

Verwenden der UNIQUE-Funktion

Die obige Funktion ist eine Verknüpfung: / Benutzerdefinierte Funktionen in vba-create-vba-Funktion, um ein Array zurückzugeben [benutzerdefinierte Mehrzellen-Array-Funktion]. Dies 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 + EINGABETASTE drücken müssen.

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

Wählen Sie dazu einen Bereich aus, in dem die eindeutige Liste angezeigt werden soll. Schreiben Sie nun diese Formel:

=UNIQUES(A2:B7)

Drücken Sie STRG + UMSCHALT + EINGABETASTE. Und es ist geschafft. Alle eindeutigen Werte werden im ausgewählten Bereich aufgelistet.

Hinweis: * 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 auf das Beenden eindeutiger Werte verwenden. Wenn Sie am Ende der Liste nicht # N / A sehen, bedeutet dies, dass möglicherweise mehr eindeutige Werte vorhanden sind .

Erläuterung des Codes

Ich habe in dieser UD-Funktion zwei Hauptkonzepte von VBA verwendet.

link: / excel-makros-und-vba-wie-man-vba-sammlungen-in-excel benutzt [sammlungen]

und link: / custom-functions-in-vba-create-vba-function-to-return-array [Benutzerdefinierte Array-Funktion]. Zunächst haben wir eine Sammlung verwendet, um die eindeutigen Werte aus dem angegebenen Bereich abzurufen.

for Each Value In rng

list.Add CStr(Value), CStr(Value) Next

next

Da wir eine Sammlung nicht auf das Blatt drucken können, haben wir sie auf eine andere Array-UList übertragen.

for i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1) Next

next

Hinweis: * Die Indizierung von VBA-Arrays beginnt bei 0 und die Indizierung von Sammlungen beginnt bei 1. Aus diesem Grund haben wir 1 für Array in for-Schleife subtrahiert und 1 zur Indizierung der Listensammlung hinzugefügt.

Am Ende haben wir dieses Array auf das Blatt gedruckt.

Es gibt eine EINZIGARTIGE Funktion, die nicht verfügbar ist, um 2016 zu übertreffen, die 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 einfach eindeutige Werte extrahiert. Ich hoffe, ich war erklärend genug, damit Sie das verstehen. Wenn Sie spezielle Fragen zu dieser oder einer anderen Frage im Zusammenhang mit Excel VBA haben, stellen Sie diese im Kommentarbereich unten.

`link: /wp-content-uploads-2019-12-UNIQUES-function.xls [__ UNIQUES-Funktion]

Verwandte Artikel:

link: / custom-functions-in-vba-create-vba-function-to-return-array [VBA-Funktion erstellen, um Array zurückzugeben] | Erfahren Sie, wie Sie eine benutzerdefinierte Array-Funktion erstellen, die ein Array zurückgibt.

link: / excel-array-formeln-arrays-in-excel-formel [Arrays in Excel Formul] | Erfahren Sie, welche Arrays in Excel enthalten sind.

link: / vba-user-defined-function [So erstellen Sie eine benutzerdefinierte Funktion über VBA] | Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel `link erstellen: / Benutzerdefinierte Funktionen-Benutzerdefinierte-Funktionen-aus-anderen-Arbeitsmappen-mit-vba-in-Microsoft-Excel [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 `link: / custom-functions-return-error-values-from-user-defined-functions-using-vba-in-microsoft-excel [Rückgabe von Fehlerwerten aus benutzerdefinierten Funktionen Funktionen mit VBA in Microsoft Excel] `| Erfahren Sie, wie Sie Fehlerwerte von einer benutzerdefinierten Funktion

zurückgeben können