Excel-Funktion Ausrechnen()
Diese benutzerdefinierte Funktion berechnet das Ergebnis einer als Text eingegebenen Formel.
Anforderung:
Um den Rechenweg zu dokumentieren, soll für eine Flächenberechnung die Formel als Text dargestellt werden und in der Zelle daneben das Ergebnis angezeigt werden.
Lösung:
Es gibt in Excel dafür keine Tabellenfunktion, die das kann. Aber aus VBA kenne ich die Funktion Evaluate(), die genau das macht. Also erstelle ich damit eine kleine benutzerdefinierte Funktion. Damit die Darstellung etwas hübscher wird (die Anforderung stammte von einer Architektin ;-), wird das "x" als Multiplikationszeichen akzeptiert.
Deshalb wird ein "x" von der Funktion in ein "*" umgewandelt. Da VBA mit Zahlen im US-Format (1.2 statt 1,2) rechnet, wird auch noch das 1000er-Trennzeichen gelöscht und das "," gegen den "." getauscht. Dann kann die Formel ausgerechnet werden.
So sieht die fertige Funktion aus:
Function Ausrechnen(Zelle As Range) As Double
'===================================================================================
' Eine benutzerdefinierte Funktion aus Raphael Heins Da|ten|bank|Ma|nu|fak|tur
'
' Benutzung: Eingabe im Tabellenblatt "=Ausrechnen(A1)
' Funktion: Berechnet eine mathematisch korrekt eingegebene Formel in der Zelle A1
' Besonderheit: Ein "x" in der Formel wird in ein "*" umgewandelt
'
' Autor: Raphael Hein
' Datum: 01.05.2014
'===================================================================================
Dim strText As String
' Funktion immer neu berechnen, wenn sich etwas im Tabellenblatt ändert
Application.Volatile
strText = Zelle.Text
If strText <> "" Then
' 1000er-Trennzeichen löschen
strText = Replace(strText, ".", "")
' Dezimaltrennzeichen von US auf D ändern
strText = Replace(strText, ",", ".")
' x in * umwandeln
strText = Replace(strText, "x", "*")
' Formel ausrechnen
Ausrechnen = Evaluate(strText)
End If
End Function
Diese Funktion arbeitet natürlich auch in Excel:mac. Eine Arbeitmappe mit der Funktion, Beispielen und Erklärungen gibt es für Sie zum Download.
Sie wissen nicht, was eine benutzerdefinierte Funktion ist und wie man sie erstellt? Dann erkläre ich es Ihnen hier kurz.