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.

1900 2000 2100 2200 2300 2400 2500 2600 15 000 Moyenne ≈ 3 444 € Médiane = 2 300 €
Sur 9 salaires dont un cadre dirigeant à 15 000 €, la moyenne (3 444 €) est tirée par le haut. La médiane (2 300 €) reflète bien mieux la rémunération typique.

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))

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 :

  1. SI(B2:B100="F"; C2:C100) renvoie un tableau contenant le salaire quand B="F" et FAUX sinon.
  2. 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))

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.