Rozwiązanie tymczasowe
Oto tymczasowe obejście, które wymyśliłem.
Formuła robocza
Po prostu użyj tej formuły:
`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`
Zamień na 3
długość wypełnienia i 0
znak wypełnienia. A2
jest źródłem dopełnienia.
Wyjaśnienie
Rozważ następujący arkusz kalkulacyjny:
-------------
| A | B |
-------------
| 1 | 001 |
-------------
| 2 | 002 |
-------------
| 31 | 031 |
-------------
| 45 | 045 |
-------------
| 500 | 500 |
-------------
Mamy początkową kolumnę (A) z liczbami całkowitymi, które chcemy uzupełnić. Kolumna (B) będzie zawierać specjalną formułę do przetwarzania danych.
Powiązać!
Po pierwsze potrzebujemy sposobu na połączenie wartości z A
kolumny za pomocą łańcucha dopełniającego. Możemy to zrobić za pomocą CONCATENATE
funkcji:
=CONCATENATE("00", A2)
Powtarzać!
W tej chwili znak wypełniania 0
jest powtarzany dwukrotnie w naszej formule. To nie jest dobre. Możemy użyć REPT
funkcji, aby powtórzyć nasz znak wypełniający kilka razy w następujący sposób:
=REPT("0", 2)
Ta formuła powtórzy się 0
dwa razy. Połączmy je:
=CONCATENATE(REPT("0", 2), A2)
Oblicz długość!
Tak lepiej Ale długość dopełniania ma stałą wartość w naszej formule i nie będzie działać z liczbami większymi niż 9. Możemy to naprawić, obliczając długość dopełnionego łańcucha (używając LEN
funkcji) i odejmując go od naszej długości docelowej:
=3-LEN(A2)
Dodajmy to do naszej formuły:
=CONCATENATE(REPT("0", 3-LEN(A2)), A2)
Otrzymamy jednak wyniki ujemne dla wartości większych niż 999 i spowoduje to przerwanie REPT
funkcji (liczba powtórzeń nie może być ujemna).
Możemy to łatwo naprawić, dodając warunek:
=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")
Złóżmy razem ostatnie pokoju:
=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)