Minha resposta se concentra na criação de uma referência a $A$4:A4
que funciona em todas as planilhas, pois essa é a parte da referência à qual o Excel está prefixando o nome da planilha indesejada. (Eu suponho que você não está tendo problemas em se referir à tabela.)
Você pode resolver esse problema usando o INDIRECT função da seguinte forma:
- Em qualquer planilha, selecione a célula
A1
-
Crie um intervalo nomeado com uma referência de:
=INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE)
Por sua pergunta, a segunda célula na referência de $A$4:A4
é relativa e a referência desse nome é criada de acordo. Portanto, se você usar esse nome na célula A1
, ele retornará o intervalo $A$4:A4
. Se você fizer referência ao nome de B1
, o nome retornará corretamente um intervalo de $A$4:B4
.
Como funciona
A primeira metade da fórmula é simples. INDIRECT("$A$4")
sempre refere-se à célula A4
na planilha atual.
A segunda metade é um pouco mais complicada. INDIRECT("R[3]C[0]",FALSE)
refere-se a "3 linhas abaixo na mesma coluna, em relação à célula atual". Se você estiver na célula A1
, esta é a célula A4
. O argumento FALSE diz à função INDIRECT para interpretar o texto como referência no estilo R1C1 em vez da referência padrão do estilo A1.
A fórmula completa
A referência do seu nome final será algo assim:
=COUNTIF(INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE), Tbl_InventoryMain[Barcode])