In diesem Artikel erstellen wir eine benutzerdefinierte Funktion (UDF) oder eine benutzerdefinierte Funktion, um eindeutige Werte in einem definierten Bereich hinzuzufügen.

Die Rohdaten für diesen Artikel bestehen aus Zufallszahlen in sieben verschiedenen Stichproben.

ArrowRawData

Fügen Sie eine weitere Spalte hinzu, um die Summe der Werte in jeder Zeile zu ermitteln.

ArrowTotal

In der Spalte „Gesamtsumme“ wird die Summe der Zahlen in jeder Zeile angezeigt.

Fügen Sie nun eine weitere Spalte hinzu, um die Summe nur eindeutiger Zahlen in jeder Zeile zu ermitteln. Wir haben eine benutzerdefinierte Funktion „AddDistinctValues“ erstellt, um die Summe der eindeutigen Zahlen zu ermitteln. Fügen Sie die Formel = AddDistinctValues ​​(A11: G11) in Zelle I11 hinzu und ziehen Sie die Formel in andere Zeilen.

UDF „AddDistinctValues“ gibt die Summe der eindeutigen Zahlen im definierten Bereich an. In der Abbildung unten ist der Unterschied zwischen der Gesamtsumme und der Summe der eindeutigen Zahlen leicht zu erkennen.

ArrowUniqueNoSum

Logische Erklärung

UDF „AddDistinctValues“ verwendet das Bereichsobjekt als Eingabe. Es werden eindeutige Zahlen im Eingabebereich addiert.

Um eindeutige Zahlen im Eingabebereich zu finden, haben wir ein Sammlungsobjekt verwendet. Da wir wissen, dass die Sammlung keine doppelten Werte speichern kann, werden beim Einfügen von Zahlen in den Eingabebereich der Sammlung keine doppelten Zahlen erneut in die Sammlung eingefügt, sondern es wird ein Fehler generiert.

Zur Behandlung des Fehlers haben wir die Anweisung „On Error Resume Next“ verwendet.

Diese Anweisung stoppt die Funktion nicht, wenn der Fehler auftritt. Stattdessen wechselt Loop zur nächsten Anweisung.

Sobald wir die eindeutigen Nummern in der Sammlung haben, können wir sie im Array hinzufügen.

Bitte folgen Sie unten für den Code

Function AddDistinctValues(InputRange As Range) As Integer

'Declaring variables

Dim Rng As Range

Dim UniqueValues As New Collection

Dim UniqueValue As Variant

'Recalculates the function whenever calculation occur in any other cell

Application.Volatile

On Error Resume Next

'Adding unique values to collection from input range

For Each Rng In InputRange

UniqueValues.Add Rng.Value, CStr(Rng.Value)

Next

On Error GoTo 0

AddDistinctValues = 0

'Adding values in the collection

For Each UniqueValue In UniqueValues

AddDistinctValues = AddDistinctValues + UniqueValue

Next

End Function

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]