Archive for the 'Excel' Category

Fórmulas matriciais no Excel — Parte 2

Dando continuidade ao texto sobre fórmulas matriciais no Excel - parte 1, vou apresentar aqui um exemplo mais complexo (e também mais útil, hehehe), onde utilizamos funções do Excel junto com fórmulas matriciais. Desta forma, conseguimos criar soluções interessantes de pesquisa e referência que, sem o poder de processamento das fórmulas matriciais, seriam impossíveis, ou no mínimo, muito trabalhosas (fórmulas extensas, utilização de colunas ou cálculos auxiliares, etc). Além de procura e referência, também conseguimos realizar somas condicionais sofisticadas — com mais de uma condição, por exemplo — o que não é possível através da função SOMASE().

Para fazermos uma pesquisa dentro de um intervalo de células de uma dimensão é muito simples, basta utilizar a função CORRESP(), que retorna a posição relativa de um item em uma lista, em conjunto com as funções SE() e É.NÃO.DISP(). A limitação fica pelo fato da CORRESP() funcionar apenas em intervalos de uma coluna ou uma linha, ou seja, uma dimensão (figura 1).

Mas para situações de X linhas por Y colunas, vamos precisar de uma fórmula matricial, uma vez que a CORRESP() não tem a capacidade de indicar uma posição de duas dimensões. No exemplo da próxima figura, a lista está disposta em 3 linhas por 3 colunas (pode ser qualquer tamanho). A idéia geral é comparar célula por célula da lista, com a célula que estamos pesquisando; portanto, basta utilizar o operador de igualdade. A diferença aqui é que, por se tratar de uma fórmula matricial, o Excel sabe que deve processar a verificação da igualdade para cada uma das células do intervalo. Essa verificação retorna um novo intervalo, mas desta vez contendo FALSO ou VERDADEIRO para cada célula processada. Feito isso, usamos a função OU() atuando sobre esta lista que, se apenas um dos itens forem VERDADEIRO, ela retorna VERDADEIRO, que significa que o item foi localizado dentro da lista. Finalmente, a função SE() apresenta um texto amigável indicando “Encontrou!” ou “Não encontrado.”

Pesquisa de item em lista bidimensional.

Para o próximo artigo vou demonstrar como fazer uma soma condicional dupla, até lá!

Fórmulas matriciais no Excel — Parte 1

Este artigo inaugura uma nova categoria que pretendo explorar no site: EXCEL. Não sou muito fã da Microsoft (nem como empresa, nem como produtora de software), mas reconheço que o Excel é um excelente aplicativo e que possui muitos recursos; com ele podemos criar soluções muito práticas e eficientes que nos ajudam no dia-a-dia.

Há alguns meses venho ministrando cursos de extensão deste aplicativo e acho que será interessante publicar algumas dicas e soluções aqui no site, dando continuidade às iniciativas de não limitar-se a apenas consumir informação & conteúdo, mas também produzir e contribuir com alguma coisa :-) . Então vamos lá!

Considero as fórmulas matriciais um dos recursos mais sofisticados e poderosos do Excel — juntamente com a Tabela Dinâmica, essa fica para um próximo artigo. A principal diferença entre uma fórmula normal/convencional e uma fórmula dinâmica é:

Uma fórmula normal sempre retorna um único resultado, enquanto que uma fórmula matricial pode retornar um ou múltiplos resultados.

Humm… um ou múltiplos resultados? Vai depender do que você precisa calcular :-) . A lei fundamental é que para retornar múltiplos resultados, precisamos de múltiplas células. Célula é a unidade atômica da planilha, portanto numa mesma célula não podemos armazenar mais do que um dado.

E como o Excel sabe se a fórmula é uma fórmula matricial? Precisamos dizer isso para ele… Como? Pressionando-se as teclas CTRL+SHIFT+ENTER. É essa combinação que faz a mágica acontecer :-) . Ao concluirmos a fórmula, devemos confirmá-la com esta operação para que seja uma fórmula matricial.

Antes de inserir uma fórmula matricial propriamente dita, vamos inserir apenas uma constante de matriz, ou seja, uma matriz fixa. Matrizes são delimitadas por chaves (”{” e “}”) e podem ser ser unidimensionais (linha única ou coluna única) ou bidimensionais (X linhas por Y colunas). Para separar os elementos em colunas, utilizamos o caractere do ponto “.” e para separar em linhas utilizamos o ponto-e-vírgula “;”. Por exemplo, se precisamos inserir uma matriz horizontal de 4 elementos:

  1. Selecionamos 4 células quaisquer na horizontal;
  2. Digitamos ={4.”Fernando”.FALSO.100,75}
  3. Pressionamos CTRL+SHIFT+ENTER

Nossa matriz tem 4 elementos, portanto precisamos de 4 células. Iniciamos a fórmula como sempre, utilizando o sinal de igualdade. Abrimos a matriz com o abre chaves; o primeiro elementro é um inteiro, o segundo elemento é um texto, o terceiro elemento é o valor lógico “FALSO” e finalmente o último elemento é o número 100,75. Acabamos de criar uma fórmula matricial contendo apenas uma constante de matriz (uma matriz fixa).

Uma das vantagens das matrizes é que elas são atômicas, isto é, uma matriz é um elemento indivisível, não pode ser alterado parcialmente. Isso nos garante consistência e segurança na criação de fórmulas matriciais.

Para finalizarmos este artigo inicial sobre matrizes, vamos criar uma outra fórmula que realize a multiplicação dos elementos de duas matrizes numéricas A e B:

Matriz A: {2.7.0.4.9}, no intervalo C7:G7
Matriz B: {3.2.8.4.1}, no intervalo C8:G8

Para fazermos a multiplicação das duas matrizes:

  1. Selecione C9:G9;
  2. Inicie a fórmula com o sinal de igualdade “=”;
  3. Selecione o intervalo da matriz A, digite o sinal da multiplicação “*” e selecione o intervalo da matriz B;
  4. Pressione CTRL+SHIFT+ENTER.

Sua planilha deve ficar assim:

Estas são algumas operações básicas que podemos fazer com fórmulas matriciais. Para a parte 2 irei apresentar alguns cálculos mais elaborados, até la!