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)