suvv7777
Goto Top

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:
6dccc17c446d572779f048faa1b075ed

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

Content-Key: 170428

Url: https://administrator.de/contentid/170428

Printed on: April 18, 2024 at 04:04 o'clock

Member: kristov
kristov Jul 26, 2011 at 12:21:00 (UTC)
Goto Top
Hallo,

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 face-wink

lg,
kristov
Member: BigWim
BigWim Jul 26, 2011 at 12:26:00 (UTC)
Goto Top
Moin,

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%
)
Member: TsukiSan
TsukiSan Jul 26, 2011 at 13:41:16 (UTC)
Goto Top
man könnte (konjunktiv!) das ganze auch mittels VBS direkt nach Excel exportieren.
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
Member: suvv7777
suvv7777 Jul 26, 2011 at 13:58:06 (UTC)
Goto Top
Das funktioniert leider nicht, da "Gehalt" ja nicht der Wert der Zelle ist. face-smile Aber danke für die Idee.
Member: kristov
kristov Jul 26, 2011 at 14:02:17 (UTC)
Goto Top
Zitat von @suvv7777:
Das funktioniert leider nicht, da "Gehalt" ja nicht der Wert der Zelle ist. face-smile 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!
Member: suvv7777
suvv7777 Aug 01, 2011 at 13:11:11 (UTC)
Goto Top
Vielen Dank für die mal wieder tolle und schnelle Hilfe! face-smile
Member: TsukiSan
TsukiSan Aug 01, 2011 at 13:21:18 (UTC)
Goto Top
Freud uns, wenn's klappt.
Eventuell verrätst du uns noch, wie du's nun realisiert hast, damit zukünftige Mitleser eventuell auch was lernen dabei.

Danke und Gruss
Tsuki