Aller au contenu principal

Qu'est-ce que la fonction BDPRODUIT ?

Définition
La fonction BDPRODUIT extrait les valeurs d'un champ d'une base de données structurée, filtre selon une zone de critères, puis multiplie toutes les valeurs correspondantes. Elle fait partie de la famille des fonctions BD (base de données) d'Excel.

Tu sors BDPRODUIT (DPRODUCT en anglais) quand ton filtre doit rester modifiable sans retoucher la formule, par exemple depuis une liste déroulante ou une petite zone que d'autres personnes peuvent changer. Elle te dispense de rouvrir la formule à chaque fois que le critère change, alors qu'une multiplication classique t'obligerait à retaper la plage concernée.

C'est la fonction de choix en finance pour les intérêts composés filtrés par client ou par période, en statistiques pour les probabilités conditionnelles, et en analyse de fiabilité pour les taux de conformité cumulés. Si tu te retrouves à écrire =PRODUIT(SI(...)) en formule matricielle, BDPRODUIT simplifie tout ça en une formule lisible.

Syntaxe

Clique sur un argument pour aller à son explication.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction BDPRODUIT

Les trois arguments s'enchaînent toujours dans le même ordre : tu pointes d'abord ton tableau complet (en-têtes compris), puis la colonne à multiplier, et enfin la petite zone à part où tu poses ton filtre. Aucun n'est facultatif ici, contrairement à beaucoup de fonctions Excel.

Le deuxième argument se donne au choix par le nom de la colonne entre guillemets ("Taux") ou par son numéro de position : le nom est plus sûr, car ta formule survit à une réorganisation des colonnes.

1

base_de_données

: la plage complète de ta base de données, en-têtes inclus

Par exemple A1:D100 si tes données vont de la colonne A à D avec les titres des colonnes en ligne 1. Les en-têtes sont essentiels : Excel s'en sert pour identifier les colonnes.

Pense à cette plage comme à ton tableau complet : toutes les colonnes dont tu pourrais avoir besoin pour filtrer ou calculer doivent être incluses.

2

champ

: la colonne dont tu veux multiplier les valeurs

Tu peux l'indiquer de deux façons : soit par son nom entre guillemets comme "Taux", soit par sa position (1 pour la première colonne, 2 pour la deuxième, etc.).

Utiliser le nom est plus clair et ton fichier reste valide même si tu réorganises les colonnes. C'est la méthode recommandée pour éviter les erreurs silencieuses.

3

critères

: une zone séparée (souvent 2-3 lignes) où tu définis tes conditions de filtrage

La première ligne contient les noms de colonnes (exactement comme dans ta base), et les lignes suivantes contiennent les valeurs recherchées.

Par exemple, si tu veux filtrer sur Client = "Dupont", tu créeras une mini-table avec Client en en-tête et Dupont en dessous. Tu peux ajouter plusieurs colonnes côte à côte pour des conditions ET, ou des lignes supplémentaires pour des conditions OU.

Attention : Les en-têtes de la zone de critères doivent correspondre exactement aux en-têtes de la base. Un accent manquant, une majuscule différente ou un espace invisible suffit à faire rater le filtrage sans message d'erreur clair.

Le savais-tu ?
Pour un rendement cumulé, on multiplie les facteurs (1,03 puis 1,05...) et on n'additionne surtout pas les pourcentages : additionner 3 % et 5 % sous-estime l'effet des intérêts composés. BDPRODUIT fait cette multiplication sur les seules lignes qui passent tes critères.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment multiplier entre elles les valeurs d'une colonne selon un critère avec la fonction BDPRODUIT

Ton comité d'investissement veut savoir ce que donne l'enchaînement des coefficients des projets en phase de croissance, et l'addition ne répond pas à la question : des coefficients qui s'appliquent les uns après les autres se multiplient, ils ne s'ajoutent pas. Tes neuf projets sont listés avec leur phase et leur coefficient, et le calcul ne doit porter que sur la croissance. La fonction BDPRODUIT lit une zone de critères posée à côté du tableau et multiplie entre elles les seules valeurs des lignes qui y répondent.

