Remplissez les numéros à une longueur spécifique dans la feuille de calcul Google [fermé]


33

J'ai une colonne avec des nombres entiers comme celui - ci: 1, 2, 3, 4, 5et je veux créer une autre colonne avec ces valeurs rembourrées à la longueur de trois comme ceci: 001, 002, 003, 004, 005.

Est-il possible de raccourcir la chaîne à la longueur dans la feuille de calcul Google?

Je ne pouvais pas trouver de fonction standard pour cela.


2
Ce n'est pas précisément ce que vous avez demandé, mais cela produit un effet comparable et pourrait être une solution pour une tâche courante que les gens recherchent: (1) sélectionnez la colonne avec les nombres que vous souhaitez remplir. (2) Sélectionnez Format> Nombre> Autres formats> Format numérique personnalisé ... (3) Dans la boîte de dialogue, entrez autant de 0 que de chiffres que la chaîne de chiffres doit avoir, par exemple 000 dans votre exemple.
tophcito

2
Il ne doit pas simplement être fermé, il doit être déplacé vers webapps.stackexchange.com
Lennart Rolland

Réponses:


53

La méthode recommandée consiste à utiliser la fonction TEXT () .

Résumé rapide sur la façon dont vous l'utiliseriez dans votre cas:

=TEXT(5,"000")

Produirait:

005

Bien sûr, vous remplaceriez le littéral 5 par une référence à une autre cellule où se trouve le numéro de source.


Y aurait-il un moyen de rembourrage avec des espaces?
Álex

Je pense que juste la sous-condition "000" avec "" ci
Lennart Rolland

12

Si vous souhaitez simplement modifier l'affichage, vous pouvez appliquer le format numérique personnalisé "000" aux cellules.entrez la description de l'image ici

Sélectionnez les cellules, cliquez sur Format> Numéro> Plus de formats> format numérique personnalisé ... .

De l' aide des éditeurs de Docs :

Un chiffre dans le nombre. Un 0 insignifiant apparaîtra dans les résultats.


2
Pouvez-vous modifier votre réponse pour développer la façon dont le PO ferait cela?
Burgi

3

Solution temporaire

Voici la solution de contournement temporaire que j'ai trouvée.

Formule de travail

Utilisez simplement cette formule:

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`

Remplacez 3par la longueur de remplissage et 0par le caractère de remplissage. A2est une source de remplissage.

Explication

Considérez la feuille de calcul suivante:

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------

Nous avons la colonne initiale (A) avec des entiers que nous voulons remplir. La colonne (B) contiendra la formule spéciale pour traiter les données.

Enchaîner!

Tout d'abord, nous avons besoin d'un moyen de concaténer la valeur de la Acolonne avec la chaîne de remplissage. Nous pouvons le faire avec la CONCATENATEfonction:

=CONCATENATE("00", A2)

Répéter!

À l'heure actuelle, le caractère de remplissage 0est répété deux fois dans notre formule. Ce n'est pas bien. Nous pouvons utiliser la REPTfonction pour répéter notre caractère de remplissage plusieurs fois comme ceci:

=REPT("0", 2)

Cette formule se répétera 0deux fois. Combinons-les:

=CONCATENATE(REPT("0", 2), A2)

Calculez la longueur!

C'est mieux. Mais la longueur de remplissage a une valeur constante dans notre formule et cela ne fonctionnera pas avec des nombres supérieurs à 9. Nous pouvons résoudre ce problème en calculant la longueur de la chaîne rembourrée (en utilisant la LENfonction) et en la soustrayant de notre longueur cible:

=3-LEN(A2)

Ajoutons-le à notre formule:

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)

Cependant, nous obtiendrons des résultats négatifs pour les valeurs supérieures à 999 et cela cassera la REPTfonction (le nombre de répétitions ne peut pas être négatif).

Nous pouvons facilement le corriger en ajoutant une condition:

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")

Mettons les derniers morceaux ensemble:

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)

Parfait! C'est la meilleure réponse et cela fonctionne avec des valeurs non numériques ;-D
t3chb0t
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.