328 votes

Ajout de zéros en tête/0 à des valeurs Excel existantes jusqu'à une certaine longueur

Il y a beaucoup, beaucoup de questions et de réponses de qualité sur SO concernant la façon d'empêcher les zéros non significatifs d'être supprimés lors de l'importation ou de l'exportation d'Excel. Cependant, j'ai déjà une feuille de calcul contenant des valeurs qui ont été tronquées en tant que nombres alors qu'elles auraient dû être traitées comme des chaînes de caractères. Je dois nettoyer les données et réintroduire les zéros non significatifs.

Il y a un champ qui devrait comporter quatre caractères, avec des zéros de plomb pour compléter la chaîne à quatre caractères. Cependant :

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

Question : Existe-t-il une formule Excel permettant de rajouter ces 0 à ces valeurs afin qu'elles comportent toutes quatre caractères ?

Remarque : ce problème est similaire au sempiternel problème des codes postaux, où les codes postaux de la région de la Nouvelle-Angleterre perdent leur zéro initial et doivent être rajoutés.

0 votes

Est-ce que le point est censé être là dans "3829." ?

1 votes

Non, mais c'est la position correcte pour un caractère "." dans la phrase selon ma fidèle copie de Strunk & White. Je l'ai enlevé pour plus de clarté.

8 votes

Je l'aurais accepté, sauf que c'était dans un bloc de code, dans lequel j'ai tendance à prendre les choses plus littéralement. (De plus, Excel stocke chaque nombre comme un flottant, donc cela aurait pu être une décimale).

551voto

GSerg Points 33571
=TEXT(A1,"0000")

Toutefois, le Fonction TEXT est capable de faire d'autres choses fantaisistes comme le formatage des dates.

4 votes

OMG ! Parfait ! On apprend quelque chose de nouveau tous les jours. J'ai même plusieurs livres Excel corrompus et je ne suis jamais tombé sur ceci - je l'utiliserai à l'avenir chaque fois que j'aurai à manipuler des données de code postal basées sur Excel.

1 votes

Cela fonctionne bien avec les nombres décimaux... mais qu'en est-il des hexadécimaux ? Je n'arrive pas à trouver un moyen de faire fonctionner les 0 premiers...

11 votes

@shadow Le nombre hexadécimal pour Excel est une chaîne de caractères, pas un nombre. Il faut donc le traiter comme une chaîne de caractères : =RIGHT("0000" + A1, 4) .

82voto

Moses Points 5346

Le moyen le plus efficace (et le moins encombrant) d'y parvenir est le formatage personnalisé.

  1. Mettez en surbrillance la colonne/le tableau que vous souhaitez styliser.
  2. Cliquez sur ctrl + 1 ou Format -> Format des cellules.
  3. Dans l'onglet Nombre, choisissez Personnalisé.
  4. Réglez le formatage personnalisé sur 000#. (zéro zéro zéro #)

Notez que cela ne modifie pas réellement la valeur de la cellule. Elle affiche seulement les zéros de tête dans la feuille de calcul.

10 votes

Cela fonctionne très bien s'il n'y a pas besoin de conserver les zéros de tête au-delà de la cellule d'origine, mais cela ne fonctionnera pas si les chaînes doivent être utilisées ailleurs. Les cellules s'afficheront sous la forme 0004, 01032, 0284, mais si vous essayez de combiner les chaînes dans une cellule distincte, vous obtiendrez, par exemple, 4-1032-284 au lieu de la valeur 0004-01032-0284 souhaitée.

0 votes

@AshtonSheets oui, comme je l'ai noté dans la réponse, il affiche seulement les zéros de tête, il ne fait rien à la valeur réelle. Cependant, il y a eu des situations où j'ai utilisé cette méthode au lieu de =text() en raison de sa commodité et de l'absence de formule impliquée.

8 votes

Pour référence, cela devrait être en fait 0000 pas 000# . Sinon, cela ne fonctionne pas pour 0.

16voto

MonoThreaded Points 1745

J'ai trouvé cette page en essayant de remplir des valeurs hexadécimales quand j'ai réalisé que DEC2HEX() offre précisément cette fonctionnalité gratuitement .

Il suffit d'ajouter un deuxième paramètre. Par exemple, si vous essayez de transformer 12 en 0C
DEC2HEX(12,2) => 0C
DEC2HEX(12,4) => 000C
... et ainsi de suite

14voto

zgirod Points 707

Je sais qu'on a répondu à cette question il y a un certain temps, mais je suis surpris qu'on n'ait pas mentionné une solution simple.

=RIGHT("0000" & A1, 4)

Lorsque j'ai besoin de rembourrer, j'utilise quelque chose comme ce qui précède. Personnellement, je trouve que c'est la solution la plus simple et la plus facile à lire.

9voto

ProVega Points 1425

Je ne sais pas si c'est une nouveauté d'Excel 2013, mais si vous faites un clic droit sur la colonne et dites "Spécial", il y a en fait une option prédéfinie pour le code postal et le code postal + 4. Magique.

enter image description here

6 votes

Excellente suggestion et mise à jour. Il faut donner à Microsoft un -1 pour avoir encouragé quiconque à stocker les SSN dans une feuille de calcul.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X