2008-08-22 04:31:59 +0000 2008-08-22 04:31:59 +0000
77
77

Formatieren einer Zahl mit optionalen Nachkommastellen in Excel

Ich habe Zahlen in Zellen in Excel. Ich möchte, dass die Zahlen so formatiert werden, dass sie, wenn sie Nachkommastellen haben, maximal zwei anzeigen, und wenn sie keine Nachkommastellen haben, wird keine angezeigt.

Zum Beispiel.

  • 15 sollte als 15 formatiert werden, NICHT als 15.00
  • 14.3453453 sollte als 14.35 formatiert werden
  • 12.1 sollte als 12.1 formatiert werden
  • 0 sollte als 0 formatiert werden

Der nächste benutzerdefinierte Formatierungscode, den ich gefunden habe, ist 0.##. Leider formatiert dies 15.00 als 15. (beachten Sie den zusätzlichen Dezimalpunkt).

Um das Problem weiter zu verkomplizieren, ist die Tabelle das Ergebnis eines Exports aus SQL Server Reporting Services. Es sind also keine Makros möglich. Nun gut, es sieht so aus, als ob 0.## die beste Lösung ist, und sie können mit dem zusätzlichen Punkt leben.

Antworten (9)

33
33
33
2012-05-08 18:16:49 +0000

Alternativ können Sie das “optionale” Dezimalpunktproblem mit der folgenden Lösung lösen:

Zahlenformat: General;[Red](General)

Dies fügt die Dezimalstelle und den Nachkommawert entsprechend hinzu und formatiert negative Zahlen auf eine besser lesbare Weise.

Was die ursprüngliche Frage des Posters betrifft, müssen Sie die “zusätzlichen” Dezimalstellen immer noch mit einer Formel runden/abschneiden. Dies ist jedoch eine einfache Formel von =ROUND(<value>,<desired decimal places>), die nicht extrem rechenaufwendig ist.

Beispiele:

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)
15
15
15
2008-09-07 17:09:26 +0000

Benutzerdefinierte Formate in Excel können eine Teilantwort liefern

Benutzerdefinierte Formate für Zahlen in Excel werden in diesem Format eingegeben:

  • positives Zahlenformat;negatives Zahlenformat;Nullformat;Textformat

Ein Format, das Ihrer Anforderung nahe kommt, aber die Nachkommastelle für Zahlen ohne Nachkommastellen auslässt, ist:

  • # ,##.??;(#,##.??);0

Beispiel:

  • 15 wird als 15 angezeigt.
  • 14,3453453 wird als 14,35 angezeigt
  • 12,1 wird als 12,1 angezeigt
  • 0 wird als 0 angezeigt
5
5
5
2011-08-26 00:28:32 +0000

Hier ist eine Methode, die bedingte Formatierung verwendet.

  1. Klicken Sie mit der rechten Maustaste auf Ihre Zelle und wählen Sie “Zelle formatieren”
  2. Wählen Sie “Benutzerdefiniert”
  3. Geben Sie “0.####” ein (fügen Sie mehr oder weniger #s hinzu, um die maximale Anzahl der Dezimalstellen zu steuern)
  4. Klicken Sie auf “OK”
  5. Während die Zelle noch markiert ist, verwenden Sie die “Bedingte Formatierung” (je nach Excel-Version ein Menüpunkt in Format oder eine Schaltfläche in Home)
  6. Fügen Sie eine neue Regel hinzu, basierend auf der Formel “=MOD(H32,1)=0”

  7. Wählen Sie für das Format dieser Regel die Registerkarte “Zahl”, wählen Sie “Benutzerdefiniert”

  8. Geben Sie dieses Mal die Formel “0”

  9. Klicken Sie oft genug auf “OK”, um zum Blatt zurückzukehren (variiert von Excel-Version zu Excel-Version)

Das war’s, viel Spaß! Wenn Sie das Format in andere Zellen kopieren wollen, denken Sie daran, dass Sie die Zelle kopieren und “Einfügen Spezial” mit der Option “Format” verwenden können.

5
5
5
2010-02-03 17:31:42 +0000

Ich bin vor kurzem in Excel 2007 auf dieses Problem gestoßen und habe einfach die Funktion ‘TRUNC’ in den Wertezellen verwendet:

value =TRUNC(B5,1)
      0 0
      5 5
    5.4 5.4
  65.43 65.4
765.432 765.4

Hat genau so funktioniert, wie ich es wollte…

2
2
2
2012-03-01 20:57:08 +0000

Denken Sie daran, dass Sie in Reporting Services auch einen Ausdruck für die Zahlenformatierung schreiben können. In meiner Situation habe ich

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

als Ausdruck für die Zahlenformatierung verwendet. Dies erzeugte eine Excel-Datei mit zwei Zellformaten, die danach ausgewählt wurden, ob der Wert eine ganze Zahl war oder nicht.

1
1
1
2018-02-12 01:45:01 +0000

Meine Antwort entfernt den Dezimalpunkt AND Entfernt den Wert 0

in der bedingten Formatierung schreiben:

General;#;;@

Dies sollte den Zweck erfüllen.

1
1
1
2013-12-04 16:57:19 +0000

Das muss nicht ganz so kompliziert sein - es geht auch ausschließlich mit bedingter Formatierung. Ich habe Excel 2010, daher funktioniert dies möglicherweise nicht für frühere Versionen.

  1. Formatieren Sie die Zellen so, dass sie allgemein sind. Die Anzahl der Nachkommastellen für einige Zahlen kann sehr hoch sein.
  2. Markieren Sie eine Zelle und klicken Sie auf “Bedingte Formatierung”. Klicken Sie auf “Neue Regel” und dann auf “Eine Formel verwenden”.
  3. Verwenden Sie die Formel =(B1-INT(B1))>0 (wobei B1 die Zelle ist, die Sie formatieren)
  4. Klicken Sie auf die Schaltfläche “Format” und wählen Sie “Benutzerdefiniert”. Geben Sie [=0]0;.## in das Feld Typ ein.
  5. Drücken Sie mehrmals die Eingabetaste.
  6. Klicken Sie erneut auf Bedingte Formatierung, klicken Sie auf Regeln verwalten und bearbeiten Sie die soeben erstellte Regel. Ändern Sie den Bereich im Feld “Gilt für”, um den Bereich abzudecken, den Sie abdecken möchten.

Alles erledigt.

0
0
0
2014-01-17 17:34:13 +0000

Dies scheint der einfachste Weg zu sein, um bei Nachkommastellen eine Dezimalstelle anzuzeigen - und bei ganzen Zahlen keine Dezimalstelle anzuzeigen:

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

oder mit Zellenreferenzen:

=TEXT(ROUND(A1,2),"general")

Ergibt

15 = 15 9,23432234 = 9,23

0
0
0
2013-06-04 11:16:43 +0000
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

Keine verwaisten Dezimalpunkte mehr.