Fügen Sie vorhandenen Excel-Werten bis zu einer bestimmten Länge führende Nullen / Nullen hinzu

299

Es gibt viele, viele Fragen und hochwertige Antworten zu SO, wie verhindert werden kann, dass führende Nullen beim Importieren oder Exportieren aus Excel entfernt werden. Ich habe jedoch bereits eine Tabelle mit Werten, die als Zahlen abgeschnitten wurden, obwohl sie eigentlich als Zeichenfolgen hätten behandelt werden sollen. Ich muss die Daten bereinigen und die führenden Nullen wieder hinzufügen.

Es gibt ein Feld mit vier Zeichen, wobei führende Nullen die Zeichenfolge auf vier Zeichen auffüllen. Jedoch:

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

Frage: Gibt es eine Excel-Formel, um diese Nullen wieder auf diese Werte aufzufüllen, sodass sie alle vier Zeichen sind?

Hinweis: Dies ähnelt dem uralten Problem mit der Postleitzahl, bei dem Postleitzahlen in der Region New England ihre führende Null fallen lassen und Sie sie wieder hinzufügen müssen.

Mark A.
quelle
Soll die Zeit dort sein "3829."?
Josh Lee
Nein, aber das ist die richtige Position für ein "." Zeichen im Satz nach meiner vertrauenswürdigen Kopie von Strunk & White. Aus Gründen der Übersichtlichkeit entfernt.
Markieren Sie A
7
Ich würde das akzeptieren, außer dass es sich um einen Codeblock handelt, in dem ich die Dinge eher wörtlich nehme. (Außerdem speichert Excel jede Zahl als Gleitkomma, so dass dies eine Dezimalstelle gewesen sein könnte.)
Josh Lee
4
@josh upvote für die korrekte Schreibweise "akzeptiere das außer dem".
Michiel van der Blonk

Antworten:

506
=TEXT(A1,"0000")

Die TEXT-Funktion kann jedoch auch andere ausgefallene Dinge wie die Datumsformatierung ausführen.

GSerg
quelle
4
OH MEIN GOTT! Perfekt! Sie lernen jeden Tag etwas Neues. Ich habe sogar mehrere Eselsohren-Excel-Bücher und bin nie darauf gestoßen - werde sie in Zukunft immer dann verwenden, wenn ich Excel-basierte Postleitzahldaten entstellt habe.
Markieren Sie A
1
Dies funktioniert gut mit Dezimalzahlen ... aber was ist mit Hexadezimalzahlen? Ich kann keinen Weg finden, führende Nullen damit zum Laufen zu bringen ...
Shadow
10
@shadow Hexadezimalzahl für Excel ist eine Zeichenfolge, keine Zahl. Behandeln Sie es also als Zeichenfolge : =RIGHT("0000" + A1, 4).
GSerg
8
@shadow, DEC2HEX nimmt ein Platzargument . Funktioniert also =DEC2HEX(HEX2DEC(A1),4)gut, um Hex-Zahlen aufzufüllen.
Raz Wilson
9
@mcs Sie haben die Syntax nicht geändert. Ihre Excel-Version wird zufällig; als Parametertrennzeichen verwendet, das aus Ihren Windows-Spracheinstellungen übernommen wird.
GSerg
78

Die effizientere (weniger aufdringliche) Methode hierfür ist die benutzerdefinierte Formatierung.

  1. Markieren Sie die Spalte / das Array, die Sie formatieren möchten.
  2. Klicken Sie auf ctrl+ 1oder Format -> Zellen formatieren.
  3. Wählen Sie auf der Registerkarte Nummer die Option Benutzerdefiniert.
  4. Stellen Sie die benutzerdefinierte Formatierung auf 000 # ein. (Null Null Null #)

Beachten Sie, dass dies den Wert der Zelle nicht ändert. Es werden nur die führenden Nullen im Arbeitsblatt angezeigt.

Moses
quelle
8
Dies funktioniert hervorragend, wenn die führenden Nullen nicht über die ursprüngliche Zelle hinaus beibehalten werden müssen, funktioniert jedoch nicht, wenn die Zeichenfolgen an anderer Stelle verwendet werden müssen. Die Zellen werden als 0004, 01032, 0284 angezeigt. Wenn Sie jedoch versuchen, die Zeichenfolgen in einer separaten Zelle zu kombinieren, werden beispielsweise 4-1032-284 anstelle der gewünschten 0004-01032-0284
Ashton Sheets vom
@AshtonSheets ja, wie ich in der Antwort bemerkt habe, werden nur die führenden Nullen angezeigt, es wird nichts mit dem tatsächlichen Wert gemacht. Es gab jedoch Situationen, in denen ich dies anstelle der =text()Bequemlichkeit und des Mangels an Formel verwendet habe.
Moses
7
Als Referenz sollte dies eigentlich 0000nicht sein 000#. Andernfalls funktioniert es nicht für 0.
PearsonArtPhoto
2
Für diejenigen mit meinem obigen Problem war die Antwort, # (Hash) gegen 0 (Null) auszutauschen. Das # gibt Ihnen kein Zeichen, wenn es keinen Wert gibt, aber die 0 gibt Ihnen eine Null, wenn es keinen Wert gibt! Macht Sinn und funktioniert großartig: $ 0.0 ,, "M"
Andrew
1
Funktionierte auch nicht für mich mit 000 #, sondern funktionierte, als ich gerade ein benutzerdefiniertes Format als 0000 für eine vierstellige Nummer, 00000 für fünf, 000000 für sechs usw. angegeben habe. Dies ist natürlich nur für kürzere Formatnummern hilfreich
Hilary
16

Ich habe diese Seite aufgerufen und versucht, hexadezimale Werte aufzufüllen, als mir klar wurde, dass DEC2HEX()genau diese Funktion kostenlos zur Verfügung steht .

Sie müssen nur einen zweiten Parameter hinzufügen. Zum Beispiel binden, um 12in 0C
DEC2HEX(12,2)=> 0C
DEC2HEX(12,4)=> zu verwandeln000C
... und so weiter

MonoThreaded
quelle
9

Ich bin nicht sicher, ob dies neu in Excel 2013 ist, aber wenn Sie mit der rechten Maustaste auf die Spalte klicken und "Spezial" sagen, gibt es tatsächlich eine vordefinierte Option für Postleitzahl und Postleitzahl + 4. Magic.

Geben Sie hier die Bildbeschreibung ein

ProVega
quelle
6
Toller Vorschlag und Update. Sie müssen Microsoft eine -1 geben, um jeden zu ermutigen, SSNs in einer Tabelle zu speichern.
Markieren Sie A
8

Ich weiß, dass dies vor einiger Zeit beantwortet wurde, aber nur mit einer einfachen Lösung zu läuten, von der ich überrascht bin, dass sie nicht erwähnt wurde.

=RIGHT("0000" & A1, 4)

Wann immer ich auffüllen muss, benutze ich etwas wie das oben genannte. Persönlich finde ich es die einfachste Lösung und leichter zu lesen.

zgirod
quelle
1

Wenn Sie eine benutzerdefinierte Formatierung verwenden und diese Werte an anderer Stelle verketten müssen, können Sie sie kopieren und Special -> Values ​​an anderer Stelle im Blatt (oder auf einem anderen Blatt) einfügen und diese Werte dann verketten.

JeffK627
quelle
1

Auch das wird gut funktionieren

REPT(0,2-LEN(F2)&F2

Dabei ist 2 die Gesamtzahl der Ziffern. Bei 0 ~ 9 -> werden 00 bis 09 angezeigt. Es wird nichts hinzugefügt.

user2902302
quelle