Qu'est-ce que la fonction BDVAR ?
BDVAR (DVAR en anglais) te sert quand tu veux mesurer la dispersion d'un sous-ensemble précis de ta base sans construire de tableau croisé ni retaper une formule VAR.S pour chaque filtre.
Concrètement, c'est elle qui mesure la volatilité des ventes d'une seule région, la dispersion des salaires d'un département, la variabilité des notes d'un groupe, ou la stabilité des défauts de production d'une ligne. Quand tu as besoin de comprendre si tes résultats sont homogènes ou très épars sur un sous-ensemble de données, BDVAR fait le calcul en une ligne.
Syntaxe
=BDVAR(base_de_données; champ; critères)Clique sur un argument pour aller à son explication.
BDVAR divise par n-1 (variance d'échantillon), ce qui donne une estimation non biaisée de la variance de la population. Si tu as TOUTES les données de ta population, utilise BDVARP qui divise par n.

Comprendre chaque paramètre de la fonction BDVAR
Les trois arguments se lisent toujours dans le même ordre : d'abord ta plage de données entière (en-têtes compris), puis la colonne dont tu veux la variance, enfin la zone qui porte tes critères de filtrage. Aucun n'est facultatif, BDVAR refuse de travailler s'il en manque un.
Le champ du milieu accepte trois écritures : le nom entre guillemets comme "Ventes", le numéro de la colonne, ou une référence vers une cellule. Le nom entre guillemets reste juste même si tu insères une colonne plus tard, là où le numéro, lui, se décale en silence.
base_de_données
: la plage complète de ta base de données, incluant les en-têtes de colonnes en première lignePar exemple A1:E100 si ta base couvre les colonnes A à E sur 100 lignes. La première ligne doit absolument contenir les noms des colonnes (Vendeur, Région, Ventes, etc.).
Excel utilise ces en-têtes pour identifier les champs lors du filtrage. Assure-toi que ta base est continue, sans ligne vide au milieu, et que chaque colonne a un en-tête unique.
champ
: le champ (colonne) sur lequel tu veux calculer la varianceTu peux l'indiquer de trois façons : le nom entre guillemets comme "Ventes", la position de la colonne comme 3 (pour la 3e colonne), ou une référence de cellule contenant le nom du champ.
Le nom entre guillemets est plus lisible et plus robuste : si tu insères une colonne, le numéro devient faux mais le nom reste juste.
critères
: une plage séparée contenant les critères de filtrageElle doit inclure au moins un en-tête de colonne (identique à celui de ta base) et les valeurs à filtrer en dessous. Par exemple, G1:G2 où G1 contient "Région" et G2 contient "Nord".
Tu peux avoir plusieurs colonnes de critères pour des filtres complexes : plusieurs critères sur la même ligne = ET logique ; plusieurs lignes = OU logique. Place toujours ta zone de critères à côté de ta base, jamais en dessous (pour éviter d'être écrasée quand tu ajoutes des lignes).
Attention : BDVAR a besoin d'au moins 2 valeurs pour calculer une variance. Si tes critères ne sélectionnent qu'une seule ligne, la formule retourne #DIV/0!. Utilise BDNB pour vérifier combien de lignes correspondent avant d'appliquer BDVAR.

Exemples pratiques pas à pas
Comment calculer la variance selon un critère avec la fonction BDVAR
La revue annuelle des salaires arrive et la question posée n'est pas le montant moyen mais l'écart entre les gens : le service IT est-il payé de façon homogène, ou y a-t-il de vrais fossés d'un poste à l'autre ? Tes quatorze salariés sont listés avec leur département et leur salaire, et tu veux mesurer cette dispersion sur le seul IT. La fonction BDVAR lit une zone de critères posée à côté du tableau et calcule la variance des seules lignes qui y répondent.
- 1Dans une cellule, écris
=BDVAR(. - 2En 1er argument : sélectionne la base de données entière,
A1:C15. La ligne des en-têtes fait partie de la sélection, car la fonction s'appuie sur les titresEmployé,DépartementetSalairepour savoir quelle colonne porte quel nom. - 3En 2ᵉ argument : écris le nom de la colonne dont tu veux la dispersion,
"Salaire". Il s'écrit entre guillemets et reprend l'en-tête de la colonne C au caractère près. Tu pourrais aussi saisir le rang de cette colonne dans la base,3, mais ce numéro deviendrait faux le jour où tu insères une colonne avant elle. - 4En 3ᵉ argument : sélectionne la zone de critères posée à côté du tableau,
E1:E2. Tu y recopies l'en-têteDépartementen E1 et la valeurITen E2, de sorte que la fonction ne garde que les lignes de ce service. ÉcrisVentesen E2 et la dispersion de l'autre service s'affiche aussitôt, sans rien changer à la formule. - 5Ferme la parenthèse et appuie sur Entrée.
=BDVAR(A1:C15; "Salaire"; E1:E2)Comment éviter l'erreur #DIV/0! de la fonction BDVAR sur un échantillon trop petit
Tu compares l'homogénéité des salaires département par département, et ta zone de critères est pilotée par une liste déroulante. Le jour où quelqu'un choisit la Direction, qui ne compte qu'une seule personne, ta cellule affiche #DIV/0! et l'erreur contamine tout le tableau posé autour. La fonction BDVAR a besoin d'au moins deux valeurs pour mesurer un écart, donc il faut compter avant de calculer.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le comptage qui sert de garde-fou,
BDNB(A1:C6; "Salaire"; E1:E2)>1. La zone de critèresE1:E2est posée à côté du tableau, avec l'en-têteDépartementrecopié en E1 et le département voulu en E2. Le seuil de comparaison est1et non0, car il faut au moins deux salaires pour qu'un écart existe. - 3En 2ᵉ argument : écris le calcul à ne lancer que si le test passe,
BDVAR(A1:C6; "Salaire"; E1:E2). La fonction BDVAR reprend les trois mêmes arguments que la fonction BDNB et aux mêmes places, donc tu peux recopier celle de l'étape précédente et n'en changer que le nom. - 4En 3ᵉ argument : écris le message à afficher quand le test échoue,
"Échantillon trop petit". Ce texte remplace le#DIV/0!qui serait sorti sans garde-fou, et il dit au lecteur pourquoi la case ne porte pas de chiffre. - 5Ferme la parenthèse et appuie sur Entrée. Les deux fonctions imbriquées ont déjà été refermées dans leurs étapes respectives, et il ne reste que celle de la fonction SI.
=SI(BDNB(A1:C6; "Salaire"; E1:E2)>1; BDVAR(A1:C6; "Salaire"; E1:E2); "Échantillon trop petit")#DIV/0!, puisqu'elle divise par n moins 1 et que n moins 1 vaut zéro ici. BDNB compte d'abord les lignes retenues et le SI ne déclenche le calcul que s'il y en a au moins deux. La Direction affiche un message clair, et les départements plus fournis gardent leur variance.Comment convertir la variance en écart-type avec la fonction BDVAR
Tu dois présenter la dispersion des salaires de l'IT à des gens qui ne feront pas l'effort de décoder un nombre à huit chiffres. Tes salariés sont listés avec leur département et leur salaire, et tu veux un chiffre qui se dit en une phrase, en euros. La fonction BDVAR calcule bien la dispersion, mais elle la rend en euros au carré, donc il reste une opération à faire pour la rendre présentable.
- 1Dans une cellule, écris
=RACINE(. - 2En 1er argument : écris la variance à ramener dans son unité de départ et referme-la,
BDVAR(A1:C7; "Salaire"; E1:E2). La fonction BDVAR reçoit la baseA1:C7en-têtes comprises, le nom de la colonne à mesurer entre guillemets, puis la zone de critèresE1:E2où l'en-têteDépartementest recopié en E1 et la valeurITen E2. Elle retient ainsi les quatre salaires du service et rend leur variance, exprimée en euros au carré. - 3Ferme la parenthèse de la fonction RACINE et appuie sur Entrée. Celle de la fonction BDVAR a déjà été refermée à l'étape précédente, ce qui explique les deux parenthèses de suite à la fin de la formule.
=RACINE(BDVAR(A1:C7; "Salaire"; E1:E2))
Les erreurs fréquentes avec la fonction BDVAR
Trois plantages reviennent avec BDVAR, et ils ont chacun une cause nette. Le #DIV/0! tombe dès que tes critères ne ramènent qu'une seule valeur (ou zéro) : sans au moins deux points, il n'y a pas de dispersion à mesurer. Lance un BDNB avec les mêmes critères pour compter ce que tu attrapes vraiment.
Viennent ensuite les en-têtes de critères qui ne collent pas au caractère près à ceux de la base ("Région", "région" et "Région " sont trois choses différentes pour Excel), et la confusion avec BDVARP qui divise par n au lieu de n-1 et sous-estime ta vraie variance.
Erreur #DIV/0! : moins de 2 valeurs sélectionnées
BDVAR retourne #DIV/0! quand tes critères ne trouvent qu'une seule valeur (ou zéro). La variance nécessite au moins 2 points de données pour être calculée. Avec une seule valeur, il n'y a pas de dispersion mesurable.
Solution : Vérifie que tes critères sélectionnent bien plusieurs enregistrements. Utilise =BDNB(base;champ;critères) pour compter combien de valeurs correspondent avant d'appliquer BDVAR. Si le résultat est inférieur à 2, tes critères sont trop restrictifs.
Les en-têtes de critères ne correspondent pas
Si l'en-tête dans ta zone de critères ne correspond pas exactement (même casse, mêmes espaces) à celui de ta base de données, BDVAR ne trouve aucune donnée et retourne une erreur.
Solution : Copie-colle les en-têtes de ta base vers ta zone de critères pour éviter les fautes de frappe. "Région" est différent de "région" et de "Région " (avec un espace après).
Confusion entre BDVAR et BDVARP
BDVAR calcule la variance d'un échantillon (divise par n-1), BDVARP calcule la variance de la population entière (divise par n). Utiliser BDVARP sur un échantillon sous-estime la vraie variance de la population.
Solution : Dans 95% des cas, utilise BDVAR (échantillon). Utilise BDVARP uniquement si tu as réellement TOUTES les données de ta population, par exemple tous les employés de l'entreprise, et pas un échantillon représentatif.

BDVAR vs BDVARP vs BDECART.TYPE vs BDMOYENNE
Utilise BDVAR pour mesurer la dispersion d'un échantillon filtré. Pour une population complète, BDVARP. Pour un résultat plus intuitif dans la même unité que tes données, préfère BDECART.TYPE (racine carrée de BDVAR). Combine BDVAR et BDMOYENNE pour avoir dispersion + tendance centrale.
| Critère | BDVAR | BDVARP | BDECART.TYPE | BDMOYENNE |
|---|---|---|---|---|
| Mesure calculée | Variance (unité²) | Variance (unité²) | Écart-type (unité) | Moyenne (unité) |
| Formule mathématique | Σ(x-μ)² / (n-1) | Σ(x-μ)² / n | √[Σ(x-μ)² / (n-1)] | Σx / n |
| Filtrage par critères | ✅ Oui | ✅ Oui | ✅ Oui | ✅ Oui |
| Facile à interpréter | ⭐⭐ (unité²) | ⭐⭐ (unité²) | ⭐⭐⭐ (même unité) | ⭐⭐⭐ (même unité) |
| Cas d'usage typique | Dispersion d'un échantillon | Dispersion d'une population | Volatilité lisible | Tendance centrale |
Questions fréquentes
BDVAR calcule la variance d'un échantillon (divise par n-1), ce qui donne une estimation non biaisée de la variance de la population. BDVARP calcule la variance de la population entière (divise par n). Utilise BDVAR quand tu analyses un sous-ensemble représentatif de ta population (sondage, échantillon). Utilise BDVARP seulement si tu disposes de toutes les données de ta population sans exception.
Une variance élevée signifie que tes données sont très dispersées autour de la moyenne. Par exemple, des ventes avec une variance de 10 000 000 indiquent des écarts importants entre les vendeurs. Une faible variance signifie que les valeurs sont homogènes et proches de la moyenne.
Pour une interprétation plus intuitive, calcule l'écart-type : =RACINE(BDVAR(...)). Il est dans la même unité que tes données et représente l'écart moyen à la moyenne.
Cette erreur survient quand tes critères ne correspondent à aucune donnée, ou à une seule valeur. BDVAR a besoin d'au moins 2 valeurs pour calculer une variance.
Vérifie que tes critères sont corrects et qu'ils sélectionnent plusieurs enregistrements. Utilise BDNB avec les mêmes critères pour compter le nombre de valeurs correspondantes avant de diagnostiquer le problème.
Oui. Tu peux combiner plusieurs critères dans ta zone de critères. Par exemple, filtrer sur Région="Nord" ET Année=2024. Place simplement les critères sur la même ligne pour un ET logique, ou sur des lignes différentes pour un OU logique.
Cette flexibilité est ce qui distingue BDVAR de VAR.S combinée avec des filtres manuels.
BDVAR est souvent plus lisible et plus facile à maintenir car elle centralise les critères dans une zone dédiée, réutilisable par plusieurs formules. Tu peux modifier les critères une seule fois et toutes les formules BDVAR se recalculent.
Pour des analyses ponctuelles simples, VAR.S combinée avec FILTRE (Excel 365) peut être plus directe. Mais pour des tableaux de bord avec plusieurs métriques filtrées par les mêmes critères, BDVAR est plus maintenable.
Pour aller plus loin
Continue sur ta lancée après la fonction BDVAR : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



