Hier ist ein sehr einfaches Beispiel. Wir möchten die Anzahl der Werte in Spalte B zählen, die 10 überschreiten . Wir setzen die Kriterien in Zelle C1 und geben in C2 ein:
=COUNTIF(B:B,C1)
Wir wissen jetzt, dass es 11 Elemente gibt, die zur Zählung beitragen. Jetzt wollen wir sie finden.
Geben Sie die folgende benutzerdefinierte Funktion in einem Standardmodul ein:
Public Function CountIfFinder(rng As Range, crit As String) As String Dim r As Range, DQ As String DQ = Chr(34) crit = DQ & crit & DQ CountIfFinder = "" Set rng = Intersect(rng, rng.Parent.UsedRange) For Each r In rng s = "=countif(" & r.Address & "," & crit & ")" If Evaluate(s) = 1 Then CountIfFinder = CountIfFinder & "," & r.Address(0, 0) Next r CountIfFinder = Mid(CountIfFinder, 2) End Function
Wählen Sie eine Zelle aus (sagen Sie D1 ) und geben Sie Folgendes ein:
=CountIfFinder(B:B,C1)
Benutzerdefinierte Funktionen (UDFs) sind sehr einfach zu installieren und zu verwenden:
- ALT-F11 öffnet das VBE-Fenster
- ALT-I ALT-M öffnet ein neues Modul
- Fügen Sie das Zeug ein und schließen Sie das VBE-Fenster
Wenn Sie die Arbeitsmappe speichern, wird die UDF damit gespeichert. Wenn Sie später als 2003 eine Version von Excel verwenden, müssen Sie die Datei als .xlsm statt als .xlsx speichern
So entfernen Sie die UDF:
- Öffnen Sie das VBE-Fenster wie oben
- Löschen Sie den Code
- Schließen Sie das VBE-Fenster
So verwenden Sie die UDF aus Excel:
= meine Funktion (A1)
Weitere Informationen zu Makros im Allgemeinen finden Sie unter:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
und
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
und Einzelheiten zu UDFs finden Sie unter:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Makros müssen aktiviert sein, damit dies funktioniert!