Ermittelt den Excel-Blattnamen in der Formel SUM 'between: sheets'

0

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

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

Um auf jedem Blatt eine fortlaufende Summe verschiedener Zahlen zu erhalten, verwende ich einfach die folgenden Angaben auf 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 erhalten können=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

Es gibt jedoch eine Möglichkeit, die beiden zu kombinieren

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

Was ist die richtige Syntax, damit das oben Genannte funktioniert, wenn es möglich ist?

Ich habe versucht mit INDIRECT

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

Dies wirft jedoch immer wieder einen #REF!Fehler auf.

Tim Wilkinson
quelle

Antworten:

0

Eine Methode 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 nenne es etwas (ich habe es benutzt test)

Bildbeschreibung hier eingeben

Dann in Start! A1 setzen:

=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 auf den Registerkarten angezeigt werden.

Verwenden Sie dann diese Formel in Ihrer 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"))
Scott Craner
quelle