Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formel aus 1000 geschl files einlesen, filename=variable

Forumthread: Formel aus 1000 geschl files einlesen, filename=variable

Formel aus 1000 geschl files einlesen, filename=variable
11.09.2024 16:57:00
StefanCX
In Spalte A sind 6-stellige Nummern abgelegt. Für jede dieser Nummern zb 213465 existiert ein File, also 213465.xlsm. Aus diesen ca 1000 Files sollen pro File rund 45 Datenpunkte via Formel zeilenweise ausgelesen werden in eine Übersichtstabelle, die dann weiteren Auswertungen dient.
Die Übersichtstabelle soll jederzeit mit neuen 6-stelligen Nummern in Spalte A befüllt werden können, damit die Datenpunkte von weiteren, anderen Files ausgelesen werden können.

Das funktioniert grundsätzlich direkt wie folgt mit geschlossenen Files
=WENNFEHLER(+'A:\Bulletins de livraisons\current\[213465.xlsm]Facture'!$B$26;"…")
nun soll 213465 für jeden zu lesenden Datenpunkt jeweils durch den Wert in Spalte A ersetzt werden

Die Lösung mit Index (wobei in A3 213465 steht)
=WENNFEHLER(+INDIREKT("'A:\Bulletins de livraisons\current\["&A3&".xlsm]Facture'!$B$24)");"…")
funktioniert bei mir leider nicht mit geschlossenem File 213465.xlm, nur mit offenem File. Warum erschliesst sich mir nicht, wenn die Zahl direkt in der Formel steht, geht es ja auch mit geschlossenem File! Was übersehe ich?
1000 file öffnen und schliessen = gute Nacht



Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum erschliesst sich mir nicht,
11.09.2024 17:25:32
Uduuh
Hallo,
weil INDIREKT nun mal nicht mit geschlossenen Files umgehen kann.

Gruß aus'm Pott
Udo

AW: Formel aus 1000 geschl files einlesen, filename=variable
11.09.2024 17:44:26
daniel
Hi
wie der Kollege schon schrieb: Indirekt funktioniert nicht mit geschlossenen Dateien.


wenn man davon ausgeht, dass sich die Werte in Spalte A nicht ständig neu geschrieben werden, sondern über längere Zeit "Stabil" sind, geht auch folgender Workaround, um nicht tausend Dateien einzeln auszulesen.

der Trick ist, man erstellt zunächst den Formeltext per Formel als normalen Text, und wandelt dann diesen Text in eine Formel um:

also statt: =INDIREKT("'A:\Bulletins de livraisons\current\["&A3&".xlsm]Facture'!$B$24)")

kommt dann in die Zelle der Spalte:
="='A:\Bulletins de livraisons\current\["&A3&".xlsm]Facture'!$B$24"
diese Formel zieht man dann nach unten.
Wenn man so die Formeltexte für alle Zeilen erstellt hat, kopiert man die Spalte und fügst sie als Wert ein.
Dabei bleiben sie zunächst Text. Um die Texte in eine Formel zu wandeln, kann man einmal in die Zelle klicken und ENTER drücken, oder wenn man das für alle Texte machen will, markiert man sie und ersetzt mit der Menüfunktion ERSETZEN das "=" durch "=".
Das Ersetzen ist wie eine Neueingabe (also reinklicken und Enter), funktioniert aber für alle Zellen, in denen etwas ersetzt wird, gleichzeitig.
so kannst du relativ einfach eine beliebige Anzahl von externen Zellbezügen erstellen.

Es gibt dabei nur eine kleine Sache, die du beachten musst:
du solltest sorgfältig arbeiten, fehler vermeiden und jede angegebene Datei muss auch vorhanden sein.
Denn sollte einer dieser Text nicht in einen funktionierenden externen Zellbezug umgewandelt werden, wird dich Excel fragen, welche Datei und Tabellenblatt es denn verwenden soll, und das bei jedem! wenn also von den 1000 Formeln 200 nicht funktionieren, musst du 200x durch diesen Dialog.

eine andere Alternative ist vielleicht PowerQuery, das ist eine Excelfunktionalität, die das Arbeiten mit Daten und Tabellen unterstützt, so auch das Einlesen von Daten.
Ab Excel 2016 ist das immer mit dabei, für Excel 2010 und 2013 kann man es nachinstallieren. Es erfordert aber etwas Mühe, sich da reinzuarbeiten.

Gruß Daniel
Anzeige
Formel aus 1000 geschl files einlesen, filename=variable
11.09.2024 19:48:17
StefanCX
vielen Dank für die Hinweise

1. die 6 stelligen ändern, pro Jahr sind es etwa 1500
2. die 6 stelligen Filenamen entstehen nach und nach
3. es sind 1500 Zeilen und 68 Datenpunkte pro Zeile, im anderen Fall 5500 Zeilen und 88 Datenpunkte
4. mit dem Wennfehler funktioniert es nicht, die ... scheinen das Problem zu sein

Ich pröble nun auf Basis von

="=WENNFEHLER(+'A:\Bulletins de livraisons\current\["&$A2&".xlsm]Facture'!$h$9;"&'Tricks und referenzzellen'!$C$5&")

und der Funktion Text in Spalten


Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige