Fórmulas matriciais

4
Publicado em 18 de maio de 2011 por adilsonsoledade 4 Comentários As fórmulas matriciais permitem calcular resultados que de outra forma necessitariam de células auxiliares para realização de cálculos intermediários. Vamos a um exemplo simples: Determinar a soma das diferenças entres os elementos das colunas A e B. O pensamento que logo vem à mente é criar uma coluna auxiliar e nela calcularmos cada elemento da série de diferenças, começando com A2-B2 e seguindo até A6-B6. Em seguida faríamos a soma dos valores desta coluna. Não há nenhum erro em pensar desta forma. Mas podemos simplificar o nosso trabalho, se utilizarmos uma fórmula matricial simples. Nesta fórmula calcularemos as diferenças e em seguida a soma das diferenças reunindo-as como argumentos da função. Para o caso em questão faremos: =SOMA($A$2:$A$6-$B$2:$B$6), pressionando em seguida CTRL+SHFT+ENTER para que o Excel interprete-a como uma fórmula matricial. Se clicarmos na célula veremos na barra de fórmulas que ela aparece na forma {}. As chaves indicam que se trata de uma fórmula matricial. Observe os argumentos da fórmula: $A$2:$A$6-$B$2:$B$6, se selecionarmos este trecho com o mouse na barra de fórmulas e pressionarmos F9, vamos obter o resultado {1;8;10;7;10}. Esta é uma matriz que corresponde à série de diferenças entre os elementos das colunas A e B no intervalo entre as linhas 2 e 6. Fica então mais claro o porque do funcionamento das fórmulas matriciais: elas simulam o funcionamento das operações de células e utilizam estes dados como argumentos de uma função. Se não pressionarmos a 0064-Fórmulas matriciais | Usuários do Excel https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/ 1 de 4 12/05/2015 13:13

description

Fórmulas matriciais

