Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Importierte textfiles auswerten

Importierte textfiles auswerten
22.12.2021 10:08:23
Johannes
Guten Morgen,
Ich arbeite gerade an einem kleinen Projekt, bei dem ich wieder mal eure Hilfe brauchen könnte.
Ich habe mit Daten Abrufen, alle Textfiles in einem Ordner importiert, in diesem falle 24.
In jedem Textfiles sind 315 Werte gespeichert, die ich auslesen will.
In spalte A habe ich beim Importieren die führenden nummern abgetrennt, da die, dem ID entsprechen, nach dem ich auslesen will.
In der Spalte C sind die Bezeichnungen der in jedem Textfile wiederkehrenden Werte ausgelesen.
In Spalte D die gesuchten Werte.
Ziel ist es, die Werte zu den Bezeichnungen aus jedem Textfile in eine extra Spalte auszugeben.
Ich habe bis jetzt die Unic ID nummern aus spalte a extrahiert, aber leider nur in Zeilen geschafft, bräuchte es aber waagerecht in Spalten. z.B.B2 bis V2
Mit dieser Formel.
=INDEX($A:$A;AGGREGAT(15;6;ZEILE(A$2:A$10803)/(ZÄHLENWENN(T$1:T1;A$2:A$10803)=0) /(A$2:A$10803"item");1)) &""
die Bezeichnungen habe ich manuell ins Blatt Auswertung kopiert, weil Hilfsfelder die gleiche Bezeichnung haben
Dann wollte ich eigentlich im Blatt Auswertung die Werte mit einer Formel auslesen, hab da aber noch irgendwo einen Wurm drin.( funktioniert gut bis ich die Bereiche vergrößere).
=WENNFEHLER(VERWEIS(9;1/(B$2&$A3=Expert4x_TT_2021_11!A2:A10000&Expert4x_TT_2021_11!C2:C10000); Expert4x_TT_2021_11!D2:D10000);"")
Ich habe mal eine Musterdatei beigefügt und im Blatt Auswertung die ID nummern Manuell in die spalten eingefügt.B2:V2
ebenfalls die Bezeichnungen A3:A315
https://www.herber.de/bbs/user/149949.zip
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt
danke
Johannes

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nachgefragt: warum mit Formel? ...
22.12.2021 11:44:49
neopa
Hallo Johannes,
... Du hast doch den Import mit Power Query vorgenommen, wie Du schreibst, warum dann nicht Deine geplante Auswertung gleich auch da?
Gruß Werner
.. , - ...
AW: Plan Mangel
22.12.2021 11:50:06
Johannes
Hallo Werner,
Hab ich auch dran gedacht, aber leider absolut keinen plan und auch keinen gefunden,
Ich konnte gerade so die Zeilen trennen.
Das wäre natürlich am besten, wenn das irgendwie geht
Hannes
AW: nicht immer alle Textfiles gleich
22.12.2021 12:01:00
Johannes
Ich kann auch nicht davon ausgehen, dass die Text Files alle immer das gleiche Format haben.
Manchmal sind in einem Text File nicht alle Daten enthalten, sondern nur die angepassten.
Da dachte ich bei meinem Wissensstand das beste alles auslesen und dann zuordnen.
Habe gerade nochmal im Import rumgesucht aber auch im Hilfe File nichts gefunden.
Johannes
Anzeige
AW: das ist so nicht eindeutig ...
22.12.2021 12:16:04
neopa
Hallo Johannes,
... aber schau Dir zunächst erst einmal Deine Formel an, die nach Deiner Meinung nach in SpalteB eine richtige Auswertung vornimmt. Oder? ich bin da anderer Meinung. Da ist nicht nur der Auswertungsbereich weit genug definiert sondern es fehlen auch einige "Dollars".
Wenn Du das korrigiert hast, kannst Du die Formel auch nach rechts kopieren.
Kommst Du damit schon klar?
Gruß Werner
.. , - ...
AW: das ist so nicht eindeutig ...
22.12.2021 13:12:54
Johannes
Ok...
Ich habe die Formel in Blatt Auswertung B3 nach deinem Stupser nochmal überarbeitet.
=WENNFEHLER(VERWEIS(9;1/(B$2&$A3=Expert4x_TT_2021_11!$A$3:$A$10000&Expert4x_TT_2021_11!$C$3:$C$10000) ;Expert4x_TT_2021_11!$D$3:$D$10000);"")
Die gesuchten werte B2 fixiert und A3 das A fixiert.
Such spalte für C2, A3:A10000
Suchspalte für A3, C3:C10000
Ergebnisspalte D3:D10000
Das Ergebnis ist schon mal vielversprechend, nur in Spalte B sind die Ergebnisse falsch oder versetzt.
Spalte C bis Y sind, glaub ich korrekt. Muss mal die Expert4x- liste überprüfen, aber die werte sehen plausibel aus.
Soweit so gut.
Johannes
Anzeige
AW: gerne owT
22.12.2021 15:08:00
neopa
Gruß Werner
.. , - ...
AW: nicht immer alle Textfiles gleich
22.12.2021 12:19:18
Yal
Hallo Johannes,
was Du brauchst, ist ein Pivotieren der Spalten ohne Aggregation. Das geht tatsächlich mit PQ am besten.
Du musst die Dateien in ihren ursprüngliche Spaltendefinition zusammenführen und erst dann pivotieren.
Die schwierigkeit ist, dass manche KOmbination doch mehrmals vorkommen, daher müsste eine Aggregation vom Typ "Verkettung" stattfinden, die es nicht in PQ gibt.
Gerade an diesem Punkt bin ich am werkeln.
VG
Yal
AW: lass ihn zunächst den Formelfehler finden owT
22.12.2021 12:24:18
neopa
Gruß Werner
.. , - ...
Power Query Lösung
22.12.2021 13:09:50
Yal
Hallo Johannes,
Nach dem letzten Post sehe ich, dass Du trotz "Basiskenntnisse in Excel" doch einen gesunde Verstand von Power Query.
Ich werde trotzdem nicht die -schon vorher angefangene- Erklärung abspecken. Es könnten anderen, nicht so Fortgeschrittenen, auch damit was anfangen.
@Werner: mir geht es nicht nur ums "helfen", sondern, dass es mir die Gelegenheit, mit PQ zu spielen. U.a. die Text-Verkettung als Aggregate hätte ich ohne das "Problem" nie danach gesucht.
Mit PQ, Schritt für Schritt:
_ gehe auf das Blatt "Export4x_..." und klick auf A1
_ Menü "Daten", "aus Tabelle"
Du bist jetzt in PQ Editor. Da wir aber die andere Liste brauchen,
_ auf "Schliessen & laden in..." klicken, "nur Verbindung erstellen" einsetzen.
Du bist wieder im klassischen Excel-Welt.
_ gehe auf das Blatt "Auswertung"
_ klicke die Zelle A2
_ Menü "Daten", "Aus Tabelle"
_ andere den Range "$A$2:$Y$315" in "$A$2:$A$315" (nur die Spalte A), hat überschrift: nein.
Du bist wieder in PQ-Editor. Die neue Abfrage heisst "Tabelle2" (Name ist nur für der Erklärungspunkt "Abfrage zusammenführen" von Relevanz)
_ markiere die Spalten "Source.Name.2", "Column3", "Column4" und rechtklicke auf "Spalten entfernen"
_ mit Dem Filter auf "Column.2" entfernst Du alles Werte (u.a. 0), die Du nicht brauchst
_ markiere die Spalten "Source.Name.1", "Column1"
_ Menü "transformieren", "Gruppieren nach"
_ Die 2 Spalten zu gruppieren sind schon da,
_ als Aggregationsvorgang "Summe" auf Spalte "Column2" einstellen (!)
_ es führt zu einen Sammlung von "Error"
_ in der Formelleiste, da wo each List.Sum([Column2]) steht,
_ ändern in (achtung Case sensitive): each Text.Combine([Column2], ";")
Mit diesem Eingriff in der Gruppierung ist der Schritt nicht mehr "Standard" und das Rädchen in der Schrittliste ist für diese Schritt nicht mehr vorhanden.
Wir brauchen aber nur ein Teil diese Daten:
_ im Menü "Start", "Abfrage zusammenführen"
_ "Tabelle2" als zweite Abfrage auswählen
_ im obere Tabelle "Column1" markieren,
_ in zweite Abfrage die einzige Spalte markieren
_ als Join-Art "Inner Join" auswählen
_ die neue Spalte brauchen wir nicht. Es war nur einen Filter. Markieren und entfernen.
Die jetzige Spaltendefinition gilt für alle deiner Quellen. Bei nächsten Schritt werden ein unvorhersehbar Anzahl an Spalten erzeugt, so dass die Abfragen nicht mehr zusammengeführt werden könnten. Daher Quellen zusammenführen, dann verarbeiten.
_ markiere die Spalten "Source.Name.1"
_ gehe in "Transformieren" auf "Spalte pivotieren"
_ "Wertespalte" ist "Column.2"
_ in "erweiterte Optionen" setze auf "Nicht aggregieren"
_ "Schliessen und laden in..." diesmal nicht "nur Verbidnung erstellen", sondern richtig herausgeben.
Fertig.
Manche Kombinationen ergeben "Error". Es liegt daran, dass der Text.Combine nicht funktioniert hat, weil zu viele Einträge vorhadnen wäre. Wie es dazu kam, liegt an der Daten. Da kann ich leider nicht weiterhelfen.
VG
Yal
Anzeige
AW: Power Query Lösung
22.12.2021 13:23:13
Johannes
Hallo
Danke Werner und Yal,
ich werde mich natürlich ins PQ einarbeiten, kann man ja anscheinend viele Probleme im Ansatz erledigen, wie zb Zellformatierung und Trennung usw.
Da das alles für mich doch ziemlich neu ist, werde ich mich mal von Anfang an da durcharbeiten und mit Werners Fehlersuche anfangen und dann mich langsam in die PQ Welt vorarbeiten.
Merci vielmals fürs Helfen von Anfängern. Wüste nicht, was ich ohne Euer Forum machen würde.
Johannes
Wenn Du mit dem Power Query anfängst,...
22.12.2021 13:45:14
Yal
... brauchst Du keine Fehlersuche mehr!
Power Query eignet sich da wo es um die Behandlung der Daten geht. VBA kümmert sich um die Prozesse und deren Automatisierung.
Ich sehe in PQ das besondere Vorteil, dass es den Fokus auf das eigentlich wichtigste legt: die Daten.
Und wenn ich ein Anfänger ein Tipp geben kann, ist es eben: strukturiere deine Daten "g'scheid". Da es schwer ist, davon eine Definition zu geben, lernt man mit PQ viel schneller, was eine gute und was eine dumme Datenorganisation ist.
Je beeindrückender die "Rettungsformel" sind, desto höher der Zeichen, dass die Daten suboptimal zusammengestellt sind (trotzdem Respekt, für die die es können).
Das Schön- oder Bequemer-machen mit VBA -wenn auch eine wichtige Fertigkeit- sollte immer an letzter Stelle kommen.
VG
Yal
Anzeige
AW: nicht immer alle Textfiles gleich
22.12.2021 13:08:14
ChrisL
Hi Yal
Damit du nicht zu lange werkeln musst ;)
Du könntest "Gruppieren nach" mit Vorgang "Alle Zeilen". Danach eine benutzerdefinierte Spalte: =[FeldAlle][Spalte2]. Abschliessend im Spaltentitel "Werte extrahieren" z.B. Kommagetrennt.
Damit kommt man ohne Eingriff in den M-Code zum Ziel.

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Entfernte Spalten" = Table.RemoveColumns(Quelle,{"Column4"}),
#"Gruppierte Zeilen" = Table.Group(#"Entfernte Spalten", {"Column1", "Column3"}, {{"alle", each _, type table [Column1=text, Column2=text, Column3=number]}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Gruppierte Zeilen", "Wert", each [alle][Column2]),
#"Extrahierte Werte" = Table.TransformColumns(#"Hinzugefügte benutzerdefinierte Spalte", {"Wert", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Extrahierte Werte",{"alle"}),
#"Pivotierte Spalte" = Table.Pivot(Table.TransformColumnTypes(#"Entfernte Spalten1", {{"Column3", type text}}, "de-CH"), List.Distinct(Table.TransformColumnTypes(#"Entfernte Spalten1", {{"Column3", type text}}, "de-CH")[Column3]), "Column3", "Wert")
in
#"Pivotierte Spalte"
cu
Chris
Anzeige
Scho' wida was g'lernt, Danke :-) owT
22.12.2021 13:18:26
Yal
AW: Scho' wida was g'lernt, Danke :-) owT
22.12.2021 13:27:16
Johannes
Hallo,
und ich dachte ich komm mit bayrisch, deutsch, englisch und spanisch gut durchs leben.
Wenn ich mir das da oben so anschaue, war das eine Fehleinschätzung.
Ich hoffe ich versteh es irgendwann mal.
Johannes
AW: Scho' wida was g'lernt, Danke :-) owT
22.12.2021 13:36:33
ChrisL
Hi Johannes
Hier noch die passende Datei zum M-Code von vorhin. Alles über PQ Standardfunktionen machbar:
https://www.herber.de/bbs/user/149953.xlsx
cu
Chris
wow genial, danke Chris
22.12.2021 14:03:27
Johannes
Hallo Chris
Das Mus ich erstmal verdauen.
Wühl mich da jetzt mal durch.
Auffällig ist die spalte B das die so aus der Reihe tanzt.
Danke, melde mich bestimmt wieder.
Johannes
Anzeige
AW: das Auslesen der List(e): super :-) owT
22.12.2021 15:07:39
neopa
Gruß Werner
.. , - ...
AW: muss mich da diese tage nochmals reindenken
22.12.2021 17:16:19
Johannes
Ja schon, aber ich verstehe noch nicht so ganz, muss mich da diese tage nochmals reindenken und eventuell nochmals nachhaken.
Das Ergebnis schaut super aus.
Johannes

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige