Diretrizes e exemplos de fórmulas de matriz
Aplica-se A
Excel para Microsoft 365 Excel para Microsoft 365 para Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 para Mac Excel 2019 Excel 2016 Excel para iPad Excel para iPhone

Uma fórmula de matriz é uma fórmula capaz de efetuar vários cálculos num ou mais itens de uma matriz. Pode considerar uma matriz como uma linha ou coluna de valores ou a combinação de linhas e colunas de valores. As fórmulas de matriz podem devolver vários resultados ou um único resultado.

A partir da atualização de setembro de 2018 para o Microsoft 365, qualquer fórmula que possa devolver múltiplos resultados irá transpor automaticamente os resultados para baixo ou para células vizinhas. Esta alteração no comportamento também é acompanhada por várias novas funções de matriz dinâmica. As fórmulas de matriz dinâmica, quer estejam a utilizar as funções existentes ou funções de matriz dinâmica, só precisam de ser introduzidas numa única célula e, em seguida, confirmadas ao premir Enter. Anteriormente, as fórmulas de matriz legadas exigem primeiro a seleção de todo o intervalo de saída e, em seguida, a confirmação da fórmula com Ctrl+Shift+Enter. São normalmente referidas como fórmulas CSE.

Pode utilizar fórmulas de matriz para executar tarefas complexas, como, por exemplo:

  • Criar rapidamente conjuntos de dados de exemplo.

  • Contar o número de carateres contidos num intervalo de células.

  • Somar apenas números que satisfaçam determinadas condições, tais como os valores mais baixos de um intervalo ou números que se encontrem entre um limite superior e inferior.

  • Somar cada n-ésimo valor de um intervalo de valores.

Os exemplos a seguir mostram como criar fórmulas de matriz com várias células e com uma célula. Sempre que possível, incluímos exemplos com algumas das funções de matriz dinâmica, bem como fórmulas de matriz existentes introduzidas como matrizes dinâmicas e legadas.

Transferir os nossos exemplos

Transfira um livro de exemplo com todos os exemplos de fórmulas de matriz neste artigo.