Les étapes
  1. 1
    Dans une cellule, écris =BDPRODUIT(.
  2. 2
    En 1er argument : sélectionne le tableau entier avec sa ligne d'en-têtes, A1:C10. La ligne 1 est indispensable, car c'est en lisant les titres Projet, Phase et Coefficient que la fonction sait quelle colonne répond aux noms employés dans les deux arguments suivants.
  3. 3
    En 2ᵉ argument : écris le nom de la colonne à multiplier entre guillemets, "Coefficient". Ce nom doit reprendre le titre de la colonne C au caractère près, et il vaut mieux que la position 3, qui deviendrait fausse le jour où tu déplacerais une colonne.
  4. 4
    En 3ᵉ argument : sélectionne la petite zone qui porte le filtre, E1:E2. Tu la prépares à côté du tableau avant d'écrire la formule, avec le titre Phase recopié à l'identique en E1 et la valeur Croissance en E2, et il te suffit d'y écrire Amorçage pour que le produit bascule sur l'autre phase sans retoucher la formule.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=BDPRODUIT(A1:C10; "Coefficient"; E1:E2)
Explication
La fonction ne garde que les quatre projets en phase de croissance et multiplie leurs coefficients les uns par les autres au lieu de les additionner. Le 1,3976 obtenu se lit comme un cumul : enchaînés les uns après les autres, ces quatre coefficients multiplient la mise de départ par un peu moins de 1,4.
Exemple 2

Comment convertir le produit de la fonction BDPRODUIT en pourcentage de progression

Tu dois présenter la performance des projets en croissance à des gens qui ne convertiront pas un multiplicateur de tête. Un chiffre comme 1,2822 est exact mais muet : personne ne dira à voix haute que la mise a été multipliée par 1,2822. Tu veux la même information exprimée en pourcentage de progression, la seule forme qui se commente en réunion.

Les étapes
  1. 1
    Dans une cellule, écris =(. Cette parenthèse s'ouvre avant la fonction parce qu'elle doit englober à la fois le produit et la soustraction qui le suit, sans quoi la multiplication par 100 ne porterait pas sur la bonne valeur.
  2. 2
    Écris BDPRODUIT( à l'intérieur, puis :
    1. aEn 1er argument : sélectionne le tableau entier avec sa ligne d'en-têtes, A1:C7. Les six projets occupent les lignes 2 à 7, et les titres de la ligne 1 sont ce qui permet à la fonction d'identifier les colonnes.
    2. bEn 2ᵉ argument : écris le nom de la colonne à multiplier entre guillemets, "Coefficient". Elle seule entre dans le produit, les deux autres colonnes servant uniquement à nommer les projets et à les filtrer.
    3. cEn 3ᵉ argument : sélectionne la zone qui porte le filtre, E1:E2. Elle est préparée à côté du tableau, avec le titre Phase en E1 et la valeur Croissance en E2, et elle ramène le calcul aux trois projets de cette phase.
  3. 3
    Ferme la parenthèse de la fonction BDPRODUIT et écris -1 juste derrière. Le produit vaut 1,2822 et contient encore la mise de départ, si bien que lui retirer 1 ne laisse que la part gagnée, 0,2822.
  4. 4
    Ferme la parenthèse ouverte au départ, complète par *100 et appuie sur Entrée. Tu peux aussi t'arrêter à la soustraction et appliquer un format de cellule en pourcentage, ce qui affiche la même progression sans écrire *100.
Voici la formule que tu obtiens à la fin :=(BDPRODUIT(A1:C7; "Coefficient"; E1:E2)-1)*100
Explication
Le produit brut vaut 1,2822, un multiplicateur que personne ne lit spontanément comme une performance. Retrancher 1 isole la part gagnée (0,2822) et multiplier par 100 la traduit en points : les trois projets en croissance ont fait progresser la mise de 28,22 %. Le calcul sous-jacent ne change pas, seule la lecture devient présentable.
Exemple 3

Comment repérer le 0 renvoyé par la fonction BDPRODUIT quand aucune ligne ne correspond

Ta zone de critères est pilotée par une liste déroulante et quelqu'un y saisit une phase qui n'existe pas dans le tableau, ici Déclin. La cellule n'affiche aucune erreur : elle affiche 0, ce qui pour un produit se lit comme un anéantissement complet de la mise. Un rapport qui annonce zéro à la place de rien du tout, c'est une décision d'investissement prise sur un malentendu.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 1er argument : écris le comptage des lignes retenues et compare-le à zéro, BDNB(A1:C7; "Coefficient"; E1:E2)=0. La zone de filtre porte le titre Phase en E1 et la phase choisie en E2, ici Déclin, et la fonction BDNB y renvoie 0 puisqu'aucune ligne du tableau ne porte cette phase.
  3. 3
    En 2ᵉ argument : écris entre guillemets le message à afficher quand ce comptage vaut zéro, "Aucun projet dans cette phase". Il dit clairement qu'il n'y a rien à multiplier, là où un 0 se lirait comme une mise réduite à néant.
  4. 4
    En 3ᵉ argument : écris le produit à calculer dans tous les autres cas et referme-le, BDPRODUIT(A1:C7; "Coefficient"; E1:E2). Il reprend les trois mêmes arguments que le comptage et dans le même ordre, et il ne s'exécute que si au moins une ligne répond au filtre.
  5. 5
    Ferme la parenthèse de la fonction SI et appuie sur Entrée. Celles des fonctions BDNB et BDPRODUIT ont déjà été refermées dans leurs étapes.
Une fois les morceaux assemblés, ta formule donne ça :=SI(BDNB(A1:C7; "Coefficient"; E1:E2)=0; "Aucun projet dans cette phase"; BDPRODUIT(A1:C7; "Coefficient"; E1:E2))
Explication
Quand aucune ligne ne répond aux critères, la fonction BDPRODUIT renvoie 0 et non 1, et c'est le pire des zéros : lu comme un multiplicateur, il annonce une mise réduite à néant alors qu'il signale seulement une phase vide. BDNB compte les lignes retenues avant tout calcul, et le produit ne s'exécute que s'il en reste au moins une.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction BDPRODUIT

Avec BDPRODUIT, presque tout se joue dans la zone de critères : un en-tête qui ne colle pas au mot près (accent, majuscule, espace invisible) déclenche un #VALEUR!, et un filtre qui ne retrouve aucune ligne renvoie #DIV/0! puisqu'il n'y a rien à multiplier.

Le piège plus sournois est silencieux : si une seule valeur retenue vaut 0, le produit entier tombe à 0 sans aucune alerte. Et place toujours ta zone de critères en dehors du tableau, sinon le chevauchement fausse le calcul.

#VALEUR! : les en-têtes de la zone de critères ne correspondent pas

Cette erreur survient quand le nom de colonne dans ta zone de critères ne correspond pas exactement à celui de ta base de données. Excel est sensible aux majuscules, espaces et accents.

Solution : Copie-colle l'en-tête depuis ta base de données vers ta zone de critères au lieu de le retaper. Cela garantit une correspondance parfaite. Tu peux aussi utiliser le numéro de colonne (1, 2, 3...) au lieu du nom.

Résultat = 0 alors que des valeurs existent dans la base

Si BDPRODUIT renvoie 0, au moins une des valeurs correspondant aux critères est égale à 0. En mathématiques, n'importe quoi multiplié par 0 donne 0.

Solution : Vérifie tes données sources. Soit tu as réellement un 0 (auquel cas le résultat est correct), soit une cellule vide est interprétée comme 0. Ajoute un critère ">0" dans ta zone de critères pour exclure les valeurs nulles si nécessaire.

#DIV/0! : aucune ligne ne correspond aux critères

Cette erreur apparaît quand aucune ligne de ta base ne correspond à tes critères. Excel ne peut pas calculer un produit sans données.

Solution : Vérifie tes critères. Souvent c'est un problème de casse (majuscule/minuscule) ou d'espaces invisibles. Utilise EPURAGE pour nettoyer les espaces, ou allège tes critères pour tester. Protège aussi la formule avec SIERREUR : =SIERREUR(BDPRODUIT(...); "Aucune donnée").

Zone de critères qui chevauche la base de données

Si ta zone de critères se trouve à l'intérieur de ta plage de base_de_données, Excel peut être confus et renvoyer des résultats incorrects.

Solution : Place toujours ta zone de critères complètement en dehors de ta base de données. Une bonne pratique est de la mettre plusieurs lignes au-dessus ou plusieurs colonnes à droite de tes données principales.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

BDPRODUIT vs PRODUIT vs SOMMEPROD vs BDSOMME

Prends BDPRODUIT dès que tu dois multiplier des valeurs mais seulement celles qui passent un filtre : PRODUIT ignore les critères, et SOMMEPROD ne sait filtrer qu'en l'enrobant d'une formule matricielle peu lisible. Pour des taux composés par client ou par période, c'est le bon réflexe.

Si tu veux additionner au lieu de multiplier sur le même tableau filtré, passe à BDSOMME : elle partage exactement la même zone de critères, l'opération seule change.

CritèreBDPRODUITPRODUITSOMMEPRODBDSOMME
Filtrage par critèresOuiNonAvec formule matricielleOui
OpérationMultiplicationMultiplicationSomme de produitsAddition
Base de données requiseOuiNonNonOui
Complexité⭐⭐⭐⭐⭐⭐⭐⭐
Cas d'usage typiqueTaux composés filtrésMultiplication simpleCalculs pondérésTotaux filtrés
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec BDPRODUIT

1Astuce

Critères multiples en combinaison OU

Pour un critère OU (par exemple, Département = Finance OU Département = RH), place les valeurs sur des lignes différentes dans ta zone de critères. Excel multiplie les valeurs qui correspondent à au moins un des critères.
Tu peux ainsi analyser plusieurs catégories en une seule formule sans dupliquer les calculs.

2Astuce

Combiner avec d'autres fonctions BD pour un tableau de bord cohérent

Tu peux utiliser la même zone de critères pour BDSOMME, BDMOYENNE et BDNB simultanément. Crée une zone de critères commune et toutes tes statistiques portent sur exactement le même sous-ensemble de données.
Idéal pour les rapports de gestion où la cohérence entre les indicateurs est essentielle.

3Astuce

Convertir le produit en pourcentage de croissance

Quand tu utilises BDPRODUIT avec des facteurs de croissance (1,05, 1,03...), le résultat est un facteur total. Pour obtenir le pourcentage de croissance directement : =(BDPRODUIT(base;champ;critères) - 1) * 100.
Exemple : un résultat de 1,1449 devient 14,49% de croissance totale.

L’erreur fatale
Une seule valeur à 0 parmi les lignes filtrées, et BDPRODUIT renvoie 0 sans le moindre avertissement, car tout produit par zéro vaut zéro. Si ce zéro est en réalité une cellule vide ou une donnée manquante, ajoute le critère supérieur à 0 dans ta zone pour l'écarter.
FAQ

Questions fréquentes

PRODUIT multiplie simplement les cellules que tu sélectionnes, tandis que BDPRODUIT extrait automatiquement les valeurs d'une base de données selon des critères avant de les multiplier. C'est comme la différence entre additionner à la main une liste filtrée et utiliser un filtre automatique. Dès que tu dois filtrer avant de multiplier, BDPRODUIT est plus lisible et plus robuste qu'une formule matricielle =PRODUIT(SI(...)).

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction BDPRODUIT : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir