Você precisa usar INDIRECT() para se referir a um local de célula em mudança e CELL ("nome de arquivo") para obter o nome da planilha para saber a semana / linha que a célula precisa consultar.
=INDIRECT("Index!A"
&RIGHT(
CELL("filename")
,LEN(CELL("filename"))-SEARCH("]",CELL("filename"))-2)
+1)
Vamos dividir isso:
-
Vamos identificar a planilha em que você está em cada semana. Vá para a célula C19 na sua guia Wk1. Coloque o código%. Esta etapa exige que você salve sua pasta de trabalho primeiro, caso contrário, não haverá nome de arquivo para o Excel reconhecer.
Você deve receber algo assim:
=CELL("filename") -
Agora, precisamos descartar a maior parte disso para que mantenhamos apenas o bit relevante de informações, ou seja, o número da semana. Como o número da semana é sempre a última parte da string, podemos usar a função
C:\Users\yourname\Documents\[yourworkbook.xlsx]Wk1para pegá-la.Se você digitar apenas
RIGHT(), receberá a semana número 1, mas isso só funcionará se você tiver menos de 10 semanas. Portanto, precisamos tornar a função flexível e descobrir quantos dígitos queremos manter. 1 ou 2?Podemos usar
=RIGHT(CELL("filename"),1)para identificar o número total de caracteres emLEN(). Em seguida, podemos identificar o número de caracteres apenas no nome da planilha, subtraindo o comprimento da string até oCELL("filename")do comprimento total, assim:]Isso lhe dá um valor de 3 ou 4, mas nós não queremos incluir os dois caracteres que compõem a parte "Wk" do nome da planilha, então vamos subtrair 2 para que também removamos "Wk":
=LEN(CELL("filename"))-SEARCH("]",CELL("filename"))Então, adicionando isso à nossa função
=LEN(CELL("filename"))-SEARCH("]",CELL("filename"))-2, temos:RIGHT()A última coisa - na sua folha de Índice, a semana 1 começa na linha 2, então vamos adicionar 1 para garantir que a saída seja o número correto da linha:
RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename"))-2)) -
RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename"))-2))+1nos permite usar um cálculo em uma referência de célula. Adicionamos nosso número de linha à referência estática a "Index! A", concatenando os dois usando umINDIRECT().
Colocando tudo junto, isso é:
=INDIRECT("Index!A"
&RIGHT(
CELL("filename")
,LEN(CELL("filename"))-SEARCH("]",CELL("filename"))-2)
+1)