Este exercício mostra como utilizar fórmulas de matriz de várias células e de uma célula para calcular um conjunto de números de vendas. O primeiro conjunto de passos utiliza uma fórmula de várias células para calcular um conjunto de subtotais. O segundo conjunto utiliza uma fórmula de uma célula para calcular um total geral.

  • Fórmula de Matriz com várias células

    Função de matriz multi-células na célula H10 =F10:F19*G10:G19 para calcular o número de carros vendidos por preço unitário

  • Aqui, estamos a calcular o Total de Vendas de coupés e sedans para cada vendedor, introduzindo =F10:F19*G10:G19 na célula H10.

    Ao premir Enter, verá os resultados serem transpostos para as células H10:H19. Note que o intervalo de transposição de limites é realçado com um limite quando se seleciona qualquer célula dentro do intervalo de transposição de limites. Também se pode observar que as fórmulas nas células H10:H19 estão acinzentadas. Estão lá apenas para referência, por isso, se quiser ajustar a fórmula, terá de selecionar a célula H10, onde está a fórmula principal.

  • Fórmula de matriz com uma célula

    Fórmula de matriz de célula única para calcular um total geral com =SOMA(F10:F19*G10:G19)

    Na célula H20 do livro de exemplo, escreva ou copie e cole =SOMA(F10:F19*G10:G19) e, em seguida, prima Enter.

    Neste caso, o Excel multiplica os valores da matriz (o intervalo de células entre F10 e G19) e, em seguida, utiliza a função SOMA para adicionar os totais. O resultado é um total geral de 1.590.000,00 € em vendas.

    Este exemplo mostra o poder deste tipo de fórmula. Por exemplo, suponhamos que tem 1000 linhas de dados. Pode somar esses dados de forma parcial ou total criando uma fórmula de matriz numa única célula em vez de arrastar a fórmula para baixo pelas 1000 linhas. Para além disso, tenha em atenção que a fórmula com uma célula (na célula H20) é completamente independente da fórmula com várias células (a fórmula nas células H10 a H19). Esta é outra vantagem subjacente à utilização de fórmulas de matriz: a flexibilidade. Pode alterar as outras fórmulas na coluna H sem afetar a fórmula na célula H20. Também pode ser uma boa prática ter totais independentes como este, uma vez que ajuda a validar a precisão dos seus resultados.

  • As fórmulas de matriz dinâmica também oferecem estas vantagens:

    • Consistência    Se clicar em qualquer uma das células abaixo de H10, verá a mesma fórmula. Essa consistência pode ajudar a garantir uma maior exatidão.

    • Segurança    Não é possível substituir um componente de uma fórmula de matriz com várias células. Por exemplo, clique na célula H11 e prima Delete. O Excel não altera a saída da matriz. Para alterá-la, tem de selecionar a célula superior esquerda na matriz ou a célula H10.

    • Ficheiros de tamanho mais pequeno    Muitas vezes, é possível utilizar uma única fórmula de matriz em vez de várias fórmulas intermédias. O exemplo das vendas de automóveis que utiliza uma fórmula de matriz para calcular os resultados na coluna E. Se tivesse utilizado as fórmulas padrão como =F10*G10, F11*G11, F12*G12, etc., teria utilizado 11 fórmulas diferentes para obter os mesmos resultados. Isso não é grande coisa, mas e se tivesse milhares de linhas no total? Então pode fazer uma grande diferença.

    • Eficiência    As funções de matriz podem ser uma maneira eficiente de criar fórmulas complexas. A fórmula de matriz =SOMA(F10:F19*G10:G19) é a mesma que: =SOMA(F10*G10;F11*G11;F12*G12;F13*G13;F14*G14;F15*G15;F16*G16;F17*G17;F18*G18;F19*G19).

    • Transposição de Limites    As fórmulas de matriz dinâmica serão automaticamente transpostas para o intervalo de saída. Se os seus dados de origem estiverem numa tabela do Excel, então as fórmulas de matriz dinâmica serão automaticamente redimensionadas à medida que adiciona ou remove dados.

    • Erro de #TRANSPOSIÇÃO!    As matrizes dinâmicas introduziram o erro de #TRANSPOSIÇÃO!, o que indica que o intervalo de transposição de limites pretendido está bloqueado por algum motivo. Quando resolver o bloqueio, a fórmula será automaticamente transposta.

As constantes de matriz são um componente das fórmulas de matriz. As constantes de matriz são criadas através da introdução de uma lista de itens e, em seguida, da colocação manual da lista entre chavetas ({ }) da seguinte forma:

={1\2\3\4\5} or ={"Janeiro"\"Fevereiro"\"Março"}

Se separar os itens utilizando vírgulas, criará uma matriz horizontal (uma linha). Se separar os itens utilizando pontos e vírgulas, criará uma matriz vertical (uma coluna). Para criar uma matriz bidimensional, deverá delimitar os itens em cada linha com vírgula e delimitar cada linha com ponto e vírgula.

