Daten aus Liste in Word in Excel-Tabelle transponieren
#1
Hallo zusammen,

bin neu hier im Forum, sage also erstmal Hallo in die Runde!  Blush 15

Zu meinem Anliegen:
Ich habe in einer Word-Datei eine große Liste mit Datensätzen zu recherchierten Unternehmen (ca. 1000 Stk.). Jeder Datensatz hat neun Datenfelder. Hinter jeder Zeile ist ein Umbruch. Die Raute ist nach jedem Datensatz Platzhalter/Trenner in einer Zeile.

Der Aufbau ist wie folgt:

Datenfeld 1 (lfd. Nr.)
Datenfeld 2 (Unternehmensname)
Datenfeld 3 (Ansprechpartner)
[...]
Datenfeld 8 (...)
Datenfeld 9 (...)
#
Datenfeld 1
Datenfeld 2
Datenfeld 3
[...]
Datenfeld 8
Datenfeld 9
#
Datenfeld 1
Datenfeld 2
Datenfeld 3
[...]
Datenfeld 8
Datenfeld 9
#
[...]

Die Informationen dieser Liste müssen nun in eine Tabellenform. Die Spalten entsprechen dann den neun Datenfeldern aus der Liste. Je Zeile dann natürlich ein Unternehmen mit dem gesamten Datensatz.

Ich habe zwar einige Office-Erfahrung, diesen Fall hatte ich aber noch nicht. Leider benötige ich hier recht schnelles Vorankommen, da eine Deadline winkt.
Insofern würde ich mich sehr freuen, wenn Ihr mir hier auf kurzem Wege etwas Hilfestellung geben könntet.  17 Angel 

Vorab vielen Dank und beste Grüße
Ph_08154711
Antworten Top
#2
Wenn du diese Datei als PDF speicherst, kannst du den Weg: Daten > Daten abrufen > Aus Datei > Aus PDF versuchen um die Daten mittels Power Query zu importieren.

Wenn du damit nicht klar kommst, dann stelle eine anonymisierte Testdatei zur Verfügung und eine Excelmappe in der du händisch das gewünschte Ergebnis eingetragen hast.
[-] Folgende(r) 1 Nutzer sagt Danke an ws-53 für diesen Beitrag:
  • 08154711
Antworten Top
#3
Erstmal vielen Dank für die schnelle Antwort. Ich habe das auch so gemacht, leider bin ich mangels Erfahrung mit PowerQuery etwas überfragt ...  Undecided

Ich habe jetzt mal zwei Dateien als Beispiel erstellt. Einmal die Ausgangslage der Word-Datei und einmal die gewünschte Excel-Tabelle.

Auch hier schon jetzt vielen Dank!  Blush


Angehängte Dateien
.xlsx   UntListe__Tab__TEST.xlsx (Größe: 12,12 KB / Downloads: 4)
.docx   UntListe__TEST.docx (Größe: 34,13 KB / Downloads: 10)
Antworten Top
#4
In VBA So:

Code:
Sub M_snb()
  sn = Split(GetObject("J:\download\UntListe__TEST.docx").Content, "#" & vbCr)
  ReDim sp(UBound(sn), 10)
 
  For j = 0 To UBound(sn)
    st = Split(sn(j), vbCr)
    For jj = 0 To UBound(st)
      sp(j, jj) = st(jj)
    Next
  Next

  Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(sp) + 1, UBound(sp, 2) + 1) = sp
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Hallo,

auch wenn snb schneller war, hier eine Version mit uralt VBA:

Die Datei als "plain-text" speichern,

Code:
Sub F_en()
Dim Tx As String, Pfad As String
Dim i As Integer, j As Integer

Pfad = Environ("userprofile") & "\desktop\"

Open Pfad & "UntListe__Test.txt" For Input As #1

j = 1
While Not EOF(1)
    
    Line Input #1, Tx
    If IsNumeric(Tx) Then
        i = CInt(Tx)
    Else
        Cells(i, j) = Tx
        j = j + 1
    End If
    If Tx = "#" Then j = 1
Wend
Close #1
End Sub

mfg


Angehängte Dateien
.txt   UntListe__TEST.txt (Größe: 725 Bytes / Downloads: 1)
.xlsm   F_en.xlsm (Größe: 14,95 KB / Downloads: 1)
Antworten Top
#6
..und hier eine PQ Lösung. Allerdings hatte ich die Worddatei in eine Textdatei umgewandelt. 

Code:
let
    Quelle = Table.FromColumns({Lines.FromBinary(File.Contents("C:\Users\User\Downloads\UntListe__TEST.txt"), null, null, 1252)}),
    #"Gefilterte Zeilen" = Table.SelectRows(Quelle, each ([Column1] <> "#")),
    #"Hinzugefügter Index" = Table.AddIndexColumn(#"Gefilterte Zeilen", "Index", 0, 1, Int64.Type),
    Datenzeile = Table.AddColumn(#"Hinzugefügter Index", "Benutzerdefiniert", each if  Number.IsNaN(Number.From([Column1]))
    then "1"
    else
    #"Hinzugefügter Index"[Column1]{[Index]+1} & "," & #"Hinzugefügter Index"[Column1]{[Index]+2} & "," & #"Hinzugefügter Index"[Column1]{[Index]+3} & "," & #"Hinzugefügter Index"[Column1]{[Index]+4} & "," & #"Hinzugefügter Index"[Column1]{[Index]+5}
     & "," & #"Hinzugefügter Index"[Column1]{[Index]+6} & "," & #"Hinzugefügter Index"[Column1]{[Index]+7} & "," & #"Hinzugefügter Index"[Column1]{[Index]+8} & "," & #"Hinzugefügter Index"[Column1]{[Index]+9}),
    #"Gefilterte Zeilen1" = Table.SelectRows(Datenzeile, each true),
    #"Entfernte Fehler" = Table.RemoveRowsWithErrors(#"Gefilterte Zeilen1", {"Benutzerdefiniert"}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Entfernte Fehler",{"Index"}),
    #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Entfernte Spalten", "Benutzerdefiniert", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Firma", "Inhaber", "Anschrift", "PLZ & Ort", "Telefon","Mobil","Telefon2","eMail"}),
    #"Umbenannte Spalten" = Table.RenameColumns(#"Spalte nach Trennzeichen teilen",{{"Column1", "LfdNr"}})
in
    #"Umbenannte Spalten"




..und hier eine PQ Lösung. Allerdings hatte ich die Worddatei als Textdatei gespeichert.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#7
Hallo zusammen,

zunächst nochmal vielen Dank für die schnelle und zahlreiche Unterstützung!

Der letzte Vorschlag, also die PQ-Lösung, hat in meinem Fall tatsächlich den Erfolg gebracht. Der Weg dahin war tatsächlich etwas schwierig. Dies lag in erster Linie daran, dass die Quelldaten – auf Grund inkonsistenter Anzahl der Zeilen in einzelnen Datensätzen, überflüssigen Leerzeichen etc. – zu Problemen bei der Übernahme geführt haben.
Nach umfangreicher manueller Korrektur hat nun alles funktioniert!

Nochmals danke und eine schöne Restwoche an alle!  100  Blush

VG 08154711
Antworten Top
#8
Zitat:Nach umfangreicher manueller Korrektur hat nun alles funktioniert!

Interessant. wäre mit die 2 VBA Vorschläge überflüssig gewesen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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