Você está na página 1de 4

0064-Frmulas matriciais | Usurios do Excel

1 de 4

https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

Publicado em 18 de maio de 2011 por adilsonsoledade 4 Comentrios

As frmulas matriciais permitem calcular resultados que de


outra forma necessitariam de clulas auxiliares para realizao
de clculos intermedirios.
Vamos a um exemplo simples:
Determinar a soma das diferenas entres os elementos das
colunas A e B.

O pensamento que logo vem mente criar uma coluna


auxiliar e nela calcularmos cada elemento da srie de
diferenas, comeando com A2-B2 e seguindo at A6-B6. Em
seguida faramos a soma dos valores desta coluna.
No h nenhum erro em pensar desta forma. Mas podemos
simplificar o nosso trabalho, se utilizarmos uma frmula
matricial simples. Nesta frmula calcularemos as diferenas e
em seguida a soma das diferenas reunindo-as como
argumentos da funo. Para o caso em questo faremos:
=SOMA($A$2:$A$6-$B$2:$B$6), pressionando em seguida
CTRL+SHFT+ENTER para que o Excel interprete-a como uma
frmula matricial. Se clicarmos na clula veremos na barra de
frmulas que ela aparece na forma {}. As chaves indicam que
se trata de uma frmula matricial.
Observe os argumentos da frmula:
$A$2:$A$6-$B$2:$B$6, se selecionarmos este trecho com o
mouse na barra de frmulas e pressionarmos F9, vamos obter o
resultado {1;8;10;7;10}. Esta uma matriz que corresponde
srie de diferenas entre os elementos das colunas A e B no
intervalo entre as linhas 2 e 6. Fica ento mais claro o porque
do funcionamento das frmulas matriciais: elas simulam o
funcionamento das operaes de clulas e utilizam estes dados
como argumentos de uma funo. Se no pressionarmos a

12/05/2015 13:13

0064-Frmulas matriciais | Usurios do Excel

2 de 4

https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

do funcionamento das frmulas matriciais: elas simulam o


funcionamento das operaes de clulas e utilizam estes dados
como argumentos de uma funo. Se no pressionarmos a
combinao CTRL+SHFT+ENTER, ser exibida uma
mensagem de erro, ou a frmula ser calculada considerando
apenas o primeiro elemento da matriz, dependendo das
funes utilizadas para sua construo.
Utilizando a mesma srie de dados, podemos calcular a soma
do 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 de
operaes de soma e contagem condicionais.

Na srie de dados acima, qual a soma dos valores que


possuem 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 elementos
do intervalo B2:B11 que possuem valor a na linha
correspondente no intervalo A2:A11.
E como poderamos contar quantos elementos possuem o
rtulo b?
A resposta pode ser calculada como:
=SOMA(SE($A$2:$A$11=b;1)).
O raciocnio anlogo ao empregado anteriormente: A cada
valor do intervalo A2:A11 que contiver o valor b, considere o

12/05/2015 13:13

0064-Frmulas matriciais | Usurios do Excel

3 de 4

https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

O raciocnio anlogo ao empregado anteriormente: A cada


valor do intervalo A2:A11 que contiver o valor b, considere o
valor 1, somando todos os resultados obtidos.
Vamos concluir com dois exemplos de frmulas matriciais que
respondam questo:
Quantas ocorrncias temos de um determinado caractere num
texto?
J havamos respondido anteriormente utilizando uma UDF
(Funes personalizadas de texto), mas agora vamos abordar o
problema por meio de frmulas matriciais.
Primeiramente necessitamos encontrar uma forma de retornar
um caractere por vez de um texto. Temos a funo EXT.TEXTO
que nos permite retornar um nmero definido de caracteres a
partir de uma dada posio no texto pesquisado.
Ou seja, precisamos retornar cada elemento da srie
EXT.TEXTO(texto;posio,1), sendo texto o argumento que
indica o texto pesquisado e posio um nmero que varia de 1
at o total de caracteres de texto (e que pode ser calculado
atravs da funo =NM.CARACT(texto).
Eis aqui um macete que aprendi h muito tempo: para retornar
um sequncia numrica que se inicia em 1 e vai at um 10, por
exemplo, podemos utilizar a frmula LIN(INDIRETO(A1:A10)).
O resultado desta frmula {1;2;3;4;5;6;7;8;9;10}. Se houver
valores na coluna A, utilize uma vazia, como a Z por exemplo.
No nosso exemplo, vamos precisar retornar a srie de vai de 1
at a o total de caracteres de texto, de forma que vamos utilizar
a 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 o
caractere que queremos pesquisar, utilizando a frmula
EXT.TEXTO(texto;LIN(INDIRETO(A1:A&NM.CARACT(texto))
);1) = caractere
12/05/2015 13:13

0064-Frmulas matriciais | Usurios do Excel

4 de 4

https://usuariosdoexcel.wordpress.com/2011/05/18/formulas-matriciais/

);1) = caractere
O resultado desta comparao uma matriz na qual
correspondncias ok correspondem ao valor VERDADEIRO e
quando no h correspondncia, obtermos FALSO. Se
buscssemos a letra e no nome Excel obteramos:
{VERDADEIRO;FALSO;FALSO;VERDADEIRO;FALSO}
Lembro que nestas comparaes, no diferenciao entre
maisculas e minsculas.
Antes e procedermos soma, precisamos transformar os
valores VERDADEIRO em 1 e os FALSO em 0, de forma que a
soma corresponder ao total de coincidncias obtidas. A funo
N do Excel, faz exatamente isso. Temos ento:
N(EXT.TEXTO(texto;LIN(INDIRETO(A1:A&NM.CARACT(text
o)));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.CARA
CT(texto)));1) = caractere))
No esquecendo de digitar CTRL+SHFT+ENTER para inser-la
como frmula matricial.
Uma ltima pergunta: E se quisssemos uma funo que
diferenciasse maisculas e minsculas?
Veja os exemplos deste post e a resposta a esta pergunta aqui:
Frmulas matriciais

12/05/2015 13:13

Você também pode gostar