O procedimento que se segue dar-lhe-á alguma prática na criação de constantes horizontais, verticais e bidimensionais. Vamos mostrar exemplos com a função SEQUÊNCIA para gerar automaticamente constantes de matriz, bem como constantes de matriz introduzidas manualmente.

  • Criar uma constante horizontal

    Utilize o livro dos exemplos anteriores ou crie um novo livro. Selecione qualquer célula vazia e introduza =SEQUÊNCIA(1;5). A função SEQUÊNCIA cria uma matriz de 1 linha por 5 colunas da mesma forma que ={1\2\3\4\5}. É apresentado o seguinte resultado:

    Criar uma constante de matriz horizontal com =SEQUÊNCIA(1,5) ou ={1,2,3,4,5}

  • Criar uma constante vertical

    Selecione qualquer célula em branco com espaço abaixo da célula e introduza =SEQUÊNCIA(5) ou ={1;2;3;4;5}. É apresentado o seguinte resultado:

    Criar uma constante de matriz vertical com =SEQUÊNCIA(5) ou ={1;2;3;4;5}

  • Criar uma constante bidimensional

    Selecione qualquer célula em branco com espaço à direita e abaixo, e introduza =SEQUÊNCIA(3;4). Verá o seguinte resultado:

    Criar uma constante de matriz de 3 linhas por 4 colunas com =SEQUÊNCIA(3,4)

    Também pode introduzir: ={1\2\3\4;5\6\7\8;9\10\11\12}, mas terá de prestar atenção ao local onde coloca a vírgula ou o ponto e vírgula.

    Como pode ver, a opção SEQUÊNCIA oferece vantagens significativas em relação à entrada manual dos valores constantes da matriz. Principalmente, poupa-lhe tempo, mas também pode ajudar a reduzir os erros de entrada manual. Também é mais fácil de ler, especialmente porque um ponto e vírgula podem ser difícil de distinguir em relação aos separadores de vírgula.

Eis um exemplo que utiliza constantes de matriz como parte de uma fórmula maior. No livro de exemplo, vá para a folha de cálculo Constante numa fórmula ou crie uma nova folha de cálculo.

Na célula D9, introduzimos =SEQUÊNCIA(1;5;3;1), mas também pode introduzir 3, 4, 5, 6 e 7 nas células A9:H9. Não há nada de especial sobre essa seleção de números em particular, apenas escolhemos algo diferente de 1 a 5 para diferenciação.

Na célula E11, introduza =SOMA(D9:H9*SEQUÊNCIA(1;5)) ou =SOMA(D9:H9*{1\2\3\4\5}). As fórmulas devolvem 85.

