Wie man Excel funktionsmässig aufwertet

Wenn das Angebot an Formeln in Microsofts Tabellenkalkulation nicht ausreicht, kann man eigene Funktionen nachrüsten.

«Ich möchte in meiner Tabelle Zellen farblich markieren, die eine bestimmte Formel verwenden. Ist das möglich?» schreibt ein Leser der Kummerbox. Die Antwort ist ein Jein. Eigentlich geht das nicht. Mit einem kleinen Trick aber doch.

Dieser Trick basiert darauf, dass sich in Excel eigene Funktionen hinterlegen lassen. Diese lassen sich dann, wie die ganz normalen Excel-Funktionen, in seinen Tabellen verwenden. Man baut somit eine Funktion ein, die die in einer Zelle verwendete Formel zurückliefert – und kann diese Information dann auch für die bedingte Formatierung heranziehen.

Die eigene Funktion erfassen
Um die benutzerdefinierte Funktion zu erfassen, betätigen wir in Excel die Tastenkombination Alt + F11, um den Visual-Basic-Editor zu starten. Dann klicken wir auf Einfügen > Modul, um den Code für die Funktion zu erfassen. Und tragen folgenden Code ein:

Function GetFormula(Cell As Range) As String
   GetFormula = Cell.Formula
End Function

120606-funktionen01.jpg
Im ersten Schritt wird im Visual-Basic-Editor der Code für die individuelle Funktion erfasst.

Für Nichtprogrammierer ist dieser Code zwar nicht selbsterklärend, aber auch nicht so schwer zu verstehen. Deklariert wird eine Funktion (function), die GetFormula heisst und an die der Inhalt der angegebenen Zelle übergeben wird (Parameter Cell). Auf der eingerückten Zeile wird der Rückgabewert für GetFormula definiert: Der Code Cell.Formula ermittelt die Formel, die in der übergebenen Zelle steckt.

Nun können Sie zum Excel-Arbeitsblatt zurückkehren und dort die neue Funktion verwenden. Wenn wir in eine Zelle die Formel =GetFormula(A1) eintragen, wird uns die Funktion in der Zelle A1 zurückgeliefert.

Die Funktion für die bedingte Formatierung nutzen
Aber zurück zum Anliegen des Kummerbox-Lesers: Er wollte sich Zellen anzeigen lassen, die eine bestimmte Funktion verwenden, beispielweise die Summe. Da GetFormula englische Funktionsnamen verwendet, müssen wir eine Formel verwenden, die den Wahrheitswert «wahr» zurückliefert, falls die Funktion «SUM» vorhanden ist. Das klappt mit folgender Formel:

=FINDEN("SUM";GetFormula(A1))>0

Die Funktion Finden gibt eine Zahl grösser als 0 zurück, falls GetFormula(A1) eine Formel wie =SUM(B1:E1) zurückliefert, und darum ist das Formelergebnis in diesem Fall wahr. Wir markieren die Zelle A1 und legen die bedingte Formatierung fest. Hierbei geben wir an, dass wir eine Formel zur Ermittlung der zu formatierenden Zellen verwenden möchten und tragen obige Formel ein. Wir legen ausserdem das Format fest, im Screenshot also die Hintergrundfarbe in Orange. Dann markieren wir mit dem Befehl Format übertragen alle Zellen, die ausgewertet werden sollen.

Und dann wars das auch schon: Es werden nun im Tabellenblatt alle Zellen, die einen Summenbefehl enthalten, mit der orangefarbenem Hintergrund angezeigt.

120606-funktionen02.jpg
Und im zweiten Schritt lässt sich die neue Funktion für die bedingte Formatierung verwenden.

Autor: Matthias

Diese Website gibt es seit 1999. Gebloggt wird hier seit 2007.

Kommentar verfassen