Qu'est-ce que la fonction BDVARP ?
BDVARP (DVARP en anglais) te sert quand tu dois chiffrer la dispersion d'un sous-ensemble filtré de ta base, sans en extraire les lignes à part ni recalculer une variance à la main à chaque changement de critère.
Concrètement, c'est elle qui mesure la dispersion de tes prix dans une catégorie de catalogue complète, la variabilité des délais de livraison d'une région sur un mois entier, ou les fluctuations des dépenses d'un département sur une année. Dès que tu veux filtrer une base de données structurée pour analyser la dispersion d'une population complète, BDVARP est la fonction adaptée.
Syntaxe
=BDVARP(base_de_données; champ; critères)Clique sur un argument pour aller à son explication.
BDVARP divise par n (nombre total de valeurs filtrées), ce qui convient uniquement quand tu as TOUTES les données de ta population. Si tu analyses un échantillon représentatif, utilise BDVAR qui divise par n-1 pour une estimation non biaisée.

Comprendre chaque paramètre de la fonction BDVARP
Les trois arguments s'enchaînent toujours dans le même ordre : d'abord ta base de données avec ses en-têtes, puis la colonne dont tu veux la variance, enfin la zone de critères qui filtre les lignes. Aucun n'est facultatif.
Le piège à éviter dès le départ : ta zone de critères doit reprendre EXACTEMENT les en-têtes de ta base (orthographe, accents, espaces), sinon le filtre ne retient rien. Et place-la au-dessus ou à côté de la base, jamais en dessous, pour ne pas l'écraser en ajoutant des lignes.
base_de_données
: la plage complète de ta base de données, incluant obligatoirement les en-têtes de colonnes en première lignePar exemple, si tes données vont de A1 à D50, ta plage doit être A1:D50 avec A1:D1 comme ligne d'en-têtes.
Si tu ajoutes régulièrement des données, utilise une plage large (comme A1:D1000) pour ne pas avoir à modifier ta formule à chaque fois. Les lignes vides en bas seront automatiquement ignorées par Excel. Les en-têtes doivent être du texte simple, pas des formules, et chaque colonne doit avoir un en-tête unique non vide.
champ
: indique la colonne sur laquelle calculer la varianceTu peux utiliser soit le nom de l'en-tête entre guillemets (comme "Prix" ou "Délai"), soit le numéro de colonne (1 pour la première colonne, 2 pour la deuxième, etc.).
Utilise toujours le nom de colonne entre guillemets : c'est plus lisible et plus robuste si tu insères ou supprimes une colonne. Si tu écris "Chiffre d'affaires", tu sauras immédiatement ce que calcule ta formule dans 6 mois.
Attention : Le champ spécifié doit contenir des valeurs numériques. Si ton champ contient du texte ou des cellules vides, ces valeurs seront ignorées dans le calcul. Si toutes les valeurs filtrées sont non numériques, BDVARP retourne #VALEUR!.
critères
: une petite zone séparée de ton tableau qui définit quelles données filtrerLa première ligne contient les en-têtes (identiques à ceux de ta base), la deuxième ligne et les suivantes contiennent les critères de filtrage.
Par exemple, pour analyser uniquement les ventes de la région Nord, ta zone critères ressemble à : F1 = Région, F2 = Nord. Tu peux combiner plusieurs critères sur différentes colonnes (critères ET) ou sur la même colonne en lignes différentes (critères OU).

