Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Textdatei: Datenblöcke mit unterschiedlichen Zeilenanzahlen in XL2010 importieren?
#1
Hallo Forum,

mir liegen Daten in Form von mehreren Textdateien (.txt) vor, die ich möglichst elegant (nicht Copy und Paste) in Excel 2010 importieren will.

Das Datenformat (Beispiel) sieht so aus:

Vorname: Marianne
Name: Mustermann
Straße: Beispielgasse 12
Tel mobil: 0123456
Tel Festnetz: 123456
E-Mail: Marianne.Mustermann@keinemail-adresse.adresse

Vorname: Marianne
Name: Mustermann
Straße: Beispielgasse 12
PLZ: 12345
Ort: Berlin
Tel mobil: 654789
Tel Festnetz: 321654

etc.

Das Problem also: es gibt unterschiedlich viele Zeilen je Datensatz.
Die Feldnamen stehen immer am Anfang (und sind dann zum Glück einheitlich, d.h. bei Name steht immer "Name:" und nichts anderes (womöglich mal "Name:" und dann mal "Nachname:" DAS zum Glück NICHT)
Die Trennung zwischen den beginnenden Datensätzen erfolgt bislang durch eine unterschiedliche Anzahl von Leerzeichen, meist aber durch die gleiche Anzahl von Zeilen.

Ich habe schon eine Lösung im Netz gefunden, die für gleiche Zeilenanzahlen funktionieren soll:

https://www.tabellenexperte.de/wie-trans...lenformat/


Dort wurde mal eine ähnliche Frage gestellt, die der Autor nicht beantworten konnte.

Andere Suchen waren bislang ohne Erfolg - ich habe auch keine Idee mehr, wie ich gezielter suchen kann und wäre daher sehr dankbar für bessere Links oder neue Ideen.

Könnte ich es praktisch umsetzen (bzw. programmieren), stelle ich mir eine Lösung in dieser Art vor:
Neuer Datensatz beginnt mit "Name:"
Lese den Inhalt hinter "Name:" aus und schreibe ihn in die Spalte "Name:"
Lese den Inhalt der nächsten Zeile aus, stelle fest was dort bis zum ersten Doppelpunkt steht (z.B. "Vorname:"),
lese den Inhalt nach dem ersten Doppelpunkt aus und schreibe ihn in die passende  "Vorname:",
mache das so lange weiter, bis Du auf eine Leerzeile triffst.
Wenn Du wieder auf "Name:" triffst, beginne von vorne.


Da Doppelpunkte auch an anderer Stelle im Text vorkommen können (in den auszulesenden Inhalten), könnte ich vorbereitend z.B. auch jeden Doppelpunkt , der auf einen Feldnamen folgt, in ein anderes Zeichen umwandeln. z.B. alle Feldbezeichnungen mit "Name:" oder "Vorname:" in "Name#" bzw. "Vorname#" umwandeln, falls das hilft...

Vielen Dank für weiterführende Links, mögliche Stichworte oder gar Lösungsansätze oder Lösungen.

es dankt sehr

Pu der Baer
ein Bär von geringem Verstand.
Zitieren
#2
Hallo Bar,

ich habe ein kleines Makro das so etwas ähnlichem eine Liste erzeugt. Allerdings nur von einem Excelsheet heraus.
Du müsstest also zuerst die txt ganz normal mit Excel (Textassi) öffnen, leicht bearbeiten und dann Makro drüber laufen lassen.
Interessiert?

Gruß Sigi
Zitieren
#3
Hallo Sigi,

das klingt doch gut. Worin bestünde die Bearbeitung und wie kannst Du mir das Makro übermitteln?
oh und ich bräuchte wohl noch einen Tipp, wie das Makro angewendet wird.

vielen Dank schon mal
und viele Grüße
P.U. Baer
Zitieren
Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein völlig kostenloses und unverbindliches Angebot innerhalb weniger Stunden.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


#4
Hallo Baer,

das ist nicht so schwierig. Wie folgt:

1. Du importierst deine txt-Datei in Excel (mit Textassi). Anschließend die neue Mappe speichern!
Das sieht dann so aus wie in der Bsp.-Mappe die Spalte A. Die Leerzeile zwischen den Datensätzen ist wichtig, denn sie sind das Zeichen, dass ein neuer DS folgt. (Also Leerzeilen stehen lassen.)
2. Du trennst jetzt die Datenfelder (Name, PLZ, etc.) von den tatsächlichen Daten. Siehe die Spalten C und D. (Du kannst es auch über Menü - Daten - Text in Spalten - Trennzeichen ":" machen. Dabei auch das Leerzeichen (blank) nach dem : entfernen!
3. Alle möglichen (vorkommenden) Datenfelder (Name, PLZ, etc.) auflisten. Siehe Spalte F. Liste sie in der Reihenfolge, wie sie später in der Liste stehen sollen.
4. Makro starten: Es kommt eine Eingabemaske. Dort musst du genaue Angaben machen (Bezeichnung: Datei/Mappe, Tabelle, Range, Datenfelder)
5. Makro laufen lassen. Es wird in einem neuen Blatt die Liste erzeugt.

(s. Bsp.-Mappe mit Makro)

Grüße Sigi
.xlsm   LISTE trans.xlsm (Größe: 28,94 KB / Downloads: 2)
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions