Excel

Funktionen

Version: Excel 2003

 aufwärts

Excel bietet eine sehr große Anzahl von Funktionen. Es gibt mathe­matische Funktionen, Datums­funktionen, statistische Funktionen, Text­funktionen und andere.

Funktion aufrufen

Zum Aufruf einer Funktion klickt man in der Bearbeitungs­leiste 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
Bild 1: Funktion einfügen mit fx in der Bearbeitungsleiste

Der daraufhin erscheinende Funktions-Assistent bietet Unter­stü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 Funktions­aufruf direkt eintippen.

Eigene Funktion definieren

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 Programmier­sprache 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
Bild 2: Aufruf einer eigenen Funktion

Wenn wir die Einträge in den Zellen A1 oder B1 ändern, wird wie gewohnt auch der Funktions­wert in Zelle C1 aktualisiert.

Anderes Beispiel

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
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 Funktions­wert in Zelle B1 nicht automatisch aktualisiert. Dies liegt daran, dass Excel nur Zellen aktualisiert, die einen Bezug auf die geänderte Zelle enthalten. Der Funktions­aufruf countodd() enthält aber keinen Bezug auf die geänderte Zelle.

Aktualisierung erzwingen

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:   up

 

homeH.W. Lang   Hochschule Flensburg   lang@hs-flensburg.de   Impressum   ©  
Valid HTML 4.01 Transitional