Wprowadź liczby do określonej długości w arkuszu kalkulacyjnym Google [zamknięte]

33

Mam kolumny z liczbami całkowitymi takimi jak ten: 1, 2, 3, 4, 5i chcę, aby utworzyć kolejną kolumnę z tych wartości wypełnienia na długości trzech tak: 001, 002, 003, 004, 005.

Czy w arkuszu kalkulacyjnym Google można uzupełnić ciąg znaków?

Nie byłem w stanie znaleźć standardowej funkcji do tego.

Slava Fomin II
źródło
2
Nie jest to dokładnie to, o co prosiłeś, ale osiąga porównywalny efekt i może być rozwiązaniem dla typowego zadania, którego ludzie szukają: (1) wybierz kolumnę z liczbami, które chcesz uzupełnić. (2) Wybierz Format> Liczba> Więcej formatów> Niestandardowy format liczb ... (3) W oknie dialogowym wprowadź tyle cyfr, ile cyfr powinien zawierać ciąg liczbowy, np. 000 w twoim przykładzie.
tophcito
2
Nie należy go po prostu zamykać, należy go przenieść na webapps.stackexchange.com
Lennart Rolland

Odpowiedzi:

53

Zalecanym sposobem jest użycie funkcji TEXT () .

Szybkie podsumowanie tego, jak używałbyś go w swoim przypadku:

=TEXT(5,"000")

Wyprowadziłby:

005

Oczywiście zastąpiłbyś literał 5 odniesieniem do innej komórki, w której znajduje się numer źródłowy.

Lennart Rolland
źródło
Czy istnieje sposób na wypełnienie spacjami?
Álex
Wydaje mi się, że po prostu „000” zamiast „” powyżej
Lennart Rolland
12

Jeśli chcesz tylko wyświetlić zmiany, możesz zastosować niestandardowy format liczbowy „000” do komórek.wprowadź opis zdjęcia tutaj

Zaznacz komórki, kliknij na format> Number> Inne formaty> format numeru klienta ... .

Od Docs editors pomocy :

Cyfra w liczbie. W wynikach pojawi się nieznaczne 0.

Sylr
źródło
2
Czy możesz edytować swoją odpowiedź, aby rozwinąć sposób, w jaki PO to zrobiłby?
Burgi,
3

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 3długość wypełnienia i 0znak wypełnienia. A2jest ź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 Akolumny za pomocą łańcucha dopełniającego. Możemy to zrobić za pomocą CONCATENATEfunkcji:

=CONCATENATE("00", A2)

Powtarzać!

W tej chwili znak wypełniania 0jest powtarzany dwukrotnie w naszej formule. To nie jest dobre. Możemy użyć REPTfunkcji, 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ę 0dwa 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 LENfunkcji) 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 REPTfunkcji (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)
Slava Fomin II
źródło
Doskonały! To najlepsza odpowiedź i działa z wartościami nienumerycznymi ;-D
t3chb0t