
さまざまな名前のシートのシリーズがあります。
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)
しかし、この2つを組み合わせる方法はあるのでしょうか
=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
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"))