Textdatei in Excel importieren - Pro Zeile eine Excel-Spalte
Hallo zusammen,
ich stehe vor folgender Aufgabe:
ich habe eine Textdatei, die Datensätze enthält, die wie folgt aussehen (Beispiel):
Name
Vorname
Telefonnummer
Schuhgröße
Gehalt
Name
Vorname
Telefonnummer
Schuhgröße
Gehalt
Name
Vorname
Telefonnummer
Schuhgröße
Gehalt
usw.
Ich hätte nun gerne eine Excel Datei, die jede txt-Zeile in eine Zelle einfügt, die ersten 5 nebeneinander, und dann wieder von vorne, so dass ich dann pro Attribut genau eine Spalte habe.
Es soll dann ungefähr so aussehen:
Schön wäre, wenn dies in Excel 2003 möglich wäre. Zur Not ginge auch 2010.
Vielen Dank für eure Hilfe und liebe Grüße,
Chris
ich stehe vor folgender Aufgabe:
ich habe eine Textdatei, die Datensätze enthält, die wie folgt aussehen (Beispiel):
Name
Vorname
Telefonnummer
Schuhgröße
Gehalt
Name
Vorname
Telefonnummer
Schuhgröße
Gehalt
Name
Vorname
Telefonnummer
Schuhgröße
Gehalt
usw.
Ich hätte nun gerne eine Excel Datei, die jede txt-Zeile in eine Zelle einfügt, die ersten 5 nebeneinander, und dann wieder von vorne, so dass ich dann pro Attribut genau eine Spalte habe.
Es soll dann ungefähr so aussehen:
Schön wäre, wenn dies in Excel 2003 möglich wäre. Zur Not ginge auch 2010.
Vielen Dank für eure Hilfe und liebe Grüße,
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170428
Url: https://administrator.de/forum/textdatei-in-excel-importieren-pro-zeile-eine-excel-spalte-170428.html
Ausgedruckt am: 23.12.2024 um 07:12 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
lacht mich bitte nicht aus, aber ich würd das nach meiner Methode so machen:
Bin mir sicher, daß das hier jemand eleganter gelöst kriegt
lg,
kristov
lacht mich bitte nicht aus, aber ich würd das nach meiner Methode so machen:
- Text in Word kopieren
- Alle Zeilenumbrüche durch einen Strichpunkt ersetzen: Suchen nach ^13 ersetzen durch ; - wobei ^11 für einen geschützten Zeilenumbruch (Shift-Enter) dieses eckige Pfeilchen) steht, ^13 wäre die Absatzmarke (Enter, schaut aus wie der Buchstabe pi)
- Nochmal eine Ersetzung, diesmal Suchen nach Gehalt; ersetzen durch Gehalt^13
- das ganze als txt abspeichern
- jetzt in Excel importieren
Bin mir sicher, daß das hier jemand eleganter gelöst kriegt
lg,
kristov
Moin,
ich würde mir die Textdatei vorformatieren. Mit dem beigefügten Script kannst Du Dir die entsprechende CSV-Datei basteln.
Viel Erfolg
Markus
ich würde mir die Textdatei vorformatieren. Mit dem beigefügten Script kannst Du Dir die entsprechende CSV-Datei basteln.
Viel Erfolg
Markus
@echo off & setlocal
Set AnzahlSpalten=5
Set Trennzeichen=;
Set Count=0
Set NameInputDatei=l2.txt
Set NameOutputdatei=l2.csv
if exist %NameOutputdatei% del %NameOutputdatei%
for /f %%z in (%NameInputDatei%)do call :Machwat %%z
goto :eof
:MachWat
Set Spalte=%1
Set /a Count=Count+1
if %Count% GTR %AnzahlSpalten% (
echo %Zeile%
echo %Zeile% >>%NameOutputdatei%
Set Count=1
Set Zeile=
)
if %Count% GTR 1 (
Set Zeile=%Zeile%%Trennzeichen%%Spalte%
) else (
Set Zeile=%Spalte%
)
man könnte (konjunktiv!) das ganze auch mittels VBS direkt nach Excel exportieren.
Beispiel:
Aber wie geschrieben: Man(n) könnte....
Gruss
Tsuki
Beispiel:
Dim objXL
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
MeineDaten = Split(FSO.OpenTextFile("Datensatz.txt").ReadAll,vbcrlf)
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Workbooks.Add
objXL.Visible = False
a = 1
For i = 0 to Ubound(MeineDaten) Step 5
objXL.Cells(a,1).Value = MeineDaten(i)
objXL.Cells(a,2).Value = MeineDaten(i + 1)
objXL.Cells(a,3).Value = MeineDaten(i + 2)
objXL.Cells(a,4).Value = MeineDaten(i + 3)
objXL.Cells(a,5).Value = MeineDaten(i + 4)
a = a + 1
Next
objXL.Visible = True
Aber wie geschrieben: Man(n) könnte....
Gruss
Tsuki
Zitat von @suvv7777:
Das funktioniert leider nicht, da "Gehalt" ja nicht der Wert der Zelle ist. Aber danke für die Idee.
Das funktioniert leider nicht, da "Gehalt" ja nicht der Wert der Zelle ist. Aber danke für die Idee.
Uh, oh, grober Denkfehler! Da stehen natürlich immer unterschiedliche Werte drin. So kann das natürlich nichts werden. Asche auf mein Haupt!