Utilize constantes de matriz em fórmulas. Neste exemplo, utilizamos =SOMA(D9:H(*SEQUÊNCIA(1,5))

A função SEQUÊNCIA cria o equivalente da constante de matriz {1\2\3\4\5}. Uma vez que o Excel efetua operações sobre as expressões entre parênteses em primeiro lugar, os dois elementos seguintes a entrar em ação são os valores das células em D9:H9 e o operador de multiplicação (*). Nesse ponto, a fórmula multiplica os valores da matriz armazenada pelos valores correspondentes da constante. É o equivalente a:

=SOMA(D9*1;E9*2;F9*3;G9*4;H9*5) ou =SOMA(3*1;4*2;5*3;6*4;7*5)

Por fim, a função de SOMA adiciona os valores e devolve 85.

Para evitar utilizar a matriz armazenada e manter a operação totalmente na memória, pode substituí-la por outra constante de matriz:

=SOMA(SEQUÊNCIA(1;5;3;1)*SEQUÊNCIA(1;5)) ou =SOMA({3\4\5\6\7}*{1\2\3\4\5})

Elementos que é possível utilizar em constantes de matriz

  • As constantes de matriz podem conter números, textos, valores lógicos (como VERDADEIRO e FALSO) e valores de erro tais como #N/D. Pode utilizar números em formatos inteiros, decimais e científicos. Se incluir texto, deverá colocá-lo entre aspas ("texto").

  • Constantes de matriz não podem conter matrizes, fórmulas ou funções adicionais. Por outras palavras, só podem conter texto ou números separados por vírgulas ou pontos e vírgulas. O Excel mostra uma mensagem de aviso ao colocar uma fórmula como {1\2\A1:D4} ou {1\2\SOMA(Q2:Z8)}. Para além disso, valores numéricos não podem conter sinais, cifrões, vírgulas ou parênteses.

Um das melhores maneiras de usar constantes de matriz é atribuir-lhes nomes. Constantes com nomes atribuídos podem tornar-se muito mais fáceis de usar e podem omitir alguma da complexidade das fórmulas de matriz de outros. Para atribuir um nome a uma constante de matriz e usá-lo numa fórmula, faça o seguinte:

Aceda a Fórmulas > Nomes Definidos > Definir Nomes. Na caixa Nome, escreva Trimestre1. Na caixa Refere-se a, introduza a seguinte constante (não se esqueça de escrever as chavetas manualmente):

={"janeiro","fevereiro","março"}

A caixa de diálogo deverá ter o seguinte aspeto:

Adicionar uma constante de matriz nomeada a partir de Fórmulas > Nomes Definidos > Gestor de Nomes > Novo

Clique OK, selecione qualquer linha com três células em branco e introduza =Trimestre1.

É apresentado o seguinte resultado:

Utilize uma constante de matriz nomeada numa fórmula, como =Trimestre1, em que o Trimestre1 foi definido como ={"Janeiro","Fevereiro","Março"}

Se quiser que os resultados sejam transpostos na vertical em vez de na horizontal, pode utilizar =TRANSPOR(Trimestre1).

Se quiser apresentar uma lista de 12 meses, como pode utilizar ao criar um demonstrativo financeiro, pode basear uma no ano atual com a função SEQUÊNCIA. O mais interessante desta função é que, embora apenas o mês seja apresentado, existe uma data válida por trás dela que pode utilizar noutros cálculos. Encontrará estes exemplos nas folhas de cálculo Constante de matriz nomeada e no Conjunto de dados de exemplo rápido no livro de exemplo.

=TEXTO(DATA(ANO(HOJE());SEQUÊNCIA(1;12);1);"mmm")

Utilize uma combinação das funções TEXTO, DATA, ANO, HOJE e SEQUÊNCIA para criar uma lista dinâmica de 12 meses

Isto utiliza a função DATA para criar uma data com base no ano atual, a SEQUÊNCIA cria uma constante de matriz de 1 a 12 para janeiro a dezembro e, em seguida, a função TEXTO converte o formato de apresentação para "mmm" (jan, fev, mar, etc.). Se quisesse apresentar o nome completo do mês, tal como janeiro, utilizaria "mmmm".

Quando utilizar uma constante com nome como fórmula de matriz, não se esqueça de introduzir o sinal de igual, como em =Trimestre1, e não apenas Trimestre1. Se não o fizer, o Excel interpretará a matriz como sendo uma cadeia de texto e a fórmula não funcionará. Por fim, tenha em atenção que é possível utilizar combinações de funções, textos e números. Tudo depende da sua criatividade.

Os exemplos que se seguem demonstram algumas formas de utilização de constantes de matriz em fórmulas de matriz. Alguns dos exemplos utilizam a função TRANSPOR para converter linhas em colunas e vice-versa.

  • Multiplicar cada item numa matriz

    Introduza =SEQUÊNCIA(1;12)*2 ou ={1\2\3\4;5\6\7\8;9\10\11\12}*2

    Também pode dividir com (/), adicionar com (+) e subtrair com (-).

  • Elevar os itens de uma matriz ao quadrado

    Introduza =SEQUÊNCIA(1;12)^2 ou ={1\2\3\4;5\6\7\8;9\10\11\12}^2

  • Encontrar a raiz quadrada de itens ao quadrado numa matriz

    Introduza =RAIZQ(SEQUÊNCIA(1;12)^2) ou =RAIZQ({1\2\3\4;5\6\7\8;9\10\11\12}^2)

  • Transpor uma linha unidimensional

    Introduza =TRANSPOR(SEQUÊNCIA(1;5)) ou =TRANSPOR({1\2\3\4\5})

    Embora tenha introduzido uma constante de matriz horizontal, a função TRANSPOR converte a constante de matriz numa coluna.

  • Transpor uma coluna unidimensional

    Introduza =TRANSPOR(SEQUÊNCIA(5;1)) ou =TRANSPOR({1;2;3;4;5})

    Embora tenha introduzido uma constante de matriz vertical, a função TRANSPOR converte a constante numa linha.

  • Transpor uma constante bidimensional

    Introduza =TRANSPOR(SEQUÊNCIA(3;4)) ou =TRANSPOR({1\2\3\4;5\6\7\8;9\10\11\12})

    A função TRANSPOR converte cada linha numa série de colunas.

Esta secção oferece exemplos de fórmulas de matriz básicas.

  • Criar uma matriz a partir de valores existentes

    O exemplo seguinte explica como utilizar fórmulas de matriz para criar uma nova matriz a partir de uma matriz existente.

    Introduza =SEQUÊNCIA(3;6;10;10), ou ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}

    Certifique-se de que introduz { (chaveta de abertura) antes de introduzir 10 e } (chaveta de fecho) depois de introduzir 180, porque está a criar uma matriz de números.

    Em seguida, =D9# ou =D9:I11 numa célula em branco. É apresentada uma matriz 3 x 6 de células com os mesmos valores que vê em D9:D11. O sinal # é denominado operador de intervalo de transposição de limites e é a forma do Excel de referenciar todo o intervalo de matriz em vez de ter de o escrever.

    Utilizar o operador de intervalo transposto (#) para referenciar uma matriz existente

  • Criar uma constante de matriz a partir de valores existentes

    Pode tirar os resultados de uma fórmula de matriz transposta e convertê-la nas partes componentes. Selecione a célula D9, depois prima F2 para mudar para o modo de edição. Em seguida, prima F9 para converter as referências das células em valores, que o Excel converte em seguida numa constante de matriz. Quando prime Enter, a fórmula =D9#, deve agora ser ={10\20\30;40\50\60;70\80\90}.

  • Contar carateres num intervalo de células

    O exemplo que se segue mostra como contar o número de carateres num intervalo de células. Isto inclui os espaços.

    Contar o número total de caracteres num intervalo, e outras matrizes para trabalhar com cadeias de texto

    =SOMA(NÚM.CARACT(C9:C13))

    Neste caso, a função NÚM.CARAT devolve o tamanho de cada cadeia de texto de cada uma das células do intervalo. A função SOMA soma esses valores e apresenta o resultado (66). Se quiser obter um número médio de caracteres, pode usar:

    =MÉDIA(NÚM.CARACT(C9:C13))

  • Conteúdos da célula mais longa no intervalo C9:C13

    =ÍNDICE(C9:C13;CORRESP(MÁXIMO(NÚM.CARACT(C9:C13));NÚM.CARACT(C9:C13);0);1)

    Esta fórmula apenas funciona quando um intervalo de dados contém uma única coluna de células.

    Examinemos agora a fórmula, começando pelos elementos internos e trabalhando em direção ao exterior. A função NÚM.CARACT devolve o comprimento de cada um dos itens no intervalo de células D2:D6. A função MÁXIMO calcula o maior valor entre esses itens, que corresponde à cadeia de texto mais longa, que está na célula D3.

    É neste ponto que a questão fica algo complexa. A função CORRESP calcula o deslocamento (a posição relativa) da célula que contém a maior cadeia de texto. Para o fazer, requer três argumentos: um valor de pesquisa, uma matriz de pesquisa e um tipo de correspondência. A função CORRESP pesquisa na matriz de pesquisa o valor de pesquisa especificado. Neste caso, o valor de pesquisa é a maior cadeia de texto:

    MÁXIMO(NÚM.CARACT(C9:C13)

    e essa cadeia encontra-se na seguinte matriz:

    NÚM.CARACT(C9:C13)

    O argumento de tipo de correspondência neste caso é 0. O tipo de correspondência pode ser um valor de 1, 0 ou -1.

    • 1 – devolve o maior valor que seja menor ou igual ao valor de pesquisa.

    • 0 – devolve o primeiro valor que seja exatamente igual ao valor de pesquisa.

    • -1 – devolve o menor valor que seja maior ou igual ao valor de pesquisa especificado

    • Se omitir um tipo de correspondência, o Excel assumirá o valor 1.

    Por fim, a função ÍNDICE utiliza os seguintes argumentos: uma matriz e uma linha e número de coluna dentro dessa matriz. O intervalo de células C9:C13 indica a matriz, a função CORRESP indica o endereço da célula e o argumento final (1) especifica que o valor provém da primeira coluna da matriz.

    Se quisesse obter o conteúdo da menor cadeia de texto, substituiria MÁXIMO no exemplo acima por MÍNIMO.

  • Encontrar os n valores menores de um intervalo

    Este exemplo mostra como encontrar os três menores valores num intervalo de células, onde foi criada uma matriz de dados de exemplo nas células B9:B18 com: =INT(MATRIZALEATÓRIA(10;1)*100). Note que MATRIZALEATÓRIA é uma função volátil, pelo que receberá um novo conjunto de números aleatórios cada vez que o Excel calcular.

    Fórmula de matriz do Excel para encontrar o Nº de menor valor: =PEQUENO(B9#,SEQUÊNCIA(D9))

    Enter =MENOR(B9#;SEQUENCE(D9), =MENOR(B9:B18;{1\2\3})

    Esta fórmula utiliza uma constante de matriz para avaliar a função MENOR três vezes e devolver os 3 menores membros na matriz contida nas células B9:B18, onde 3 é um valor variável na célula D9. Para encontrar mais valores, pode aumentar o valor na função SEQUÊNCIA ou adicionar mais argumentos à constante. Também pode utilizar funções adicionais com esta fórmula, como, por exemplo, SOMA ou MÉDIA. Por exemplo:

    =SOMA(MENOR(B9#;SEQUÊNCIA(D9))

    =MÉDIA(MENOR(B9#;SEQUÊNCIA(D9))

  • Encontrar os n valores maiores de um intervalo

    Para encontrar os valores maiores de um intervalo, pode substituir a função MENOR pela função MAIOR. Para além disso, o exemplo que se segue utiliza as funções LIN e INDIRETO.

    Introduza =MAIOR(B9#;LIN(INDIRETO("1:3"))) ou =MAIOR(B9:B18;LIN(INDIRETO("1:3")))

    Neste momento, poderá ser útil conhecer um pouco das funções LIN e INDIRETO. Pode utilizar a função LIN para criar uma matriz de números inteiros consecutivos. Por exemplo, selecione uma célula vazia e introduza:

    =LIN(1:10)

    A fórmula cria uma coluna de 10 números inteiros consecutivos. Para ver um potencial problema, insira uma linha acima do intervalo que contém a fórmula de matriz (ou seja, acima da linha 1). O Excel ajusta as referências de linhas e a fórmula gera agora números inteiros de 2 a 11. Para corrigir esse problema, deverá adicionar a função INDIRETO à fórmula:

    =LIN(INDIRETO("1:10"))

    A função INDIRETO utiliza cadeias de texto como argumentos (motivo pelo qual o intervalo 1:10 está entre aspas). O Excel não ajusta valores de texto quando insere linhas nem move de qualquer outra forma a fórmula de matriz. Como resultado, a função LIN gera sempre a matriz de números inteiros pretendida. Pode utilizar a função SEQUÊNCIA com a mesma facilidade:

    =SEQUÊNCIA(10)

    Vamos examinar a fórmula que utilizou anteriormente — =MAIOR(B9#;LIN(INDIRETO("1:3"))) — a partir dos parênteses interiores e a trabalhar para fora: a função INDIRETO devolve um conjunto de valores de texto, neste caso os valores de 1 a 3. A função LIN, por sua vez, gera uma matriz de coluna de três células. A função MAIOR utiliza os valores no intervalo de células B9:B18 e é avaliada três vezes, uma vez para cada referência devolvida pela função LIN. Se quiser encontrar mais valores, adicione um maior intervalo de células à função INDIRETO. Por fim, como nos exemplos da função MENOR, pode utilizar esta fórmula com outras funções, como, por exemplo, SOMA e MÉDIA.

  • Somar um intervalo que contém valores de erro

    A função SOMA do Excel não funciona quando tenta somar um intervalo que contém um valor de erro, como, por exemplo, #VALOR!. ou #N/D. Este exemplo mostra como somar os valores de um intervalo com o nome Dados que contém erros:

    Utilizar matrizes para lidar com os erros. Por exemplo, =SOMA(SE(É.ERRO(Dados),””,Dados) irá somar o intervalo com o nome Dados, mesmo que inclua erros, como #VALUE! ou #NA!.

  • =SOMA(SE(É.ERRO(Dados),"",Dados))

    A fórmula cria uma nova matriz que contém os valores originais menos os valores com erros. Começando pelas funções internas e trabalhando em direção ao exterior, a função É.ERRO procura erros no intervalo de células (Dados). A função SE devolve um valor específico se uma condição especificada devolver o valor VERDADEIRO e outro valor diferente se devolver FALSO. Neste caso, devolverá cadeias vazias ("") para todos os valores de erro, uma vez que devolvem VERDADEIRO e devolve os valores restantes do intervalo (Dados), pois devolvem FALSO, o que significa que não contêm valores de erro. A função SOMA calcula em seguida o total da matriz filtrada.

  • Contar o número de valores de erro de um intervalo

    Este exemplo é como a fórmula anterior, mas devolve o número de valores de erro de um intervalo com o nome Dados em vez de os filtrar:

    =SOMA(SE(É.ERRO(Dados),1,0))

    Esta fórmula cria uma matriz que contém o valor 1 para as células que contêm erros e o valor 0 para as células que não contêm erros. É possível simplificar a fórmula e alcançar o mesmo resultado removendo o terceiro argumento da função SE da seguinte forma:

    =SOMA(SE(É.ERRO(Dados);1))

    Se não especificar o argumento, a função SE devolverá FALSO se uma célula não contiver um valor de erro. É possível simplificar ainda mais a fórmula:

    =SOMA(SE(É.ERRO(Dados)*1))

    Esta versão funciona porque VERDADEIRO*1=1 e FALSO*1=0.

Poderá necessitar de somar valores baseados em condições.

Pode utilizar matrizes para calcular com base em determinadas condições. =SOMA(SE(Vendas>0;Vendas)) irá somar todos os valores superiores a 0 num intervalo denominado Vendas.

Por exemplo, esta fórmula de matriz soma apenas os números inteiros positivos de um intervalo com o nome Vendas, que representa as células E9:E24 no exemplo acima:

=SOMA(SE(Vendas>0;Vendas))

A função SE cria uma matriz de valores positivos e falsos. A função SOMA ignora essencialmente os valores falsos, pois 0+0=0. O intervalo de células utilizado nesta fórmula pode ser constituído por qualquer número de linhas e colunas.

Também pode somar valores que satisfaçam mais de uma condição. Por exemplo, esta fórmula de matriz calcula valores superiores a 0 E inferiores a 2500:

=SOMA((Vendas>0)*(Vendas<2500)*(Vendas))

Tenha em atenção que esta fórmula devolverá um erro se o intervalo contiver uma ou mais células não numéricas.

Também pode criar fórmulas de matriz que utilizem um tipo de condição OU. Por exemplo, pode somar valores superiores a 0 OU inferiores a 2500:

=SOMA(SE((Vendas>0)+(Vendas<2500);Vendas))

Não pode utilizar as funções E e OU diretamente em fórmulas de matriz, pois essas funções devolvem um único resultado (VERDADEIRO ou FALSO) e as funções de matriz requerem matrizes de resultados. Pode contornar o problema utilizando a lógica apresentada na fórmula anterior. Por outras palavras, são efetuadas operações matemáticas, como por exemplo adições ou multiplicações DE valores que satisfaçam a condição OU ou E.

Este exemplo mostra como remover zeros de um intervalo quando necessitar de calcular a média dos valores desse intervalo. A fórmula utiliza um intervalo de dados com o nome Vendas:

=MÉDIA(SE(Vendas<>0,Vendas))

A função SE cria uma matriz de valores que não sejam iguais a 0 e, em seguida, transmite esses valores para a função MÉDIA.

Esta fórmula de matriz compara os valores de dois intervalos de células com os nomes OsMeusDados e OsSeusDados e devolve o número de diferenças entre os dois. Se os conteúdos dos dois intervalos forem idênticos, a fórmula devolverá 0. Para utilizar esta fórmula, os intervalos de células têm de ter o mesmo tamanho e a mesma dimensão. Por exemplo, se OsMeusDados for um intervalo de 3 linhas por 5 colunas, OsSeusDados também têm de ter 3 linhas por 5 colunas:

=SOMA(SE(OsMeusDados=OsSeusDados;0;1))

A fórmula cria uma nova matriz com o mesmo tamanho dos intervalos que está a comparar. A função SE preenche a matriz com o valor 0 e o valor 1 (0 para incompatibilidades e 1 para células idênticas). A função SOMA devolve em seguida a soma dos valores na matriz.

É possível simplificar a fórmula do seguinte modo:

=SOMA(1*(OsMeusDados<>OsSeusDados))

À semelhança da fórmula que conta valores de erro de um intervalo, esta fórmula funciona porque VERDADEIRO*1=1 e FALSO*1=0.

Esta fórmula de matriz devolve o número de linha do valor máximo de um intervalo com uma coluna denominado Dados:

=MÍNIMO(SE(Dados=MÁXIMO(Dados),LIN(Dados),""))

A função SE cria uma nova matriz que corresponde ao intervalo denominado Dados. Se uma célula correspondente contiver o valor máximo do intervalo, a matriz conterá o número de linha. Caso contrário, a matriz conterá uma cadeia vazia (""). A função MÍNIMO utiliza a nova matriz como segundo argumento e devolve o valor mínimo, o qual corresponde ao número de linha do valor máximo de Dados. Se o intervalo denominado Dados contiver valores máximos idênticos, a fórmula devolverá a linha do primeiro valor.

Se pretender que seja devolvido o endereço de célula real de um valor máximo, utilize esta fórmula:

=ENDEREÇO(MÍNIMO(SE(Dados=MÁXIMO(Dados),LIN(Dados),"")),COL(Dados))

Encontrará exemplos semelhantes no livro de exemplo na folha de cálculo Diferenças entre conjuntos de dados.

Reconhecimento

Partes deste artigo baseiam-se numa série de colunas do Excel Power User escritas por utilizador avançado do Excel e adaptadas dos capítulos 14 e 15 do livro Excel 2002 Formulas, escrito por John Walkenbach, um antigo MVP do Excel.

Precisa de mais ajuda?

Pode sempre colocar uma pergunta a um especialista da Comunidade Tecnológica do Excel ou obter suporte nas Comunidades.

Consulte Também

Matrizes dinâmicas e comportamento de matrizes transpostas

Fórmulas de matriz dinâmica vs. fórmulas de matriz CSE legadas

Função FILTRAR

Função MATRIZALEATÓRIA

Função SEQUÊNCIA

Função ORDENAR

Função ORDENARPOR

Função EXCLUSIVOS

Erros de #TRANSPOSIÇÃO DE LIMITES! no Excel

Operador de interseção implícita: @

Descrição geral das fórmulas

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.