Por qualquer motivo, se você quiser fazer alguma operação em um intervalo com índices específicos, pensará em usar a função INDEX para obter um array de valores em índices específicos. Assim.
Vamos entender com um exemplo.
Aqui, eu tenho uma coluna Taxa. Quero somar os valores nas posições 1,3 e 5. Escrevo esta fórmula em C2.
= SOMA (ÍNDICE (A2: A11, {1,3,5}))
Surpreendentemente, a função INDEX não retorna uma matriz de valores quando fornecemos uma matriz como índices. Só obtemos o primeiro valor. E a função SUM retorna a soma de apenas um valor.
Então, como fazemos com que a função INDEX retorne esse array. Bem, eu encontrei essa solução na internet e eu realmente não entendo como funciona, mas funciona.
A fórmula genérica para obter uma matriz de índices
= SOMA (ÍNDICE (intervalo, N (SE (1, {números})))
Faixa: É o intervalo no qual você deseja procurar em determinados números de índice
Número: estes são os números do índice.
Agora vamos aplicar a fórmula acima ao nosso exemplo.
Escreva esta fórmula em C2.
= SOMA (ÍNDICE (A2: A11, N (SE (1, {1,3,5})))
E isso retorna a resposta correta como 90.
Como funciona.
Bem, como eu disse que não sei por que funciona e retorna a matriz de números, mas aqui o que acontece.
IF (1, {1,3,5}): Esta parte retorna a matriz {1,3, 5} conforme o esperado
N (IF (1, {1,3,5})) isso se traduz em N ({1,3,5}) que novamente nos dá {1,3,5}
NOTA: A função N retorna o número equivalente a qualquer valor. Se um valor não for um número conversível, ele retornará 0 (como o texto). E para erros, ele retorna erro.
INDEX ((A2: A11, N (IF (1, {1,3,5}))): esta parte se traduz em INDEX ((A2: A11, {1,3,5}) e de alguma forma retorna a matriz { 10,30,50}. Como você viu anteriormente, ao escrever INDEX ((A2: A11, {1,3,5}) diretamente na fórmula, ele retorna apenas 10. Mas quando usamos as funções N e IF, ele retorna o todo array. Se você entendeu, deixe-me saber na seção de comentários abaixo.
Como usar referências de células para valores de índice para obter uma matriz
No exemplo acima, codificamos os índices em função. Mas e se eu quiser ter de uma gama que pode mudar. Substituímos {1,3,5} por intervalo? Vamos tentar.
Aqui temos esta fórmula na célula D2:
= SOMA (ÍNDICE (A2: A11, N (SE (1, A2: A5)))
Isso retorna 10. O primeiro valor do índice fornecido. Mesmo se inserirmos como uma fórmula de matriz usando CTRL + SHIFT + ENTER, o resultado será o mesmo.
Para fazer funcionar, adicione o operador + ou - (duplo unário) antes do intervalo e insira-o como fórmula de matriz.
{= SOMA (ÍNDICE (A2: A11, N (SE (1, + A2: A5)))}
Isso funciona. Não me pergunte como? Simplesmente funciona. Se você puder me dizer como irei incluir seu nome e explicação aqui.
Então, aprendemos como obter um array da função INDEX. Há algumas coisas malucas acontecendo aqui no Excel. Se você puder explicar como funciona aqui na seção de comentários abaixo, irei incluí-lo em minha explicação com o seu nome.
⇬ Fazer download do arquivo:
Artigos relacionados:
Matrizes na fórmula do Excel
Use INDEX e MATCH para pesquisar o valor
Como usar a função LOOKUP no Excel
Valor de pesquisa com vários critérios
Artigos populares:
A função VLOOKUP no Excel
CONT.SE no Excel 2016
Como usar a função SUMIF no Excel