Habe mir gerade nur ganz kurz nur deine Zip Datei angeschaut. Der Aufbau dem ganzen sieht sehr gut aus. Wenn es nur immer um die gleichen Tabellennamen (Dat & Grund) ist das einlesen kein Problem, da spielt es absolut keine Rolle ob es verschiedene Spaltennamen haben. Ich persönlich mache sowas nur noch in einer einzigen Abfrage , was dir wahrscheinlich nicht gefallen wird. Mir ist noch unklar was du nach den Einlesen mit den Ganzen vor hast.
24.04.2025, 09:54 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2025, 10:13 von schauan.)
@Ralf,
das ist dann doch ein Missverständnis. Die Daten in der Parametertabelle werden manuell gepflegt.
Ich komme nochmal auf den ursprünglichen code von ws-53 zurück. Der holte die Daten aus den in der Parametertabelle definierten csv. Ich habe nun stattdessen 3 Exceldateien.
Im erweiterten Editor kann ich in dieser Datei zwar das eine oder andere Offensichtliche anpassen, aber viel mehr auch mangels ausreichender Kenntnisse nicht Ich kann z.B. aus "Warengruppe","Umsatz", was bei mir nicht enthalten ist, "Wer","Was" machen. Ich kann auch den Pfad von Import Directory ändern. Das mit der Hilfsabfrage bekomme ich schon nicht gebacken. Das mit der csv-wandlung kann ja entfallen, aber die ganze Hilfsabfrage löschen geht nicht weil die in einer anderen gebraucht wird.
#2 von ws-53 holt mir zwar die spezielle Tabelle, aber nur aus dem ersten Verzeichnis der Parametertabelle und dort auch von allen Tabellen in diesem Verzeichnis und nicht nur von der definierten. Ich hatte zum Test mal die Mappe1_GHI nach .../Anton/ kopiert. Mappe1_DEF wird nicht importiert - habe das Ergebnis mal im Anhang.
Ich bräuchte praktisch einen Mix aus dem ursprünglichen code cef - Parameter... und #2 @pivpq,
wie gesagt, es geht mir nur darum, aus mehreren definierten Dateien definierte intelligente Tabellen auszulesen.
Wie in dem Gesundheitsbeispiel - ich brauche in der Zusammenfassung eine Tabelle tbl_Ärzte mit den Ärzten aus den definierten Dateien und eine tbl_Krankheiten mit allen Krankheiten aus den definierten Dateien. Die anderen vorerst nicht, sollte aber bei Bedarf zu einem späteren Zeitpunkt einfach erweiterbar sein und eben auch einfach für eine Zusammenfassung der Auto-Dateien anpassbar sein.
Was dann hinterher draus gemacht wird, ist auch total unterschiedlich. Ob ich bei den Autodaten ein Diagramm erstelle, wo vielleicht steigende Werkstattkosten ersichtlich sind oder bei Gesundheitsdaten die Anzahl Erkältungen ermittle nebst Kosten für Pillen, das bekomme ich im Nachgang per Formel, VBA oder was auch immer gebacken. Wichtig ist eben erst mal, dass ich die Daten per PQ in jeweils eine Datei mit den strukturell identischen Tabellen bekomme - abgesehen von einer Spalte mit Quelldateinamen - ausreichend wäre auch ein Extrakt davon, z.B. vom letztem Underline bis zum "Extention-Dot".
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
24.04.2025, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2025, 11:23 von ws-53.)
Hallo André,
wie du die Spalten dynamisch expandieren kannst, das zeigt Chandeep (goodly.co) recht gut. Geht es nur um die Spalten, dann genügt ein einfacher Table.Combine. Willst du aber bspw. auch die ursprünglichen Mappennamen im Ergebnis sehen, dann geht es mit einer Spaltenliste.
Ich habe seine Beispiele mal auf deine Tabellen angepasst. Damit sollte es für diesen Teil deiner Anforderung zufriedenstellende Lösungen geben.
Für den Import aus unterschiedlich vielen Mappen, die alle identisch aufgebaut sind, empfinde ich es allerdings als Quatsch, in die Parametertabelle auch jeweils alle Tabellennamen mit aufzunehmen. Das ergibt nur dann Sinn, wenn die Tabellen in den einzelnen Mappen unterschiedliche Namen haben. Insofern würde ich die Mappennamen in eine Tabelle packen und die jeweiligen Tabellennamen als Parameter definieren.
Wenn sich die zu importierenden Mappen alle in einem Hauptverzeichnis befinden kannst du dieses importieren, um dann die benötigten Mappen zu filtern. Diese Methode habe ich in die Abfrage Folder Import_Expand_Col_Names eingefügt.
P.S.: Mich würde ja einmal brennend interessieren, ob die PQ-hochbegabten die 1-Schrittabfragen direkt so im Editor erfassen, oder zuerst eine ganz normale Abfrage erstellen, um diese dann aufwändig nachzubearbeiten? Auch frage ich mich, wie groß der Aufwand ist, wenn dann nachträglich eine 1-Schrittabfrage angepasst werden muss.
Solange mir dazu keiner der wenigen PQ-hochbegabten eine vernünftige Antwort geben kann, bin ich eigentlich froh, nicht zu den hochbegabten zu gehören!
(24.04.2025, 11:23)ws-53 schrieb: wie du die Spalten dynamisch expandieren kannst, das zeigt Chandeep (goodly.co) recht gut....
was meinst Du denn genau, mit Spalten dynamisch expandieren? M. M. n. kann man darauf komplett verzichten. Folgendes Bsp. geht von folgenden Voraussetzugen aus:
- es gibt ein Parametertabelle Namens tblPara mit den Spalten Pfad, Datei und Tabelle, in denen in der 1, Zeile logischerweise) die entsprechenden Daten stehen. Die werden verarbeitet. Entscheidend ist aber der Schritt LiesTabelle. Da wird komplett auf Table.ExpandColumns verzichtet, wo man ja die entsprechenden Spaltennamen angeben muss. Ich brauch die gar nicht.... Wenn ich jetzt die (bis kurz davor noch unbekannten) Spaltennamen brauche, kann ich sie jetzt ganz locker verwenden, weil sie ja nun in Anzahl und allen Namen bekannt sind.
Probiers mal aus... :)
PHP-Code:
let Quelle = Excel.CurrentWorkbook(){[Name="tblPara"]}[Content], Pfad = Quelle[Pfad]{0}, Datei = Quelle[Datei]{0}, Tbl = Quelle[Tabelle]{0},
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.
24.04.2025, 12:58 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2025, 13:09 von schauan.)
halle ws-53,
danke, das ist Spitze
Ja, ich war gerade unterwegs und habe mir das mit den Tabellennamen auch schon so gedacht. Es reicht eigentlich irgendwo eine Zelle pro Abfrage, wo der Name eingetragen ist. Ansonsten habe ich bei 10 Dateien unnützerweise 10x den Tabellennamen ...
Table.Combine und die andere auf dem Blatt sind ideal für die Flexibilität. Je nachdem, wo ich die Dateinamen brauche und wo nicht kann ich die dann einsetzen Die Dateien werden dann aus den Unterverzeichnissen gezogen, egal, in welchem die liegen. @Ralf, der Höher gestufte Header erzeugt eine Tabelle, wo die erste Datenzeile zum Header wird?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Zitat:Dateien werden dann aus den Unterverzeichnissen gezogen, egal, in welchem die liegen.
Hier musst du nur aufpassen, dass es keine Unterverzeichnisse mit namensgleichen Testdateien oder Sicherungskopien gibt, da du diese sonst mehrfach importieren würdest.