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

Formattare un numero con decimali opzionali in Excel

Ho dei numeri nelle celle di Excel. Voglio che i numeri siano formattati in modo che se hanno dei decimali li mostrino fino a un massimo di due, e se non hanno decimali non ne mostri nessuno.

Per esempio.

  • 15 dovrebbe essere formattato come 15, NON 15.00
  • 14.3453453 dovrebbe essere formattato come 14.35
  • 12.1 dovrebbe essere formattato come 12.1
  • 0 dovrebbe essere formattato come 0

Il codice di formato personalizzato più vicino che ho trovato è 0.##. Sfortunatamente questo formatta 15.00 come 15. (notare il punto decimale extra).

Per complicare ulteriormente il problema, il foglio di calcolo è il risultato di un'esportazione da SQL Server Reporting Services. Quindi non sono possibili macro. Oh bene, sembra che 0.## sia la mia migliore scommessa, e possono solo vivere con il periodo extra.

Risposte (9)

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

In alternativa, potete risolvere il problema del punto decimale “opzionale” usando la seguente soluzione:

Formato numero: General;[Red](General)

Questo aggiungerà il decimale e il valore frazionario di conseguenza, formattando i numeri negativi in un modo più leggibile.

Per quanto riguarda la domanda originale del poster, hai ancora bisogno di arrotondare/troncare i punti decimali “extra” usando una formula. Tuttavia, questa è una semplice formula di =ROUND(<value>,<desired decimal places>) che non è estremamente costosa dal punto di vista computazionale.

Esempi:

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

I formati personalizzati di Excel possono fornire una risposta parziale

I formati personalizzati per i numeri in Excel sono inseriti in questo formato:

  • formato numero positivo; formato numero negativo; formato zero; formato testo

Un formato che si avvicina alla tua richiesta, ma lascia in decimale i numeri senza decimali è:

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

Esempio:

  • 15 viene visualizzato come 15.
  • 14.3453453 viene visualizzato come 14.35
  • 12.1 viene visualizzato come 12.1
  • 0 viene visualizzato come 0
5
5
5
2011-08-26 00:28:32 +0000

Ecco un metodo che usa la formattazione condizionale.

  1. Clicca con il tasto destro del mouse sulla tua cella, scegli “Formatta cella”
  2. Seleziona “Custom”
  3. Inserisci “0.####” (aggiungi più o meno # per controllare il numero massimo di cifre decimali)
  4. Clicca su OK
  5. Con la cella ancora selezionata, usa “Formattazione condizionale” (potrebbe essere una voce di menu in Formato o un pulsante in Home a seconda della tua versione di Excel)
  6. Aggiungete una nuova regola, basata sulla formula “=MOD(H32,1)=0”

  7. Per il formato di questa regola, selezionate la scheda numero, scegliete “Custom”

  8. Questa volta, inserisci la formula “0”

  9. Cliccate su OK un numero sufficiente di volte per tornare al foglio (varia tra le versioni di Excel)

Ecco fatto, divertitevi responsabilmente! Se vuoi copiare il formato in altre celle, ricorda che puoi copiare la cella e usare “Incolla speciale” con l'opzione “Formato”.

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

Mi sono imbattuto in questo di recente in Excel 2007 e ho finito per usare la funzione ‘TRUNC’ nelle celle di valore:

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

Ha funzionato esattamente come volevo…

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

Ricordate che in Reporting Services, potete anche scrivere un'espressione per la formattazione dei numeri. Nella mia situazione, ho usato

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

come espressione per il formato del numero. Questo ha prodotto un file Excel con due formati di cella, selezionati dal fatto che il valore fosse o meno un intero.

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

La mia risposta rimuove il punto decimale AND Rimuove il valore 0

nella scrittura di formattazione condizionale:

General;#;;@

Questo dovrebbe fare il trucco.

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

Questo non deve essere così complicato - può essere fatto esclusivamente con la formattazione condizionale. Ho Excel 2010, quindi questo potrebbe non funzionare per le versioni precedenti.

  1. Formatta le celle per essere Generale. Il numero di cifre decimali per alcuni numeri può essere molto alto.
  2. Evidenzia una cella e clicca su Formattazione condizionale. Fai clic su Nuova regola, quindi su “Usa una formula”.
  3. Usa la formula =(B1-INT(B1))>0 (dove B1 è la cella che stai formattando)
  4. Clicca sul pulsante Format e scegli Custom. Inserite [=0]0;.## nel campo Tipo.
  5. Premi Invio più volte.
  6. Cliccate di nuovo su Formattazione condizionale, cliccate su Gestisci regole e modificate la regola che avete appena creato. Cambia l'intervallo nel campo “Si applica a” per coprire l'intervallo che vuoi coprire.

Tutto fatto.

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

Questo sembra essere il modo più semplice per avere un decimale mostrato quando ci sono numeri frazionari - e nessun decimale mostrato per i numeri interi:

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

o con riferimenti alle celle:

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

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

Niente più punti decimali orfani.