KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como calcular a mediana no Excel com várias condições?

AutorSun Data de Modificação

O cálculo da mediana de um conjunto de dados no Excel é uma operação frequentemente necessária em Análise de Dados e relatórios. Embora seja possível obter rapidamente a mediana de um intervalo simples utilizando funções padrão do Excel, surgem frequentemente situações em que é necessário obter apenas o valor mediano dos dados que cumprem vários critérios específicos — por exemplo, determinar o valor mediano das vendas de um determinado produto numa data específica, dentro de um conjunto alargado de dados. Lidar com este tipo de operações condicionais complexas apenas com funções tradicionais pode ser desafiante. Neste tutorial, apresentamos várias soluções práticas para calcular a mediana com múltiplas condições no Excel, explorando tanto abordagens baseadas em fórmulas como automação com VBA para necessidades avançadas.


Calcular a mediana se forem cumpridas várias condições

Imagine que tem um intervalo de dados como o apresentado abaixo e que a sua tarefa é determinar o valor mediano que satisfaz dois critérios — por exemplo, encontrar o valor mediano da coluna B em que a coluna A contém «a» e a coluna C corresponde à data «2-Jan». Este cenário é especialmente comum em relatórios de vendas, resultados de testes escolares e outros contextos empresariais ou académicos de análise de dados, onde é necessário filtrar com base em múltiplas categorias.

uma captura de ecrã dos dados originais

Para maior clareza, prepare a sua folha de cálculo da seguinte forma: na sua folha do Excel, introduza as suas condições e crie um esquema semelhante ao da imagem abaixo. Neste exemplo, a coluna E apresenta os critérios correspondentes à coluna A, e a linha 1, a partir da coluna F, indica os critérios de data provenientes da coluna C.

uma captura de ecrã da introdução de novos dados necessários

Para calcular a mediana que satisfaz múltiplos critérios, utilize uma fórmula matricial que combina as funções MEDIANA e SE para criar uma lista filtrada de valores com base nas suas condições. Eis como proceder:

1.Clique na célula F2, onde pretende que o resultado da mediana apareça, e introduza a seguinte fórmula:

=MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12)))

Esta fórmula funciona verificando, em cada linha, se o valor da coluna A corresponde à condição em E2 e se o valor da coluna C corresponde ao cabeçalho em F1; caso ambas as condições sejam satisfeitas, recolhe o valor da coluna B para o cálculo da mediana.

2. Depois de introduzir a fórmula, prima Ctrl + Shift + Enter (e não apenas Enter), pois trata-se de uma fórmula matricial. O Excel colocará automaticamente chavetas à volta da fórmula { } para indicar que se trata de uma fórmula matricial.

3.Arraste a alça de preenchimento a partir do canto inferior direito da célula F2 para copiar a fórmula para outras células relevantes onde necessite de medianas com diferentes condições, conforme ilustrado abaixo:

uma captura de ecrã da utilização da fórmula

Explicação dos parâmetros e dicas de utilização: Na fórmula, $A$2:$A$12 é o intervalo que contém a primeira condição (por exemplo, nomes de produtos), $C$2:$C$12 é o intervalo da segunda condição (por exemplo, datas) e $B$2:$B$12 é o intervalo que contém os valores numéricos relativamente aos quais pretende calcular a mediana. Ajuste estes intervalos conforme necessário na sua própria folha de cálculo. Utilize sempre referências absolutas (com o símbolo $) para garantir que os intervalos não se alteram ao copiar a fórmula.

Precauções: Se nenhum valor cumprir ambas as condições, a fórmula devolverá um erro #NÚM!. Para evitar confusão, pode incorporar a fórmula na função SEERRO, de modo a devolver uma célula vazia ou uma mensagem personalizada:

=IFERROR(MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12))),"No match")

Certifique-se de que os seus dados não contêm células vazias nem valores não numéricos na coluna da mediana, pois isso também poderá afetar os resultados.

Esta abordagem baseada em fórmulas é ideal para condições relativamente simples — normalmente até duas ou três. É rápida de configurar e não exige conhecimentos de programação. Contudo, em cenários de filtragem mais complexos, com condições dinâmicas ou conjuntos de dados maiores, manter ou editar fórmulas matriciais pode tornar-se incómodo.


Código VBA – Calcular a mediana com várias condições

Em cenários que exigem a automatização do cálculo da mediana condicional — como quando há múltiplas condições, grandes volumes de dados ou critérios em constante mudança — uma solução em VBA surge como uma alternativa prática. Com o VBA, é possível criar uma macro reutilizável capaz de calcular a mediana com base em qualquer número de condições. Soluções em VBA revelam-se especialmente úteis para agilizar análises repetitivas ou desenvolver processos personalizados no Excel, ideais para relatórios e painéis interativos.

