ExcelFunktionenVersion: Excel 2003 | |
Excel bietet eine sehr große Anzahl von Funktionen. Es gibt mathematische Funktionen, Datumsfunktionen, statistische Funktionen, Textfunktionen und andere.
Zum Aufruf einer Funktion klickt man in der Bearbeitungsleiste auf fx (Bild 1) und wählt in der Liste der erscheinenden Funktionen die gewünschte Funktion aus (ggf. Kategorie auswählen: Alle wählen).
| |
| Bild 1: Funktion einfügen mit fx in der Bearbeitungsleiste | |
Der daraufhin erscheinende Funktions-Assistent bietet Unterstützung bei der Angabe der Argumente der Funktion.
Wenn man weiß, wie die Funktion heißt und welche Argumente sie erwartet, kann man natürlich den Funktionsaufruf direkt eintippen.
Gelegentlich kommt es vor, dass eine gewünschte Funktion nicht vorhanden ist. Zum Beispiel fehlt eine Excel-Funktion zur Berechnung des größten gemeinsamen Teilers zweier ganzer Zahlen. Daher schreiben wir uns diese Funktion in der Programmiersprache VBA selbst.
Hierzu wählen wir im Menü Extras | Makro | Visual Basic-Editor. Es erscheint ein neues Fenster, der Visual Basic-Editor. Dort wählen wir im Menü Einfügen | Modul. Es erscheint eine weiße Fläche, in die wir folgenden Programmcode eintippen:
Public Function ggt(x, y) a = Abs(x) b = Abs(y) Do While b > 0 r = a Mod b a = b b = r Loop ggt = a End Function |
Anschließend können wir die Funktion ggt wie eine normale Excel-Funktion aufrufen (Bild 2). Zu beachten ist, dass hier die Argumente der Funktion durch Semikolon getrennt werden.
| |
| Bild 2: Aufruf einer eigenen Funktion | |
Wenn wir die Einträge in den Zellen A1 oder B1 ändern, wird wie gewohnt auch der Funktionswert in Zelle C1 aktualisiert.
Wir wollen zählen, wieviele ungerade Zahlen in einer Liste von Zahlen vorkommen. Hierzu dient folgende Funktion:
Function countodd() n = 0 i = 1 Do While Not IsEmpty(Cells(i, 1)) If Cells(i, 1) Mod 2 = 1 Then n = n + 1 End If i = i + 1 Loop countodd = n End Function |
Die Funktion zählt richtig, dass in der als Beispiel angegebenen Liste drei ungerade Zahlen vorhanden sind (Bild 3).
| |
| Bild 3: Ungerade Zahlen zählen | |
Wird nun aber eine Zahl in der Liste geändert oder eine weitere Zahl hinzugefügt, so wird der Funktionswert in Zelle B1 nicht automatisch aktualisiert. Dies liegt daran, dass Excel nur Zellen aktualisiert, die einen Bezug auf die geänderte Zelle enthalten. Der Funktionsaufruf countodd() enthält aber keinen Bezug auf die geänderte Zelle.
Wir können erzwingen, dass die Funktion bei jeder Änderung, ganz gleich wo in der Excel-Arbeitsmappe, jedesmal neu berechnet wird, indem wir die Anweisung Application.Volatile (engl.: volatile – veränderlich) in die Funktion schreiben:
Function countodd() Application.Volatile . . . End Function |
Eine bessere Lösung ist es, einer solchen Funktion stets den Bezug auf den Bereich, in dem Änderungen vorkommen können, als Argument zu übergeben. Dann wird die Funktion nur dann neu berechnet, wenn sich in dem betreffenden Bereich etwas ändert. Im Beispiel ist dieser Bereich die Spalte A; diese wird im Aufruf der Funktion durch =countodd(A:A) übergeben.
Function countodd(bereich As Range) n = 0 i = 1 j = bereich.Column Do While Not IsEmpty(Cells(i, j)) If Cells(i, j) Mod 2 = 1 Then n = n + 1 End If i = i + 1 Loop countodd = n End Function |
Weiter mit: ![]() |
|
|