
Estou usando o Excel 2010 e estou criando uma pasta de trabalho para definir detalhes sobre os produtos de uma loja (incluindo categoria, preço, acessórios). Também quero definir detalhes de categoria padrão para usar se os detalhes específicos de um produto forem deixados em branco.
Configurei três planilhas: Produtos, CategoriaDefaults e Calculado. As colunas são os detalhes do produto/categoria e cada item/categoria tem sua própria linha. Eu também gostaria de usar colunas nomeadas tanto quanto possível para facilitar a leitura. Um nome de coluna começando com P é o detalhe do produto e um nome começando com D é da planilha CategoryDefault.
Os campos em Calculado são semelhantes a este:
=IF(Products!G2="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
Products!G2)
onde DPRICE é uma coluna nomeada para preços padrão e DCAT é o nome da categoria para a planilha CategoryDefaults.
A fórmula significa o seguinte: Se a coluna G do número do produto 2 estiver em branco, encontre o valor da coluna A do produto 2 na planilha CategoryDefault e retorne o DefaultPrice. Caso contrário, retorne o preço definido.
Até agora tudo funciona bem. Gostaria de dar um passo adiante: no exemplo anterior, Produtos! G2 refere-se à coluna de preço do produto na linha 2. Gostaria de tornar a fórmula mais legível, substituindo a referência da letra da coluna 'G' por um nome referência de coluna, nomeadamente 'PPRICE'. Eu faria o mesmo com a referência a Produtos!A2 chamando a coluna 'PCAT' (a categoria à qual o produto pertence)
A fórmula final seria mais ou menos assim:
=IF(Products!PPRICE:2="",
INDEX(DPRICE, MATCH(Products!PCAT:2, DCAT, 0)),
Products!PPRICE:2)
Eu simplesmente não consigo fazer isso funcionar. Eu tentei "Aplicar Nomes..." sem resultado e qualquer variação de dois pontos e $ sem sucesso. Alguém já fez isso antes?
Responder1
Descobri que INDEX(PPRICE, 2)
retornará o valor da segunda linha da coluna PPRICE. Todo o trecho de código ficará assim:
=IF(INDEX(PPRICE, 2)="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
INDEX(PPRICE, 2))
No entanto, será um valor absoluto, não um valor relativo e se você copiar e colar esta fórmula para outras linhas, ela ainda apontará para a linha 2. Portanto, isso não seria uma boa ideia para grandes conjuntos de dados.