Solução temporária
Aqui está a solução temporária que eu criei.
Fórmula de trabalho
Use apenas esta fórmula:
'=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)'
Substitua 3
pelo comprimento do preenchimento e 0
pelo caractere de preenchimento. A2
é uma fonte de preenchimento.
Explicação
Considere a seguinte planilha:
-------------
| A | B |
-------------
| 1 | 001 |
-------------
| 2 | 002 |
-------------
| 31 | 031 |
-------------
| 45 | 045 |
-------------
| 500 | 500 |
-------------
Temos a coluna inicial (A) com números inteiros que queremos preencher. A coluna (B) conterá a fórmula especial para processar os dados.
Concatenar!
Antes de mais nada, precisamos de uma maneira de concatenar o valor da coluna A
com a string de preenchimento. Podemos fazer isso com a função CONCATENATE
:
=CONCATENATE("00", A2)
Repetir!
Neste momento, o caractere de preenchimento 0
é repetido duas vezes em nossa fórmula. Isto não é bom. Podemos usar a função REPT
para repetir nosso caractere de preenchimento várias vezes, como:
=REPT("0", 2)
Esta fórmula repetirá 0
duas vezes. Vamos combiná-los:
=CONCATENATE(REPT("0", 2), A2)
Calcular o comprimento!
Isso é melhor. Mas o tamanho do preenchimento tem um valor constante em nossa fórmula e não vai funcionar com números maiores que 9. Podemos corrigir isso calculando o comprimento da string acolchoada (usando LEN
function) e subtrai-o do tamanho de nossa segmentação:
=3-LEN(A2)
Vamos adicioná-lo à nossa fórmula:
=CONCATENATE(REPT("0", 3-LEN(A2)), A2)
No entanto, obteremos resultados negativos para valores maiores que 999 e isso quebrará a função REPT
(número de repetições não pode ser negativo).
Podemos corrigi-lo facilmente adicionando uma condição:
=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")
Vamos colocar os pedaços finais juntos:
=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)