Siga estes passos para utilizar o VBA no cálculo da mediana condicional:

1. Clique em Ferramentas de Programador > Visual Basic. Uma nova janela do Microsoft Visual Basic for Applications será aberta. Clique em Inserir > Módulo e cole o seguinte código no módulo:

Sub ConditionalMedian()
    Dim DataRange As Range
    Dim CriteriaRange1 As Range
    Dim CriteriaRange2 As Range
    Dim OutputRange As Range
    Dim Criteria1 As Variant
    Dim Criteria2 As Variant
    Dim TempArr() As Double
    Dim i As Long
    Dim j As Long
    Dim count As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the range containing median values (e.g., B2:B12):", xTitleId, "", Type:=8)
    Set CriteriaRange1 = Application.InputBox("Select the first criteria range (e.g., A2:A12):", xTitleId, "", Type:=8)
    Criteria1 = Application.InputBox("Enter the first criteria value (e.g., a):", xTitleId, "", Type:=2)
    Set CriteriaRange2 = Application.InputBox("Select the second criteria range (e.g., C2:C12):", xTitleId, "", Type:=8)
    Criteria2 = Application.InputBox("Enter the second criteria value (e.g.,2-Jan):", xTitleId, "", Type:=2)
    Set OutputRange = Application.InputBox("Select the cell to output the result:", xTitleId, "", Type:=8)
    
    count = 0
    For i = 1 To DataRange.Rows.count
        If StrComp(CStr(CriteriaRange1.Cells(i, 1).Value), CStr(Criteria1), vbTextCompare) = 0 And _
           CStr(CriteriaRange2.Cells(i, 1).Value) = CStr(Criteria2) Then
            ReDim Preserve TempArr(count)
            TempArr(count) = DataRange.Cells(i, 1).Value
            count = count + 1
        End If
    Next i
    
    If count = 0 Then
        OutputRange.Value = "No match"
    Else
        Call QuickSort(TempArr, LBound(TempArr), UBound(TempArr))
        If count Mod 2 = 1 Then
            OutputRange.Value = TempArr(count \ 2)
        Else
            OutputRange.Value = (TempArr(count \ 2) + TempArr(count \ 2 - 1)) / 2
        End If
    End If
End Sub

Sub QuickSort(arr() As Double, first As Long, last As Long)
    Dim i As Long
    Dim j As Long
    Dim pivot As Double
    Dim temp As Double
    
    i = first
    j = last
    pivot = arr((first + last) \ 2)
    
    Do While i <= j
        Do While arr(i) < pivot
            i = i + 1
        Loop
        
        Do While arr(j) > pivot
            j = j - 1
        Loop
        
        If i <= j Then
            temp = arr(i)
            arr(i) = arr(j)
            arr(j) = temp
            i = i + 1
            j = j - 1
        End If
    Loop
    
    If first < j Then
        QuickSort arr, first, j
    End If
    
    If i < last Then
        QuickSort arr, i, last
    End If
End Sub

2. Clique no botão Botão Executar (ou prima F5) para executar o código. Ser-lhe-á pedido que selecione cada um dos intervalos necessários e introduza os respetivos critérios. Após concluir estes passos, o resultado — a mediana que cumpre todos os critérios — será apresentado na célula de destino que especificou.

Esta macro permite-lhe selecionar, de forma flexível em cada execução, o intervalo de valores, os intervalos e valores dos critérios, bem como o local onde os resultados deverão ser apresentados. Além disso, pode adaptar facilmente o código para incluir mais condições, sempre que necessário.

Dicas e resolução de problemas: Ao utilizar soluções em VBA, certifique-se de que todos os intervalos selecionados têm o mesmo comprimento e de que os critérios correspondem ao tipo de dados e à formatação corretos (por exemplo, texto versus datas). Se nenhum valor cumprir os critérios, o resultado será «Sem correspondência.». Para maior estabilidade, guarde sempre a sua pasta de trabalho antes de executar a macro e ative as macros sempre que solicitado. Esta solução em VBA é ideal para utilizadores familiarizados com as definições de segurança de macros e para utilização em fluxos de trabalho automatizados no Excel.

Em resumo, a abordagem em VBA automatiza cálculos complexos de mediana que seriam incómodos ou difíceis de executar apenas com fórmulas, revelando-se especialmente adequada para condições variáveis, recalculações frequentes e grandes conjuntos de dados.


Artigos relacionados:


As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...


Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil

  • Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
  • Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!

Todos os suplementos Kutools — num único instalador.

Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.

ExcelWordOutlookTabsPowerPoint
  • Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Um instalador, uma licença— configuração em minutos (pronto para MSI)
  • Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
  • Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
  • Melhor relação qualidade-preço— poupe face à compra individual dos suplementos