
我有一系列具有不同名稱的表格,例如
start, wc 17 Oct, wc 24 Oct, wc 31 Oct
為了保持每張紙中各種數字的運行總數,我只需在每張紙中使用以下內容,
=SUM('start:wc 24 Oct'!B1)
那麼下一張紙是,
=SUM('start:wc 31 Oct'!B1)
等等等等。我知道你可以透過以下方式取得目前工作表名稱=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)
但是有沒有辦法將兩者結合起來
=SUM("'start:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&'!B1)
如果可能的話,使上述工作正確的語法是什麼?
我嘗試過使用INDIRECT
=SUM(INDIRECT("'start:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"'!B1", TRUE))
然而,這不斷拋出#REF!
錯誤。
答案1
一種方法是將所有工作表的清單新增到start
工作表中。
這可以透過新增命名範圍動態完成。在名稱管理員中使用下列公式:
=GET.WORKBOOK(1)
並為其命名(我用過test
)
然後在 Start!A1 中輸入:
=IFERROR(MID(INDEX(test,ROW(1:1)),FIND("]",INDEX(test,ROW(1:1)))+1,999),"")
並向下拖曳/複製。這將按照選項卡中顯示的順序建立工作表清單。
然後在所需的儲存格中使用此公式進行求和:
=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"))