Qu'est-ce que la fonction BDPRODUIT ?
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
=BDPRODUIT(base_de_données; champ; critères)Clique sur un argument pour aller à son explication.

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.
base_de_données
: la plage complète de ta base de données, en-têtes inclusPar 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.
champ
: la colonne dont tu veux multiplier les valeursTu 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.
critères
: une zone séparée (souvent 2-3 lignes) où tu définis tes conditions de filtrageLa 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.

Exemples pratiques pas à pas
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.
- 1Dans une cellule, écris
=BDPRODUIT(. - 2En 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 titresProjet,PhaseetCoefficientque la fonction sait quelle colonne répond aux noms employés dans les deux arguments suivants. - 3En 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 position3, qui deviendrait fausse le jour où tu déplacerais une colonne. - 4En 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 titrePhaserecopié à l'identique en E1 et la valeurCroissanceen E2, et il te suffit d'y écrireAmorçagepour que le produit bascule sur l'autre phase sans retoucher la formule. - 5Ferme la parenthèse et appuie sur Entrée.
=BDPRODUIT(A1:C10; "Coefficient"; E1:E2)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.
- 1Dans 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Écris
BDPRODUIT(à l'intérieur, puis :- 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. - 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. - cEn 3ᵉ argument : sélectionne la zone qui porte le filtre,
E1:E2. Elle est préparée à côté du tableau, avec le titrePhaseen E1 et la valeurCroissanceen E2, et elle ramène le calcul aux trois projets de cette phase.
- aEn 1er argument : sélectionne le tableau entier avec sa ligne d'en-têtes,
- 3Ferme la parenthèse de la fonction BDPRODUIT et écris
-1juste 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. - 4Ferme la parenthèse ouverte au départ, complète par
*100et 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.
=(BDPRODUIT(A1:C7; "Coefficient"; E1:E2)-1)*100Comment 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.
- 1Dans une cellule, écris
=SI(. - 2En 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 titrePhaseen E1 et la phase choisie en E2, iciDéclin, et la fonction BDNB y renvoie0puisqu'aucune ligne du tableau ne porte cette phase. - 3En 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ù un0se lirait comme une mise réduite à néant. - 4En 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. - 5Ferme 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.
=SI(BDNB(A1:C7; "Coefficient"; E1:E2)=0; "Aucun projet dans cette phase"; BDPRODUIT(A1:C7; "Coefficient"; E1:E2))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.
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.

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ère | BDPRODUIT | PRODUIT | SOMMEPROD | BDSOMME |
|---|---|---|---|---|
| Filtrage par critères | Oui | Non | Avec formule matricielle | Oui |
| Opération | Multiplication | Multiplication | Somme de produits | Addition |
| Base de données requise | Oui | Non | Non | Oui |
| Complexité | ⭐⭐⭐ | ⭐ | ⭐⭐ | ⭐⭐⭐ |
| Cas d'usage typique | Taux composés filtrés | Multiplication simple | Calculs pondérés | Totaux filtrés |

Astuces avancées avec BDPRODUIT
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.
Combiner avec d'autres fonctions BD pour un tableau de bord cohérent
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.
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(...)).
BDPRODUIT renvoie #DIV/0!. C'est normal : si aucune valeur ne correspond, Excel ne peut pas calculer de produit. Vérifie toujours que tes critères correspondent à au moins une ligne.
Protège la formule avec SIERREUR(BDPRODUIT(...); 0) ou SIERREUR(BDPRODUIT(...); "Aucune donnée") pour éviter les messages d'erreur dans tes rapports.
Oui. Pour des conditions ET (département = Finance ET année = 2024), place les conditions côte à côte dans la même ligne de ta zone de critères. Pour des conditions OU, place les valeurs sur des lignes différentes. Chaque colonne de critères représente un filtre supplémentaire, et tu peux combiner autant de conditions que nécessaire.
Oui, mais attention au signe du résultat. Multiplier un nombre impair de valeurs négatives donne un résultat négatif ; un nombre pair de valeurs négatives donne un résultat positif (négatif × négatif = positif). Si tu travailles avec des taux de variation (pouvant être négatifs), vérifie que le signe du résultat correspond bien à ce que tu attends mathématiquement.
Si une seule valeur vaut 0, le produit entier sera 0. C'est mathématiquement correct mais peut fausser ton analyse si ce zéro est une anomalie ou une donnée manquante.
Ajoute un critère ">0" dans ta zone de critères pour exclure les zéros si nécessaire, ou vérifie tes données sources avant de lancer le calcul.
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



