Come calcolare la mediana in Excel applicando più condizioni?
Calcolare la mediana di un set di dati in Excel è un'operazione spesso necessaria nell'Analisi dei dati e nella creazione di report. Sebbene sia possibile ottenere rapidamente la mediana per un intervallo semplice utilizzando le funzioni standard di Excel, capita frequentemente di dover calcolare la mediana solo sui dati che soddisfano criteri specifici multipli—ad esempio, trovare la mediana degli importi di vendita per un determinato prodotto in una data specifica all'interno di un ampio set di dati. Gestire operazioni così complesse e condizionali usando soltanto le funzioni tradizionali può risultare difficoltoso. In questa guida illustreremo diverse soluzioni pratiche per calcolare la mediana con più condizioni in Excel, esplorando sia approcci basati su formule che l'automazione tramite VBA per esigenze avanzate.
Calcola la mediana se soddisfa più condizioni
Si supponga di avere un intervallo dati come mostrato di seguito e di dover determinare il valore mediano che soddisfi due criteri: ad esempio, calcolare la mediana dei valori nella colonna B in cui la colonna A contiene «a» e la colonna C riporta la data «2-gen». Questo scenario è particolarmente comune nei report di vendita, nei risultati di test scolastici e in altri contesti aziendali o accademici in cui è necessario filtrare i dati in base a più categorie.

Per maggiore chiarezza, prepari il foglio di lavoro come segue: nel foglio Excel inserisca i criteri e crei un layout simile a quello mostrato nell’immagine sottostante. In questo layout, la colonna E riporta i criteri relativi alla colonna A, mentre la riga 1, a partire dalla colonna F, indica i criteri di data tratti dalla colonna C.

Per calcolare la mediana che soddisfa più criteri, puoi utilizzare una formula matriciale che combina le funzioni MEDIANA e SE per creare un elenco filtrato di valori in base alle tue condizioni. Ecco come fare:
1.Faccia clic sulla cella F2, dove desidera visualizzare il risultato della mediana, e inserisca la seguente formula:
=MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12))) Questa formula verifica, per ogni riga, se il valore nella colonna A soddisfa la condizione indicata in E2 e se il valore nella colonna C corrisponde all’intestazione riportata in F1. Qualora entrambe le condizioni siano verificate, include il valore della colonna B nel calcolo della mediana.
2. Dopo aver inserito la formula, premi Ctrl + Maiusc + Invio (non semplicemente Invio), poiché si tratta di una formula matriciale. Excel racchiuderà automaticamente la formula tra parentesi graffe { } per indicare che è una formula matriciale.
3.Trascini la maniglia di riempimento dall’angolo in basso a destra di F2 per copiare la formula nelle altre celle pertinenti in cui servono mediane con condizioni diverse, come mostrato di seguito:

Spiegazione dei parametri e suggerimenti per l’uso: Nella formula, $A$2:$A$12 è l’intervallo che contiene la prima condizione (ad esempio, i nomi dei prodotti), $C$2:$C$12 è l’intervallo relativo alla seconda condizione (ad esempio, le date) e $B$2:$B$12 è l’intervallo con i valori numerici sui quali calcolare la mediana. Adatta questi intervalli in base al tuo foglio di lavoro e usa sempre i riferimenti assoluti (con il simbolo $) per evitare che gli intervalli si modifichino quando copi la formula.
Precauzioni:Se nessun valore soddisfa entrambe le condizioni, la formula restituirà un errore #NUM!Per evitare confusione, è possibile annidare la formula all’interno della funzione SE.ERROREper restituire una cella vuota o un messaggio personalizzato:
=IFERROR(MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12))),"No match") Assicurati che i dati non contengano celle vuote o valori non numerici nella colonna della mediana, poiché potrebbero compromettere l’affidabilità dei risultati.
Questo approccio basato su formule è adatto quando si hanno condizioni relativamente semplici (tipicamente fino a due o tre criteri). È rapido da impostare e non richiede competenze di programmazione. Tuttavia, per filtri complessi con condizioni dinamiche o set di dati molto grandi, la gestione o la modifica delle formule matriciali può diventare difficoltosa.
Codice VBA - Calcola la mediana con più condizioni
Quando è necessario automatizzare il calcolo della mediana condizionata—ad esempio con numerosi criteri, set di dati estesi o condizioni soggette a frequenti aggiornamenti—una soluzione VBA rappresenta un’alternativa pratica ed efficiente. Grazie a VBA, puoi creare una macro riutilizzabile in grado di calcolare la mediana in base a qualsiasi numero di condizioni. Le soluzioni basate su VBA si rivelano particolarmente utili per semplificare analisi ripetitive e sviluppare processi personalizzati in Excel, ideali per reportistica e dashboard dinamiche.
Segua questi passaggi per utilizzare VBA nel calcolo della mediana condizionata:
1. Faccia clic su Strumenti per sviluppatori > Visual Basic. Si aprirà una nuova finestra di Microsoft Visual Basic for Applications. Faccia clic su Inserisci > Modulo, quindi incollare il codice seguente nel modulo:
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. Fai clic sul pulsante
(o premi F5) per eseguire il codice. Ti verrà chiesto di selezionare ciascuno degli intervalli richiesti e di inserire i tuoi criteri. Al termine delle richieste, il risultato — la mediana che soddisfa tutti i criteri — verrà visualizzato nella cella di destinazione specificata.
Questa macro ti permette di selezionare in modo flessibile, ogni volta che la esegui, l’intervallo dei valori, gli intervalli e i valori dei criteri, nonché la cella in cui visualizzare il risultato. Inoltre, puoi adattare facilmente il codice per aggiungere ulteriori condizioni, se necessario.
Suggerimenti e risoluzione problemi: Quando utilizzi soluzioni VBA, assicurati che tutti gli intervalli selezionati abbiano la stessa lunghezza e che i criteri corrispondano al tipo di dati e alla formattazione corretti (ad esempio testo anziché date). Se nessun valore soddisfa i criteri, l’output mostrerà «Nessuna corrispondenza». Per una maggiore stabilità, salva sempre la cartella di lavoro prima di eseguire la macro e abilita le macro non appena richiesto. Questa soluzione VBA è ideale per utenti esperti nelle impostazioni di sicurezza delle macro e per l’uso in flussi di lavoro Excel automatizzati.
In sintesi, l’approccio VBA automatizza calcoli complessi della mediana che, con le sole formule, risulterebbero difficili o macchinosi da eseguire. È la scelta ideale per gestire condizioni variabili, ricalcoli frequenti e set di dati di grandi dimensioni.
Articoli correlati:
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi