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 3
par la longueur de remplissage et 0
par le caractère de remplissage. A2
est 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 A
colonne avec la chaîne de remplissage. Nous pouvons le faire avec la CONCATENATE
fonction:
=CONCATENATE("00", A2)
Répéter!
À l'heure actuelle, le caractère de remplissage 0
est répété deux fois dans notre formule. Ce n'est pas bien. Nous pouvons utiliser la REPT
fonction pour répéter notre caractère de remplissage plusieurs fois comme ceci:
=REPT("0", 2)
Cette formule se répétera 0
deux 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 LEN
fonction) 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 REPT
fonction (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)