У меня есть серия листов с различными именами, например

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 ответ1

0

Одним из методов будет добавление списка всех листов на start лист.

Это можно сделать динамически, добавив именованный диапазон. В менеджере имен используйте следующую формулу:

=GET.WORKBOOK(1)

И назвать это как-то (я использовал test)

Тогда в Старт!А1 положил:

=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"))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .