Zahlen in Google Spreadsheet auf bestimmte Länge auffüllen [geschlossen]


33

Ich habe eine Spalte mit ganzen Zahlen wie folgt aus : 1, 2, 3, 4, 5und ich möchte eine weitere Spalte mit diesen Werten zu Länge von drei wie folgt aufgefüllt erstellen: 001, 002, 003, 004, 005.

Ist es möglich, Zeichenfolgen in Google Spreadsheet auf Länge aufzufüllen?

Ich konnte dafür keine Standardfunktion finden.


2
Dies ist nicht genau das, wonach Sie gefragt haben, aber es erzielt einen vergleichbaren Effekt und kann eine Lösung für eine häufige Aufgabe sein, nach der die Leute suchen: (1) Wählen Sie die Spalte mit den Zahlen aus, die aufgefüllt werden sollen. (2) Wählen Sie Format> Zahl> Weitere Formate> Benutzerdefiniertes Zahlenformat. (3) Geben Sie im Dialogfeld so viele 0-Stellen ein, wie die Zahlenfolge haben soll, z. B. 000 in Ihrem Beispiel.
Tocito

2
Es sollte nicht einfach geschlossen werden, es sollte auf webapps.stackexchange.com verschoben werden
Lennart Rolland

Antworten:


53

Empfohlen wird die Verwendung der Funktion TEXT () .

Kurze Zusammenfassung, wie Sie es in Ihrem Fall verwenden würden:

=TEXT(5,"000")

Würde ausgeben:

005

Natürlich würden Sie das Literal 5 durch einen Verweis auf eine andere Zelle ersetzen, in der sich die Quellennummer befindet.


Gibt es eine Möglichkeit, mit Leerzeichen aufzufüllen?
Álex

Ich denke nur Substitude "000" mit "" oben
Lennart Rolland

12

Wenn Sie nur die Anzeige ändern möchten, können Sie das benutzerdefinierte Zahlenformat "000" auf die Zellen anwenden .Bildbeschreibung hier eingeben

Markieren Sie die Zellen, klicken Sie auf Format> Number> Weitere Formate> Benutzerdefinierte Zahlenformat ... .

In der Hilfe von Docs Editoren :

Eine Ziffer in der Nummer. In den Ergebnissen wird eine unbedeutende 0 angezeigt.


2
Können Sie Ihre Antwort bearbeiten, um zu erläutern, wie das OP dies tun würde?
Burgi

3

Vorübergehende Lösung

Hier ist die vorübergehende Problemumgehung, die ich mir ausgedacht habe.

Arbeitsformel

Verwenden Sie einfach diese Formel:

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`

Ersetzen Sie 3mit Polsterlänge und 0mit Polsterzeichen. A2ist eine Polsterquelle.

Erläuterung

Betrachten Sie die folgende Tabelle:

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------

Wir haben die erste Spalte (A) mit ganzen Zahlen, die wir auffüllen möchten. Die Spalte (B) enthält die spezielle Formel zur Verarbeitung der Daten.

Verketten!

Zuallererst brauchen wir eine Möglichkeit, den Wert aus der ASpalte mit der Füllzeichenfolge zu verketten . Wir können das mit der CONCATENATEFunktion machen:

=CONCATENATE("00", A2)

Wiederholen!

Im Moment wird das Füllzeichen 0in unserer Formel zweimal wiederholt. Das ist nicht gut. Mit REPTfunction können wir unser Füllzeichen mehrmals wiederholen:

=REPT("0", 2)

Diese Formel wird 0zweimal wiederholt . Kombinieren wir sie:

=CONCATENATE(REPT("0", 2), A2)

Länge berechnen!

Das ist besser. Aber die Auffülllänge hat in unserer Formel einen konstanten Wert und das funktioniert nicht mit Zahlen größer als 9. Wir können dies beheben, indem wir die Länge der aufgefüllten Zeichenfolge (mithilfe der LENFunktion) berechnen und von unserer Ziellänge subtrahieren:

=3-LEN(A2)

Fügen wir es unserer Formel hinzu:

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)

Bei Werten über 999 erhalten wir jedoch negative Ergebnisse und die REPTFunktion wird unterbrochen (die Anzahl der Wiederholungen kann nicht negativ sein).

Wir können es leicht beheben, indem wir eine Bedingung hinzufügen:

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")

Lassen Sie uns die letzten Teile zusammenstellen:

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)

Perfekt! Dies ist die beste Antwort und funktioniert mit nicht numerischen Werten ;-D
t3chb0t
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.