Obtenha o nome da planilha do Excel em SUM 'entre: formula' sheets '

0

Eu tenho uma série de planilhas com vários nomes, por exemplo,

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

Para manter um total de vários números em cada folha, estou usando o seguinte em cada folha,

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

Em seguida, a próxima folha é

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

E assim por diante e assim por diante. Eu sei que você pode obter o nome da planilha atual com =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

No entanto, existe uma maneira de combinar os dois

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

Qual é a sintaxe correta para fazer o trabalho acima, se for possível?

Eu tentei usar INDIRECT

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

No entanto, isso continua gerando um erro #REF! .

    
por Tim Wilkinson 20.10.2016 / 16:06

1 resposta

0

Um método seria adicionar uma lista de todas as planilhas à folha start .

Isso pode ser feito dinamicamente, adicionando um intervalo nomeado. No gerenciador de nomes, use a seguinte fórmula:

=GET.WORKBOOK(1)

E nomeie alguma coisa (usei test )

Emseguida,emStart!A1put:

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

E arraste / copie para baixo. Isso criará uma lista das folhas na ordem em que aparecem nas guias.

Em seguida, use essa fórmula na célula desejada para fazer a soma:

=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"))
    
por 20.10.2016 / 16:32