In Excel gibt es eine Reihe von Funktionen, mit denen man bestimmen kann, wie Zahlen gerundet werden:
Die allgemein geläufigsten sind:
- Ganzzahl(Zahl) – rundet eine Zahl immer auf die nächstkleinere Ganzzahl ab
- Ganzzahl(6,55) => 6
- Runden(Zahl, Anzahl_der_Stellen) – runden immer anhand der angegebenen Nachkommastellen (ab- oder auf, hängt von den Nachkommastellen ab; ab 0,5 wird aufgerundet.)
- Runden(6,4999999; 0) => 6
- Runden(6,5000000;0) => 7
- Runden(6,499;2) => 6,50
- Aufrunden(Zahl, Anzahl_der_Stellen) bzw. Abrunden(Zahl, Anzahl_der_Stellen) – rundet je nach Formel auf oder ab
Das sind die Excel Funktionen, die wohl die meisten Benutzer kennen. Wie man am Beispiel von 6,5 sieht rundet Excel bei der RUNDEN Funktion kaufmännisch gem. DIN 1333. Dh.
- Ist die Ziffer an der ersten wegfallenden Dezimalstelle eine 0,1,2,3 oder 4, dann wird abgerundet.
- Ist die Ziffer an der ersten wegfallenden Dezimalstelle eine 5,6,7,8 oder 9, dann wird aufgerundet.
Interessanterweise, verhält sich die VBA Funktion round() hingegen anders – siehe dazu unten!
Excel kennt noch andere Rundungsfunktionen:
- KÜRZEN(Zahl;Anzahl der Stellen) – Schneidet die Kommastellen der Zahl ab und gibt als Ergebnis eine Zahl zurück (entspricht dem Abrunden, sowohl bei positiven als auch bei negativen Zahlen)
- FEST(Zahl; Anzahl der Stellen) – formatiert eine Zahl als Text mit einer festen Anzahl von Nachkommastellen (entspricht dem runden von Excel)
zusätzlich gibt es die Funktionen:
- Untergrenze(Zahl;Schritt) – Rundet eine Zahl betragsmäßig auf das kleinste Vielfache von Schritt ab.
- Untergrenze.Mathematik(Zahl;Schritt;Modus) – Rundet eine Zahl auf die nächste ganze Zahl oder auf das nächste Vielfache von Schritt ab.
- Obergrenze(Zahl;Schritt) – Rundet eine Zahl betragsmäßig auf das kleinste Vielfache von Schritt auf.
- Obergrenze.Mathematik(Zahl;Schritt;Modus) – Rundet eine Zahl auf die nächste ganze Zahl oder auf das nächste Vielfache von Schritt auf.
Verhalten von Untergrenze gegenüber Abrunden:
- Untergrenze.Mathematik(Zahl;Schritt;1) und Untergrenze.Mathematik(Zahl;Schritt;-1) verhalten sich wie Abrunden
- 0,0049 => 0,004
- – 0,0049 => -0,004
- Untergrenze.Mathematik(Zahl;Schritt;0) und Untergrenze(Zahl;Schritt) verhalten bei positiven Zahlen identisch mit Abrunden und negativen wie Aufrunden:
- 0,0049 => 0,004
- – 0,0049 => -0,005
Und dann gibt es noch eine Reihe von VBA Funktionen, die nochmal anderes Verhalten an den Tag legen.
runden auf ganze Zahlen
Beim Runden auf ganze Zahlen, können insgesamt 11 Methoden identifiziert werden, wobei leider nicht alle in Excel verfügbar sind. Für diese habe ich die Funktionen nachprogrammiert.
Runden durch Abschneiden der Kommastellen
siehe auch:
Runden in VBA <> Runden in Excel
Das Runden in VBA und Excel unterscheidet sich insofern, dass es sich beim
- Runden in Excel um kaufmännisches Runden nach DIN 1333 und [5 wird immer aufgerundet]
- beim Runden in VBA um mathematisches Runden nach IEEE-754 handelt [wird so gerundet, dass die letzte beizubehaltende Ziffer gerade wird]
Ermitteln der Nachkommastellen
Da thematisch passend möchte ich noch Formeln präsentieren, die auf die Ausgabe der Nachkomma-Stellen als Zahl abzielen.
- als Kommazahl oder
- als Ganzzahl
VBA-Code für die VBA-Lösungen
nur die Dezimalstellen als Dezimalzahl ausgeben
nur die Dezimalstellen als Ganzzahl ausgeben
Links: