@ > Home > Inhalt > Komma entfernen, wenn #.##0,??? ganzzahlig ist Excel 97+

Aufgabe

Mit dem benutzerdefinierten Format #.##0,??? kann man unnötige Dezimalnullen weglassen und die Zahlen trotzdem bündig untereinander halten:

    4,567
   34,56
  234,5
1.234,    <----!

Das verbliebene Komma der letzten Zahl im Beispiel jedoch stört.

Abhilfe (noch bessere Abhilfe hier):

F1: 3 (oder eine andere Anzahl der gewünschten maximal darstellbaren Dezimalstellen)

B2: =WECHSELN(TEXT(A2;"#.##0,"&WIEDERHOLEN("?";$F$1));","&WIEDERHOLEN(" ";$F$1);WIEDERHOLEN(" ";$F$1+1))

ergibt:

    4,567
   34,56
  234,5
1.234

Außerdem muss die Zelle oder Spalte (1) rechtsbündig und mit einer (2) Fixbreiten-Schrift formatiert sein (z.B. Courier, Fixedsys, Terminal, Simplified Arabic Fixed, Miriam Fixed).

C10: =SUMMENPRODUKT(--B2:B9) kontrolliert die Texteinträge; zieht man jetzt SUMME(A2:A9) davon ab, erhält man eine Kontrollmöglichkeit durch Summierung aller Null-Einträge in C:C.

Bemerkung: Auf die Fixbreitenschrift könnte dann verzichtet werden, wenn die Proportionalbreite (a) des Leerzeichens (ASCII 32) und (b) des Kommas der Breite einer Ziffer entspräche. Für (a) habe ich bspw. die proportionale Schrift "Estrangelo Edessa" oder "Vrinda" gefunden; (b) erfüllen diese jedoch leider nicht, so dass eine Ganzzahl gegenüber Dezimalzahlen etwas nach vorn rückt.

Zwei eigene Währungsformate:

    4,57
   34,56
  234,50
1.234
1.234,--

B2: 
=WECHSELN(TEXT(A2;"#.##0,00");",00";"   ") bzw. 
=WECHSELN(TEXT(A2;"#.##0,00");",00";",--")

Noch bessere Abhilfe (aus der Newsgroup vom 090221 angeregt durch Remo Grütter und Andreas Killer):

Der Code auf der englischen Seite formatiert einen gegebenen Bereich mit #.##0,00 vor. Enthaltene Ganzzahlen formatiert er danach einzeln mit #.##0_,_0_0 um. Die beiden o.g. Beschränkungen (nämlich a) Einsatz von =TEXT() und b) Fixbreitenschrift) fallen weg!