Wie füge ich Excel-Daten als Text mit fester Breite ein?

16

Wenn ich Daten in Excel kopiere und in eine Textdatei einfüge, werden Tabulatoren zwischen den Zellen angezeigt. Das ist nicht gut, ich möchte Leerzeichen - und ich möchte, dass die Spalten ausgerichtet werden. Wie kann ich dies ohne großen Aufwand erreichen (natürlich möchte ich Regexps nicht von Hand ausführen usw.)

Die Verwendung von 'Speichern unter' (wie in dieser Frage ) ist für mich keine Lösung. Ich muss sie kopieren und einfügen.

einpoklum
quelle
Ich habe eine mögliche Lösung, die das Einfügen von einer Arbeitsmappe in eine andere Arbeitsmappe (dann von der anderen Arbeitsmappe zu dem Ort, an dem Sie einfügen) einfügen würde.
Passt
@Pynner: Nun, es passt besser als gar keine Lösung, also ja, mach weiter.
Einpoklum

Antworten:

14

Dies ist sicherlich nicht einfach zu erklären ... aber nach dem Einrichten funktioniert es mit minimalem Aufwand. Auch dies ist eine leichte Variation dessen, was @pnuts skizziert hat

Ich schlage vor, eine Vorlagentabelle zu verwenden, in die Sie kopieren und einfügen können. Die Vorlage, die ich erstellt habe, hat 3 Registerkarten, die wie folgt aussehen.

Registerkarten

  • Data Auf der Registerkarte werden die Daten eingefügt
  • Length wird etwas rechnen, um die längste Spalte zu bestimmen
  • Space insert wird die entsprechende Anzahl von Leerzeichen einfügen (bearbeiten), die Sie von hier kopieren können, um das richtige Ergebnis zu erhalten

Die Registerkarte Länge sieht aus wie

Länge

Zeile 1 enthält maximal die Zeichen der folgenden Spalte und enthält die Formel

=MAX(A2:A101)+1

+1 erstellt das Trennzeichen.

Zeile 2 bis n (die ich für dieses Beispiel auf 100 erweitert habe) enthalten eine Formel zur Bewertung der Länge jeder Zeichenfolge

=LEN('Data tab'!A1)

Die Registerkarte zum Einfügen von Leerzeichen sieht so aus

Leerzeichen einfügen

Jede Zelle enthält eine Zelle, um die Länge ihrer selbst im Vergleich zum Maximalwert (+ Trennzeichen) zu bewerten und eine geeignete Anzahl von Leerzeichen einzufügen.

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

Beachten Sie das $, das Zeile 1 sperrt, wenn Sie die Formel kopieren und einfügen

(Bearbeiten) können Sie von der Registerkarte Leerzeichen einfügen kopieren.

Notizblock

Pynner
quelle
1
Genial erfunden!
Einpoklum
Aber ... warum brauche ich eigentlich das letzte Blatt? Ich kann vom dritten Blatt kopieren und einfügen. Außerdem möchte ich keine langen Formeln verwenden, die für jede Spalte repliziert wurden.
Einpoklum
Ganz richtig ... letzte Registerkarte nicht erforderlich ... Ich hatte angenommen, dass die Zellen zusätzliche Zeichen einfügen würden. Ich werde meine Antwort aktualisieren, um es zu beheben
Pynner
Hervorragende Antwort, vielen Dank. Persönlich waren einige meiner Spalten sehr lang, daher habe ich eine Seite mit "= LEFT ('Leerzeicheneinfügung'! A1, $ K $ 2) & IF (Länge! A2> $ K $ 2," ... | ", hinzugefügt). "|") "wobei $ K $ 2 auf einen geeigneten Wert gesetzt wird (das Maximum der wichtigsten Spalte). Dies funktioniert gut für Beschreibungen usw., nächsten Schritt Wrapping: p
chrispepper1989
Der nächste Schritt wäre die richtige Ausrichtung der Zahlen
vlad_tepesch
3

Die einfachste Lösung wäre, Ihre numerischen Daten zu einer "kommandierten" Zeichenfolge zu verketten, die korrekt in eine Textdatei eingefügt wird. Erstellen Sie die Excel-Formel für eine Zeile und kopieren Sie sie für alle Zeilen im Arbeitsblatt. Kopieren Sie dann die Formelspalte und fügen Sie sie in die Textdatei ein. Beispielsweise,

Daten

Cell A1: 247

Cell B1: 19

Cell C1: 1437

Formel in Zelle D1

= A1 & "," & B1 & "," & C1

Text-Pastable-Ergebnis

247, 19, 1437

Es gibt einen anderen Ansatz , der nicht auf Formeln beruht.

  • Stellen Sie zunächst sicher, dass Ihre Datenspalten alle dieselbe Breite haben.
  • Fügen Sie dann eine weitere Spalte zwischen jedes Paar von Datenspalten mit einer Breite von jeweils 2 ein.
  • Geben Sie in jede der eingefügten Spalten ein einzelnes Komma ein und kopieren Sie es über die Länge der Daten.
  • Speichern Sie das Arbeitsblatt schließlich als formatierte Textdatei (durch Leerzeichen getrennt) (* .prn).

Ein Vorteil dieser Alternative besteht darin, dass die Formatierung Ihrer Daten erhalten bleibt. Wenn Sie die Daten im Komma formatieren oder nur eine Dezimalstelle anzeigen möchten, bleibt Ihre Formatierung in der PRN-Datei erhalten.

chuff
quelle
1
pnuts schlug vor, dass mprovement genau richtig ist. Ich habe meine Antwort mit einer anderen Alternative aktualisiert, die Speichern unter verwendet.
Chuff
Also, wie ich in der Frage sagte, ist das Speichern als keine Option. Funktioniert die REPT-Lösung mit dem Einfügen von Kopien? Außerdem akzeptiere ich noch nicht, da ich etwas weniger umständliches möchte.
Einpoklum
0

Sie können Ihre Daten in Word kopieren und dann mithilfe von Suchen und Ersetzen (Strg + H) die Registerkarten durch Leerzeichen ersetzen.

  1. Öffnen Sie Daten und fügen Sie sie in Word ein
  2. Drücken Sie Ctrl+H
  3. Mehr >>
  4. Besondere
  5. Leerraum
  6. Setzen Sie ein Leerzeichen in das Ersetzen durch:
  7. Alles ersetzen
Michael
quelle
Das wird nicht das tun, wonach ich gefragt habe, sorry - die Spaltenbreiten werden unterschiedlich sein.
Einpoklum