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

Formater un nombre avec des décimales optionnelles dans Excel

J'ai des chiffres dans des cellules d'Excel. Je veux que les chiffres soient formatés de telle sorte que s'ils ont des décimales, ils s'affichent jusqu'à deux au maximum, et s'ils n'ont pas de décimales, il n'y en a pas.

Par exemple.

  • 15 doit être formaté comme 15, PAS 15.00
  • 14.3453453 doit être formaté comme 14.35
  • 12.1 doit être formaté comme 12.1
  • 0 doit être formaté comme 0

Le code de format personnalisé le plus proche que j'ai trouvé est 0.##. Malheureusement, il est formaté 15.00 comme 15. (notez le point décimal supplémentaire).

Pour compliquer davantage le problème, la feuille de calcul est le résultat d'une exportation à partir de SQL Server Reporting Services. Aucune macro n'est donc possible. On dirait que 0.## est ma meilleure chance, et ils peuvent s'accommoder de la période supplémentaire.

Réponses (9)

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

Vous pouvez également résoudre le problème “facultatif” du point décimal en utilisant la solution suivante :

Format des nombres : General;[Red](General)

Cela ajoutera la décimale et la valeur fractionnaire en conséquence, tout en formatant les nombres négatifs de manière plus lisible.

Comme pour la question originale de l'affiche, vous devez encore arrondir/tronquer les décimales “supplémentaires” à l'aide d'une formule. Cependant, il s'agit d'une formule simple de =ROUND(<value>,<desired decimal places>) qui n'est pas extrêmement coûteuse en termes de calcul.

Exemples :

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

Les formats personnalisés d'Excel peuvent fournir une réponse partielle

Les formats personnalisés pour les nombres dans Excel sont saisis dans ce format :

  • format des nombres positifs;format des nombres négatifs;format des zéros;format du texte

Un format qui se rapproche de votre exigence, mais qui laisse à la décimale pour les nombres sans décimale est :

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

Exemple :

  • 15 est affiché comme 15.
  • 14.3453453 est affiché comme 14.35
  • 12.1 est affiché comme 12.1
  • 0 est affiché comme 0
5
5
5
2011-08-26 00:28:32 +0000

Voici une méthode utilisant le formatage conditionnel. Cliquez avec le bouton droit de la souris sur votre cellule, choisissez “Formater la cellule” 2. Choisissez “Personnalisé” 3. Entrez “0.####” (ajoutez plus ou moins de # pour contrôler le nombre maximum de décimales) 4. Cliquez sur OK 5. La cellule étant toujours sélectionnée, utilisez “Formatage conditionnel” (peut être un élément de menu dans Format ou un bouton dans Accueil selon votre version d'Excel) 6. Ajoutez une nouvelle règle, basée sur la formule “=MOD(H32,1)=0”

  1. Pour le format de cette règle, sélectionnez l'onglet “Nombre”, choisissez “Personnalisé”

  2. Cette fois, entrez la formule “0”

  3. Cliquez suffisamment de fois sur OK pour revenir à la feuille (varie selon les versions d'excel)

Voilà, profitez-en de manière responsable ! Si vous voulez copier le format dans d'autres cellules, n'oubliez pas que vous pouvez copier la cellule et utiliser “Collage spécial” avec l'option “Format”.

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

Je suis tombé dessus récemment dans Excel 2007 et j'ai fini par utiliser la fonction “TRUNC” dans les cellules de valeur :

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

Travaillait exactement comme je le voulais…

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

N'oubliez pas que dans les services de déclaration, vous pouvez également écrire une expression pour le formatage des chiffres. Dans ma situation, j'ai utilisé

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

comme expression de formatage des nombres. Cela a produit un fichier Excel avec deux formats de cellule, sélectionnés selon que la valeur était un nombre entier ou non.

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

Ma réponse supprime le point décimal AND Supprime la valeur 0

en écriture de formatage conditionnel :

General;#;;@

Cela devrait faire l'affaire.

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

Ce n'est pas forcément si compliqué que cela, mais cela peut être fait exclusivement avec le formatage conditionnel. J'ai Excel 2010, donc cela peut ne pas fonctionner pour les versions antérieures.

  1. formatez les cellules pour qu'elles soient générales. Le nombre de décimales pour certains nombres peut être très élevé.
  2. Mettez une cellule en surbrillance et cliquez sur Formatage conditionnel. Cliquez sur Nouvelle règle, puis sur “Utiliser une formule”.
  3. Utilisez la formule =(B1-INT(B1))>0 (où B1 est la cellule que vous formatez)
  4. Cliquez sur le bouton “Format” et choisissez “Personnalisé”. Entrez [=0]0 ;.## dans le champ Type.
  5. Appuyez plusieurs fois sur la touche Entrée.
  6. Cliquez à nouveau sur Formatage conditionnel, cliquez sur Gérer les règles et modifiez la règle que vous venez de créer. Modifiez la plage dans le champ “S'applique à” pour couvrir la plage que vous voulez couvrir.

Tout est fait.

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

Cela semble être la façon la plus simple d'afficher une décimale lorsqu'il y a des nombres fractionnaires - et aucune décimale pour les nombres entiers :

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

ou avec des références de cellule :

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

Donne

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

Plus de décimales orphelines.