Holen Sie sich den Namen des Excel-Arbeitsblatts in der SUM-Formel „zwischen:Arbeitsblättern“

Holen Sie sich den Namen des Excel-Arbeitsblatts in der SUM-Formel „zwischen:Arbeitsblättern“

Ich habe eine Reihe von Blättern mit verschiedenen Namen, z. B.

start, wc 17 Oct,  wc 24 Oct, wc 31 Oct

Um eine laufende Summe verschiedener Zahlen in jedem Blatt zu behalten, verwende ich einfach Folgendes in jedem Blatt:

=SUM('start:wc 24 Oct'!B1)

Dann ist das nächste Blatt,

=SUM('start:wc 31 Oct'!B1)

Und so weiter und so fort. Ich weiß, dass Sie den aktuellen Blattnamen mit abrufen können=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

Gibt es jedoch eine Möglichkeit, die beiden

=SUM("'start:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&'!B1)

Was ist die richtige Syntax, damit das oben genannte funktioniert, sofern dies möglich ist?

Ich habe versucht,INDIRECT

=SUM(INDIRECT("'start:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"'!B1", TRUE))

Es tritt jedoch immer wieder ein Fehler auf #REF!.

Antwort1

Eine Möglichkeit wäre, dem startBlatt eine Liste aller Blätter hinzuzufügen.

Dies kann dynamisch durch Hinzufügen eines benannten Bereichs erfolgen. Verwenden Sie im Namensmanager die folgende Formel:

=GET.WORKBOOK(1)

Und nenn es irgendwie (ich habe verwendet test)

Bildbeschreibung hier eingeben

Geben Sie dann in Start!A1 Folgendes ein:

=IFERROR(MID(INDEX(test,ROW(1:1)),FIND("]",INDEX(test,ROW(1:1)))+1,999),"")

Und nach unten ziehen/kopieren. Dadurch wird eine Liste der Blätter in der Reihenfolge erstellt, in der sie in den Registerkarten erscheinen.

Verwenden Sie dann diese Formel in der gewünschten Zelle, um die Summe zu berechnen:

=SUMPRODUCT(SUMIF(INDIRECT("'" & INDEX('start'!A:A,MATCH("start",'start'!A:A,0)):INDEX('start'!A:A,MATCH(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),'start'!A:A,0)) & "'!B1"),"<>0"))

verwandte Informationen