Frage von Gipfelstuermer, 60

Gibt es eine Möglichkeit, aus allen Excel Tabellen eines Ordners, eine bestimmte Zelle zu addieren?

Ich habe in einem Ordner Wochenabrechhnungen, dort wird immer in der selben Zelle der entsprechende Betrag x ausgegeben, nun wollte ich fragen, ob es möglich ist einfach zu sagen rechne mir von allen Tabellen in dem Ordner alle Zellen G12 zusammen als Beispliel.

Am besten ohne den Pfad jeder Datei einzeln anzugeben, Also mal übertragenen Sinne im Windows Stile:

=summe(Pfad/*.xls;Tabelle1!G12)

Ist sowas in der Richtung möglich?

Expertenantwort
von Iamiam, Community-Experte für Excel, 28

Mit z.B. ='LW:\Pfad\[Dateiname.Erw]Blattname'!Adresse

kannst Du Werte auch aus geschlossenen Dateien lesen (sofern nicht geschützt).

Es ist mir nicht gelungen, das mit INDIREKT() hinzukriegen, das funktioniert bei mir nur, wenn ich die Quelldatei öffne. (wird nach dem Schließen bei einmal neuberechnen wieder zu #Bezug! )

es muss also jeder einzelne Pfad von Hand geschrieben werden. (zumindest der abweichende Teil - und Vorsicht, wenn Du eine Basisstring nach unten kopierst: die Zeilennummer wird dabei hochgezählt, wenn Du nicht die Kontextmenü-Option Zellen kopieren wählst)

ich würde Dir aber ohnehin empfehlen, das als Liste anzulegen, dann kannst Du für jede Datei sehen, welchen Wert sie liefert, und dann die Summe über die Spalte zu bilden.

Kommentar von Iamiam ,

schreibe den Bezugsstring am besten links oder noch besser rechts neben die gewünschte Spalte, kopiere ihn dann in die zu summierenden Zellen und setze das = davor.

Beachte, dass das führende ' üblicherweise verschwindet, Du kannst das durch ein doppeltes ' vermeiden (das zweite bleibt erhalten) oder Du setzt =' davor

Die Liste könnte mit VBA erstellt werden, dazu müsste ich mich aber erst in die Befehle einarbeiten. Frag das ggf nochmal extra.

Kommentar von Iamiam ,

noch was:

Bei mir wird eine große QuellDatei als teilweise unlesbar gemeldet (beim Öffnen sind alle Formate weg), wenn ich sie nachträglich öffnen will. In diesem Fall ist noch nichts passiert: Nicht wiederherstellen, sondern schließen ohne Speichern, die Zieldatei schließen, Excel beenden, die Quelldatei wieder öffnen (ich mach das immer vom Explorer aus, geht aber auch wahrscheinlich über das Kontextmenü der Leiste mit den zuletzt verwendeten Dateien): sie ist unbeschädigt. Ggf wieder schließen.

Dann kannst Du die Zieldatei erneut öffnen und den Quellbezug eingeben und alles ist in Butter, wenn auch weiterhin ärgerlich.

Kommentar von Iamiam ,

Du kannst die Liste -sofern fortlaufend- trotzdem (halb-)automatisch generieren: in zB D1: '''C:\Verzeichnis\Datei01" und runterziehen, in C1: =D1&".xls(x)]Blatt'!Adresse"

Formel runterziehen, Spalte kopieren und als WERTE in B1 einfügen.

Danach nur noch = davorsetzen. (ob eingangs ein oder zwei ' nötig sind, musst Du ausprobieren. Oder im Bedarfsfall eben =' schreiben.

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 30

Tabellenblattübergreifend ginge das so:

=SUMME(Tabelle2:Tabelle3!A10)

Arbeitsmappenübergreifend:

Wenn du weißt, wie die Exceldateien heißen, kannst du eine Auflistung derer in einer Formel verwenden (bei mir Mapp2.xlsx und Mappe3.xlsx

=SUMME(INDIREKT("["&WAHL(ZEILE($2:$3);"Mappe2";"Mappe3")&".xlsx]Tabelle1!$G$12"))
Kommentar von Suboptimierer ,

PS: Zu beachten ist der Syntax der Zellreferenzierung mit Pfad: 'E:\tmp\[Mappe2.xlsx]Tabelle1'!$G$12

In jedem Fall ist es von Vorteil, wenn die Dateinamen in einem Schema mit Zähler gespeichert wurden. So musst du die Liste der Dateinamen nicht immer wieder erweitern.

Eine Dateisuche kann ich dir ohne VBA nicht bieten.

Kommentar von Gipfelstuermer ,

Die 2 Idee geht auch in meine Richtung die ich mir auch überlegt habe, aber das wäre halt soviel Schreibarbeit. 

Ich nehme mal an bei der Selektion von Dateinamen sind keine Formeln möglich, da die Excel Dateien grundsätzlich immer gleich heißen, nur die Kalenderwoche ist um eine Nummer aufsteigend. 


Kommentar von Suboptimierer ,

Wenn die Dateien Immer "E:\Pfad\abc KW ##.xls" heißen, wobei ## für die Kalenderwoche steht, kannst du die Formel oben verwenden:

=SUMME(INDIREKT("'E:\Pfad\[abc KW "&ZEILE($1:$52)&".xls]Tabelle1'!$G$12"))

(ungetestet)

Kommentar von Iamiam ,

Die Idee ist gut, ich krieg das aber mit Indirekt in keiner Weise hin, nur dann, wenn die Quelldatei geöffnet ist!. Und noch weitere Komplikationen! (siehe meine AW!)

Kommentar von Suboptimierer ,

Spätestens hier würde ich zu VBA greifen, um auf die Exceldateien und das Dateisystem zuzugreifen.

Den Link unten (http://www.excel-ticker.de/excel-bezuge-zu-externen-dateien-dynamisch-aufbauen/) würde ich mir noch genauer anschauen, denn auf dem ersten Blick erscheint es mir so, als solle das Problem damit gelöst werden können.

Kommentar von Suboptimierer ,

Habe gerade eine Seite gefunden, auf der ein ähnliches Problem behandelt wird. http://www.excel-ticker.de/excel-bezuge-zu-externen-dateien-dynamisch-aufbauen/

Antwort
von PWolff, 34

Nur per Makro.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten