Médiane conditionnelle Excel (« MEDIANE.SI » via formule matricielle)
Excel propose SOMME.SI, MOYENNE.SI, NB.SI… mais aucun MEDIANE.SI. C'est l'un des manques les plus surprenants — la médiane est pourtant un indicateur plus robuste que la moyenne face aux valeurs extrêmes. Bonne nouvelle : on peut la calculer sous condition avec une formule matricielle ou la fonction FILTRE. Voici trois méthodes selon votre version d'Excel.
Pourquoi pas une fonction MEDIANE.SI native ?
Microsoft a ajouté SOMME.SI.ENS et MOYENNE.SI.ENS en 2007, mais pas leur équivalent médiane. La raison technique : le calcul d'une médiane impose de trier les valeurs filtrées, ce qui complique l'évaluation matricielle. Les développeurs ont fait l'impasse — il faut faire le boulot soi-même.
Méthode 1 — Formule matricielle SI + MEDIANE (toutes versions)
Pour calculer la médiane des salaires des femmes dans un tableau :
=MEDIANE(SI(B2:B100="F"; C2:C100))
Où B2:B100 contient le genre et C2:C100 le salaire.
Comment valider la formule matricielle
- Excel 365 / 2021 : appuyez simplement sur Entrée. La propagation dynamique gère la matricialité automatiquement.
- Excel 2019 et antérieur : appuyez sur Ctrl+Maj+Entrée. Excel affiche la formule entre accolades :
{=MEDIANE(SI(...))}.
Comment ça fonctionne ?
La logique en deux étapes :
SI(B2:B100="F"; C2:C100)renvoie un tableau contenant le salaire quand B="F" etFAUXsinon.MEDIANE()ignore les valeurs logiques (FAUX) et calcule la médiane des seuls nombres restants — donc des salaires féminins.
Méthode 2 — FILTRE + MEDIANE (Excel 365 / 2021)
Plus lisible et plus moderne :
=MEDIANE(FILTRE(C2:C100; B2:B100="F"))
La fonction FILTRE renvoie directement le sous-ensemble correspondant à la condition. MEDIANE opère ensuite normalement. Aucun Ctrl+Maj+Entrée nécessaire.
Avec plusieurs critères (ET)
Multipliez les conditions :
=MEDIANE(FILTRE(C2:C100; (B2:B100="F")*(D2:D100="Paris")))
Le * joue le rôle de ET : seules les lignes où les deux conditions sont vraies sont conservées (VRAI*VRAI = 1).
Avec un critère OU
Utilisez le + :
=MEDIANE(FILTRE(C2:C100; (D2:D100="Paris")+(D2:D100="Lyon")))
Attention : si une ligne valide les deux conditions, l'addition donne 2 — le filtre prend tout ce qui est non nul donc ça fonctionne, mais préférez --((...)+(...) > 0) pour être propre.
Méthode 3 — Tableau croisé dynamique
Mauvaise nouvelle : par défaut, les TCD ne proposent pas la médiane (juste Somme, Moyenne, Min, Max, Compte, Écart-type). Pour obtenir la médiane dans un TCD, deux options :
- Modèle de données / Power Pivot : créez une mesure DAX avec
=MEDIANX(VALUES(...), [Salaire]). Disponible sur Excel Pro Plus / 365. - Pré-calcul : créez une colonne d'aide avec la formule matricielle ou FILTRE par groupe, puis utilisez Min sur cette colonne (puisque chaque ligne du groupe a la même médiane).
Cas pratiques
Salaire médian par service
Vous avez 250 salariés avec leur service. Pour obtenir la médiane par service, une formule par cellule :
=MEDIANE(FILTRE(Sal; Serv=F2))
Où F2 contient le nom du service, et Sal / Serv sont des plages nommées (ou colonnes de tableau structuré).
Délai médian de traitement de réclamations
Quelle est la durée médiane de traitement par type de réclamation ? Idéal pour mesurer une « expérience client typique », là où la moyenne est faussée par les cas extrêmes (qui peuvent prendre 6 mois).
Prix médian par catégorie d'article
Dans un catalogue, la médiane par catégorie révèle mieux le « prix de marché » que la moyenne quand quelques produits premium tirent les chiffres vers le haut.
Erreurs courantes
Oublier Ctrl+Maj+Entrée (avant Excel 365)
Sur Excel 2019 et antérieur, sans Ctrl+Maj+Entrée, la formule SI(B:B="F"; C:C) n'opère que sur la première ligne. Résultat aberrant. Vérifiez la présence des accolades dans la barre de formule.
Inclure les 0 par erreur
Si votre condition renvoie 0 au lieu de FAUX pour les lignes exclues, MEDIANE va compter ces 0 comme des valeurs valides ! Préférez toujours :
=MEDIANE(SI(B2:B100="F"; C2:C100)) et pas =MEDIANE(SI(B2:B100="F"; C2:C100; 0)).
Plages de tailles différentes
Si B2:B100 et C2:C99 n'ont pas la même hauteur, FILTRE et la formule matricielle renvoient une erreur. Toujours vérifier la cohérence.
Bonne pratique : nommez vos colonnes (plages nommées ou tableau structuré). =MEDIANE(FILTRE(Salaire; Genre="F")) est immédiatement lisible et résistant à l'ajout de lignes.
Comparer médiane et moyenne en un coup d'œil
Une cellule de comparaison utile dans un dashboard RH ou commercial :
="Moyenne : " & MOYENNE.SI(B:B;"F";C:C) & " — Médiane : " & MEDIANE(FILTRE(C2:C100; B2:B100="F"))
L'écart entre les deux indique la dissymétrie de la distribution. Plus l'écart est grand, plus les valeurs extrêmes pèsent.
À retenir
- Pas de MEDIANE.SI native — on utilise SI dans MEDIANE (formule matricielle) ou FILTRE (Excel 365+).
- Excel 365 / 2021 : pressez Entrée. Versions antérieures : Ctrl+Maj+Entrée.
- Multi-critères :
FILTRE(..., (cond1)*(cond2))pour ET,+pour OU. - Dans un TCD : passez par Power Pivot et la fonction DAX
MEDIANX. - Préférez la médiane à la moyenne quand vos données contiennent des valeurs extrêmes.