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

3 Antworten

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.

Iamiam  21.12.2015, 11:47

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.

0
Iamiam  21.12.2015, 12:08
@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.

0
Iamiam  21.12.2015, 13:13
@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.

0

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"))
Suboptimierer  21.12.2015, 09:22

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.

0
Gipfelstuermer 
Fragesteller
 21.12.2015, 09:26

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. 


0
Suboptimierer  21.12.2015, 09:31
@Gipfelstuermer

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)

0
Iamiam  21.12.2015, 12:13
@Suboptimierer

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!)

0

Nur per Makro.