Transcript of Fórmulas matriciais

  • Publicado em 18 de maio de 2011 por adilsonsoledade 4 Comentrios

    As frmulas matriciais permitem calcular resultados que deoutra forma necessitariam de clulas auxiliares para realizaode clculos intermedirios.

    Vamos a um exemplo simples:

    Determinar a soma das diferenas entres os elementos dascolunas A e B.

    O pensamento que logo vem mente criar uma colunaauxiliar e nela calcularmos cada elemento da srie dediferenas, comeando com A2-B2 e seguindo at A6-B6. Emseguida faramos a soma dos valores desta coluna.

    No h nenhum erro em pensar desta forma. Mas podemossimplificar o nosso trabalho, se utilizarmos uma frmulamatricial simples. Nesta frmula calcularemos as diferenas eem seguida a soma das diferenas reunindo-as comoargumentos da funo. Para o caso em questo faremos:=SOMA($A$2:$A$6-$B$2:$B$6), pressionando em seguidaCTRL+SHFT+ENTER para que o Excel interprete-a como umafrmula matricial. Se clicarmos na clula veremos na barra defrmulas que ela aparece na forma {}. As chaves indicam quese trata de uma frmula matricial.

    Observe os argumentos da frmula:

    $A$2:$A$6-$B$2:$B$6, se selecionarmos este trecho com omouse na barra de frmulas e pressionarmos F9, vamos obter oresultado {1;8;10;7;10}. Esta uma matriz que corresponde srie de diferenas entre os elementos das colunas A e B nointervalo entre as linhas 2 e 6. Fica ento mais claro o porquedo funcionamento das frmulas matriciais: elas simulam ofuncionamento das operaes de clulas e utilizam estes dadoscomo argumentos de uma funo. Se no pressionarmos a

    0064-Frmulas matriciais | Usurios do Excel https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

    1 de 4 12/05/2015 13:13

  • do funcionamento das frmulas matriciais: elas simulam ofuncionamento das operaes de clulas e utilizam estes dadoscomo argumentos de uma funo. Se no pressionarmos acombinao CTRL+SHFT+ENTER, ser exibida umamensagem de erro, ou a frmula ser calculada considerandoapenas o primeiro elemento da matriz, dependendo dasfunes utilizadas para sua construo.

    Utilizando a mesma srie de dados, podemos calcular a somado quadrado das diferenas, utilizando a frmula=SOMA(($A$2:$A$6-$B$2:$B$6)^2).

    Ou ainda, a soma das diferenas ao quadrado=SOMA(($A$2:$A$6)^2-($B$2:$B$6)^2)

    Outra aplicao das frmulas matriciais, a realizao deoperaes de soma e contagem condicionais.

    Na srie de dados acima, qual a soma dos valores quepossuem o rtulo a?

    A resposta atravs de frmula matricial pode ser dada por:=SOMA(SE($A$2:$A$11=a;$B$2:$B$11)).

    Esta frmula pode ser interpretada como: Somar os elementosdo intervalo B2:B11 que possuem valor a na linhacorrespondente no intervalo A2:A11.

    E como poderamos contar quantos elementos possuem ortulo b?

    A resposta pode ser calculada como:=SOMA(SE($A$2:$A$11=b;1)).

    O raciocnio anlogo ao empregado anteriormente: A cadavalor do intervalo A2:A11 que contiver o valor b, considere o

    0064-Frmulas matriciais | Usurios do Excel https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

    2 de 4 12/05/2015 13:13

  • O raciocnio anlogo ao empregado anteriormente: A cadavalor do intervalo A2:A11 que contiver o valor b, considere ovalor 1, somando todos os resultados obtidos.

    Vamos concluir com dois exemplos de frmulas matriciais querespondam questo:

    Quantas ocorrncias temos de um determinado caractere numtexto?

    J havamos respondido anteriormente utilizando uma UDF(Funes personalizadas de texto), mas agora vamos abordar oproblema por meio de frmulas matriciais.

    Primeiramente necessitamos encontrar uma forma de retornarum caractere por vez de um texto. Temos a funo EXT.TEXTOque nos permite retornar um nmero definido de caracteres apartir de uma dada posio no texto pesquisado.

    Ou seja, precisamos retornar cada elemento da srieEXT.TEXTO(texto;posio,1), sendo texto o argumento queindica o texto pesquisado e posio um nmero que varia de 1at o total de caracteres de texto (e que pode ser calculadoatravs da funo =NM.CARACT(texto).

    Eis aqui um macete que aprendi h muito tempo: para retornarum sequncia numrica que se inicia em 1 e vai at um 10, porexemplo, podemos utilizar a frmula LIN(INDIRETO(A1:A10)).O resultado desta frmula {1;2;3;4;5;6;7;8;9;10}. Se houvervalores na coluna A, utilize uma vazia, como a Z por exemplo.

    No nosso exemplo, vamos precisar retornar a srie de vai de 1at a o total de caracteres de texto, de forma que vamos utilizara frmula LIN(INDIRETO(A1:A&NM.CARACT(texto))).

    Temos ento uma forma de retonar cada caractere de texto,utilizando a frmula

    EXT.TEXTO(texto;LIN(INDIRETO(A1:A&NM.CARACT(texto)));1).

    Se o valor de texto for Excel, a frmula retorna a srie{E;x;c;e;l}

    Agora podemos comparar cada um dos caracteres com ocaractere que queremos pesquisar, utilizando a frmula

    EXT.TEXTO(texto;LIN(INDIRETO(A1:A&NM.CARACT(texto)));1) = caractere

    0064-Frmulas matriciais | Usurios do Excel https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

    3 de 4 12/05/2015 13:13

  • );1) = caractere

    O resultado desta comparao uma matriz na qualcorrespondncias ok correspondem ao valor VERDADEIRO equando no h correspondncia, obtermos FALSO. Sebuscssemos a letra e no nome Excel obteramos:

    {VERDADEIRO;FALSO;FALSO;VERDADEIRO;FALSO}

    Lembro que nestas comparaes, no diferenciao entremaisculas e minsculas.

    Antes e procedermos soma, precisamos transformar osvalores VERDADEIRO em 1 e os FALSO em 0, de forma que asoma corresponder ao total de coincidncias obtidas. A funoN do Excel, faz exatamente isso. Temos ento:

    N(EXT.TEXTO(texto;LIN(INDIRETO(A1:A&NM.CARACT(texto)));1) = caractere)

    Aplicando ao exemplo anterior teramos a matriz:

    {1;0;0;1;0}

    Finalmente podemos completar a nossa frmula matricial,concluindo-a com uma funo SOMA.

    SOMA(N(EXT.TEXTO(texto;LIN(INDIRETO(A1:A&NM.CARACT(texto)));1) = caractere))

    No esquecendo de digitar CTRL+SHFT+ENTER para inser-lacomo frmula matricial.

    Uma ltima pergunta: E se quisssemos uma funo quediferenciasse maisculas e minsculas?

    Veja os exemplos deste post e a resposta a esta pergunta aqui:Frmulas matriciais

    0064-Frmulas matriciais | Usurios do Excel https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

    4 de 4 12/05/2015 13:13