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

Formatteer een getal met optionele decimalen in Excel

Ik heb getallen in cellen in Excel. Ik wil de getallen zo formatteren dat als ze decimalen hebben ze tot maximaal twee decimalen worden weergegeven, en als ze geen decimalen hebben worden er geen weergegeven.

Bijvoorbeeld.

  • 15 moet worden geformatteerd als 15, NIET 15.00
  • 14.3453453 moet worden geformatteerd als 14.35
  • 12.1 moet worden geformatteerd als 12.1
  • 0 moet worden geformatteerd als 0

De dichtstbijzijnde aangepaste formaatcode die ik heb kunnen bedenken is 0.##. Helaas formatteert dit 15.00 als 15. (let op de extra decimale punt).

Om het probleem nog ingewikkelder te maken, de spreadsheet is een resultaat van een export van SQL Server Reporting Services. Dus zijn er geen macro’s mogelijk. Het lijkt erop dat 0.## mijn beste gok is, en zij kunnen leven met de extra punt.

Antwoorden (9)

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

Als alternatief kunt u het “optionele” decimaalpuntprobleem oplossen met de volgende oplossing:

Getal Format: General;[Red](General)

Dit voegt het decimaalteken en de breukwaarde toe, terwijl negatieve getallen op een leesbaarder manier worden geformatteerd.

Wat de oorspronkelijke vraag van de poster betreft, moet je nog steeds de “extra” decimale punten afronden/trunceren met behulp van een formule. Dit is echter een eenvoudige formule van =ROUND(<value>,<desired decimal places>) die niet extreem rekenintensief is.

Voorbeelden:

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

Aangepaste Excel-formaten kunnen een gedeeltelijk antwoord geven

Aangepaste formaten voor getallen in Excel worden in dit formaat ingevoerd:

  • positief getalformaat;negatief getalformaat;nulformaat;tekstformaat

Een formaat dat in de buurt komt van uw eis, maar de decimaal weglaat voor getallen zonder decimalen is:

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

Voorbeeld:

  • 15 wordt weergegeven als 15.
  • 14.3453453 wordt weergegeven als 14.35
  • 12.1 wordt weergegeven als 12.1
  • 0 wordt weergegeven als 0
5
5
5
2011-08-26 00:28:32 +0000

Hier is een methode die gebruik maakt van voorwaardelijke opmaak.

  1. Klik met de rechtermuisknop op je cel, kies “Cel opmaken”
  2. Kies “Aangepast”
  3. Voer “0.####” in (voeg meer of minder #‘s toe om het maximum aantal decimalen te bepalen)
  4. Klik op OK
  5. Met de cel nog steeds geselecteerd, gebruik je “Voorwaardelijke Opmaak” (kan een menu item zijn in Opmaak of een knop in Start, afhankelijk van je Excel versie)
  6. Voeg een nieuwe regel toe, gebaseerd op de formule “=MOD(H32,1)=0”

  7. Selecteer voor de opmaak van deze regel het tabblad getallen, kies “Aangepast”

  8. Voer deze keer de formule “0” in

  9. Klik voldoende vaak op OK om terug te keren naar het blad (verschilt per Excel-versie)

Ziezo, veel plezier op een verantwoorde manier! Als je de opmaak naar andere cellen wilt kopiëren, onthoud dan dat je de cel kunt kopiëren en “Plakken speciaal” kunt gebruiken met de “Opmaak” optie.

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

Ik kwam dit onlangs tegen in Excel 2007 en gebruikte uiteindelijk gewoon de ‘TRUNC’ functie in de waardecellen:

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

Werkte precies zoals ik wilde…

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

Onthoud dat je in Reporting Services ook een expressie kunt schrijven voor de getalopmaak. In mijn situatie, gebruikte ik

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

als de getalnotatie expressie. Dit leverde een Excel bestand op met twee celformaten, geselecteerd op of de waarde een geheel getal was of niet.

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

Mijn antwoord verwijdert de decimale punt En Verwijdert 0 waarde

in voorwaardelijke opmaak schrijven:

General;#;;@

Dit zou de truc moeten doen.

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

Dit hoeft niet zo ingewikkeld te zijn - het kan uitsluitend worden gedaan met Voorwaardelijke Opmaak. Ik heb Excel 2010, dus dit werkt misschien niet voor eerdere versies.

  1. Formatteer de cellen als Algemeen. Het aantal decimalen voor sommige getallen kan erg hoog zijn.
  2. Markeer een cel en klik op Voorwaardelijke opmaak. Klik op Nieuwe regel en vervolgens op “Gebruik een formule”.
  3. Gebruik de formule =(B1-INT(B1))>0 (waarbij B1 de cel is die je opmaakt)
  4. Klik op de knop Formatteren en kies Aangepast. Voer [=0]0;.## in het veld Type in.
  5. Druk een paar keer op Enter.
  6. Klik weer op Voorwaardelijke opmaak, klik op Regels beheren, en bewerk de zojuist gemaakte regel. Wijzig het bereik in het veld “Geldt voor” zodat het het bereik dekt dat je wilt dekken.

Alles klaar.

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

Dit lijkt de eenvoudigste manier om een decimaal getal te tonen bij breukgetallen - en geen decimaal getal bij gehele getallen:

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

of met celverwijzingen:

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

Geeft

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.##"))

Geen verweesde decimale punten meer.