Exemples pratiques pas à pas
Comment calculer la variance d'une population entière avec la fonction BDVARP
Tes sept salariés de l'IT ne sont pas un échantillon tiré d'un effectif plus large, ils sont le service au complet, et la direction veut chiffrer la dispersion de leurs salaires pour préparer la prochaine grille. Tes quatorze salariés sont listés avec leur département et leur salaire, et le calcul ne doit porter que sur l'IT. La fonction BDVARP filtre le tableau via une zone de critères et rend la variance des lignes retenues en divisant par leur nombre exact.
- 1Dans une cellule, écris
=BDVARP(. - 2En 1er argument : sélectionne la base entière avec sa ligne d'en-têtes,
A1:C15. La fonction a besoin des titresEmployé,DépartementetSalairepour retrouver une colonne à partir de son nom. Une plage démarrée à la première ligne de données la priverait de ce repère. - 3En 2ᵉ argument : écris le nom de la colonne à mesurer,
"Salaire", orthographié exactement comme le titre de la colonne C. Les guillemets sont ce qui le distingue d'une référence de cellule. Seules les valeurs de cette colonne entrent ensuite dans le calcul de la dispersion. - 4En 3ᵉ argument : sélectionne la zone de critères,
E1:E2. Elle se prépare avant la formule, à l'écart de la base, avec l'en-têteDépartementrecopié en E1 et la valeurITjuste en dessous en E2. Ce couple de cellules ne choisit pas seulement les lignes lues, il décide aussi de ce que le calcul traite comme la population entière. - 5Ferme la parenthèse et appuie sur Entrée. Remplacer
ITpar un autre département en E2 suffit ensuite à relancer le calcul sur ce service, sans toucher à la formule.
=BDVARP(A1:C15; "Salaire"; E1:E2)Comment distinguer le 0 de la fonction BDVARP de l'erreur #DIV/0!
Ta zone de critères est pilotée par une liste déroulante et quelqu'un sélectionne la Direction, qui ne compte qu'une seule personne. La cellule affiche 0, un chiffre parfaitement crédible que personne ne relèvera en réunion, alors qu'il ne signifie pas des salaires homogènes mais une seule ligne à mesurer. Un service absent du tableau, lui, renverrait une erreur bien visible : deux situations à séparer avant de publier quoi que ce soit.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test qui compte les lignes retenues et referme-le,
BDNB(A1:C6; "Salaire"; E1:E2)=0. La fonction BDNB applique la zone de critèresE1:E2, préparée à l'écart de la base avec l'en-têteDépartementen E1 et le service choisi juste en dessous en E2. Comparer son résultat à zéro revient à demander si ce service apparaît quelque part dans le tableau. - 3En 2ᵉ argument : écris le message affiché quand le filtre ne retient rien,
"Aucun salarié dans ce service". Il prend la place du#DIV/0!que la fonction BDVARP renverrait sur une sélection vide. Une phrase en clair dit à celui qui lit la cellule qu'il n'y a rien à mesurer, là où un code d'erreur le laisse chercher la panne. - 4En 3ᵉ argument : écris le second test avec ses deux issues et referme-le,
SI(BDNB(A1:C6; "Salaire"; E1:E2)=1; "Un seul salarié : dispersion nulle"; BDVARP(A1:C6; "Salaire"; E1:E2)). Ce SI intercepte l'effectif réduit à une personne, qui est la situation où la fonction BDVARP rend un chiffre au lieu d'une erreur. La fonction BDVARP occupe la dernière branche et ne calcule donc qu'à partir de deux salaires, avec les trois arguments déjà écrits pour BDNB au-dessus. - 5Ferme la parenthèse du premier SI et appuie sur Entrée. Celle du second SI et celle de la fonction BDVARP ont déjà été refermées à l'étape précédente.
=SI(BDNB(A1:C6; "Salaire"; E1:E2)=0; "Aucun salarié dans ce service"; SI(BDNB(A1:C6; "Salaire"; E1:E2)=1; "Un seul salarié : dispersion nulle"; BDVARP(A1:C6; "Salaire"; E1:E2)))0 sans broncher là où la version échantillon s'arrête sur #DIV/0!. BDNB compte les lignes retenues avant tout calcul : aucune ligne et le message d'absence s'affiche, une seule et la cellule dit pourquoi le zéro n'est pas une mesure. Le vrai danger n'était pas l'erreur, qui se voit, mais le zéro, qui se lit comme un résultat.
Les erreurs fréquentes avec la fonction BDVARP
Deux messages reviennent quand BDVARP cale : #DIV/0! signifie que tes critères ne retiennent aucune ligne (ou une seule), car la variance exige au moins deux valeurs, et #VALEUR! vient d'un champ non numérique ou d'un nom de colonne mal orthographié entre guillemets.
Le danger le plus sournois ne renvoie aucune erreur : confondre BDVARP (population, divise par n) et BDVAR (échantillon, divise par n-1) te donne un chiffre faux mais d'apparence normale. Pense aussi que le résultat sort en unité au carré (euros², jours²), d'où l'intérêt de la racine carrée pour le rendre lisible.
Erreur #DIV/0! : aucune donnée ne correspond aux critères
Si ta zone de critères ne retourne aucune ligne de données, ou qu'une seule, BDVARP retourne #DIV/0!. La variance nécessite au moins 2 valeurs pour être calculée.
Solution : Vérifie que tes critères sont corrects et que l'en-tête de ta zone critères correspond exactement (orthographe, majuscules, espaces) à l'en-tête de ta base. Utilise BDNB avec les mêmes critères pour compter combien d'enregistrements correspondent avant d'appliquer BDVARP.
Erreur #VALEUR! : champ invalide ou non numérique
Cette erreur survient si le champ que tu analyses contient du texte au lieu de nombres, ou si le nom de champ entre guillemets est mal orthographié et n'existe pas dans ta base de données.
Solution : Vérifie que ta colonne de calcul contient bien des nombres. Si tu as des nombres stockés en texte (après un import CSV par exemple), convertis-les avec CNUM() ou en multipliant par 1. Vérifie aussi l'orthographe exacte du nom de champ entre guillemets (espaces, accents, majuscules).
Confusion entre BDVAR et BDVARP
C'est l'erreur la plus courante : utiliser BDVARP (population) quand on devrait utiliser BDVAR (échantillon), ou inversement. Cela donne des résultats incorrects sans message d'erreur, ce qui est particulièrement dangereux.
Solution : Pose-toi la question : "Est-ce que j'ai TOUTES les données de ma population ?" Si oui, BDVARP. Si non (tu travailles sur un échantillon), BDVAR. Tous les employés de l'entreprise = BDVARP. Cinquante employés sondés sur cinq cents = BDVAR.
Plage de base de données sans en-têtes
Si tu oublies d'inclure la ligne d'en-têtes dans ta plage base_de_données, Excel ne peut pas identifier les colonnes et la formule retourne une erreur ou un résultat incorrect.
Solution : Ta plage doit TOUJOURS commencer par la ligne d'en-têtes. Si tes données vont de A2 à D50, ta plage doit être A1:D50 (incluant A1:D1 comme en-têtes). Vérifie que chaque colonne a un en-tête unique et non vide.
Résultat difficile à interpréter (unité au carré)
La variance est exprimée en unité au carré (euros², jours², kg²), ce qui la rend difficile à interpréter intuitivement. Un résultat de 2 500 000 en variance de prix ne parle pas directement.
Solution : Calcule l'écart-type en prenant la racine carrée : =RACINE(BDVARP(...)). L'écart-type est dans la même unité que tes données (euros, jours, kg) et beaucoup plus facile à comprendre. Ou utilise directement BDECARTYPEP qui fait ce calcul automatiquement.

BDVARP vs BDVAR vs BDECARTYPEP vs VAR.P
Utilise BDVARP quand tu as besoin de filtrer une base de données ET que tu analyses une population complète. Pour une interprétation plus directe, BDECARTYPEP retourne l'écart-type dans la même unité que tes données. Pour une simple variance sans filtrage, VAR.P est plus rapide.
| Critère | BDVARP | BDVAR | BDECARTYPEP | VAR.P |
|---|---|---|---|---|
| Type de calcul | Variance population | Variance échantillon | Écart-type population | Variance population |
| Formule mathématique | Σ(x-μ)² / n | Σ(x-μ)² / (n-1) | √[Σ(x-μ)² / n] | Σ(x-μ)² / n |
| Filtrage par critères | ✅ Oui | ✅ Oui | ✅ Oui | ❌ Non |
| Unité du résultat | Unité au carré (€²) | Unité au carré (€²) | Même unité (€) | Unité au carré (€²) |
| Cas d'usage typique | Population filtrée (catalogue, historique) | Échantillon filtré (sondage, test) | Dispersion lisible sur population | Variance simple sans critère |
Questions fréquentes
BDVAR calcule la variance d'un échantillon (divise par n-1) tandis que BDVARP calcule la variance de la population entière (divise par n). Utilise BDVARP uniquement quand tu disposes de toutes les données de ta population, pas seulement d'un sous-ensemble représentatif. BDVARP donne toujours une variance légèrement plus faible que BDVAR pour les mêmes données, car n est supérieur à n-1.
Si tu analyses tous les employés de ton entreprise, toutes les ventes du mois ou toutes les pièces produites, utilise BDVARP (population complète). Si tu analyses un sous-ensemble représentatif (un échantillon de clients, quelques produits testés), utilise BDVAR (échantillon). En cas de doute sur des analyses commerciales, BDVAR est plus conservateur et statistiquement plus correct.
La variance mesure la dispersion de tes données autour de la moyenne. Une variance élevée signifie des résultats très variables (risque élevé, instabilité), une variance faible indique de la stabilité et de la prévisibilité. C'est essentiel en contrôle qualité (processus stables), en finance (volatilité des rendements), en logistique (régularité des délais) et en RH (homogénéité des rémunérations).
La variance est le carré de l'écart-type. L'écart-type est plus facile à interpréter car il est dans la même unité que tes données (euros, jours, kg), tandis que la variance est en unité au carré (euros², jours²).
Pour obtenir l'écart-type à partir de BDVARP, calcule =RACINE(BDVARP(...)). Ou utilise directement BDECARTYPEP qui fait ce calcul automatiquement.
Oui. BDVARP affiche #DIV/0! si aucune donnée ne correspond à tes critères ou si tu n'as qu'une seule valeur. Elle affiche #VALEUR! si ton champ n'est pas numérique ou si le nom de colonne est mal orthographié.
Pour diagnostiquer, utilise d'abord BDNB avec les mêmes critères : si le résultat est 0 ou 1, ton problème vient des critères et non de BDVARP elle-même.
Pour aller plus loin
Continue sur ta lancée après la fonction BDVARP : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



