BDSOMME (DSUM en anglais) est une fonction puissante pour additionner des valeurs dans une base de données selon des critères complexes. Contrairement à SOMME.SI ou SOMME.SI.ENS, elle utilise une zone de critères séparée qui te permet de définir des conditions avancées de type OU et ET combinées.
Cette fonction est particulièrement utile quand tu gères des tableaux de données structurées et que tu veux appliquer plusieurs filtres dynamiques sans multiplier les formules. Elle brille dans les tableaux de bord où l'utilisateur doit pouvoir modifier les critères sans toucher aux formules.
Syntaxe de la fonction BDSOMME
=BDSOMME(base_de_données; champ; critères)La zone de critères doit OBLIGATOIREMENT contenir une ligne d'en-têtes identiques à ceux de la base de données (majuscules, accents et espaces compris). C'est la différence fondamentale avec SOMME.SI.ENS : BDSOMME exige une zone dédiée, mais cette contrainte offre une flexibilité bien supérieure pour les conditions OU.
Comprendre chaque paramètre de la fonction BDSOMME
Les trois arguments s'enchaînent dans un ordre précis : tu pointes d'abord ta base avec ses en-têtes, puis tu nommes la colonne à additionner (entre guillemets, comme "Ventes"), et enfin tu désignes la zone de critères. Aucun n'est facultatif ici, et c'est justement cette zone de critères séparée, en troisième position, qui te donne les conditions OU que SOMME.SI.ENS ne sait pas faire.
base_de_données
: la plage de cellules qui constitue ta base de données, incluant obligatoirement les en-têtes de colonnesPar exemple A1:E100 où A1:E1 contient les titres des colonnes. Les en-têtes sont essentiels : BDSOMME les utilise pour identifier les champs à traiter.
Si tu réorganises tes colonnes, la formule reste juste tant que les en-têtes ne changent pas. C'est l'un des avantages des fonctions BD* par rapport aux SOMME.SI qui s'appuient sur des positions de colonnes.
Astuce : Transforme ta plage en tableau Excel structuré (Ctrl+T) et utilise son nom : =BDSOMME(TableVentes; "Montant"; CritèresVentes). La formule s'adapte automatiquement si tu ajoutes des lignes.
champ
: le nom de la colonne à additionner, entre guillemets comme `"Ventes"`, ou son numéro de position (`1` pour la première colonne, `2` pour la deuxième, etc.)Utiliser le nom est plus lisible et évite les erreurs si tu réorganises tes colonnes.
Le nom doit correspondre exactement à l'en-tête de ta base de données, caractère par caractère.
Attention : Oublier les guillemets autour du nom de champ provoque une erreur #VALEUR!. Écris toujours "Ventes" et jamais Ventes sans guillemets.
critères
: une plage séparée contenant les en-têtes de colonnes (exactement comme dans ta base) et les conditions en dessousPar exemple G1:H2 où G1:H1 contient les noms de colonnes et G2:H2 les valeurs à filtrer.
Plusieurs cellules sur une même ligne fonctionnent comme un ET logique (toutes les conditions doivent être vraies simultanément). Plusieurs lignes de conditions fonctionnent comme un OU logique (au moins une ligne suffit). Tu peux combiner les deux pour des filtres très précis : plusieurs colonnes par ligne pour le ET, plusieurs lignes pour le OU.
Astuce : Crée ta zone de critères au-dessus ou à côté de ta base de données et rends les valeurs modifiables par l'utilisateur. Tu peux même y placer des formules comme =MOIS(AUJOURDHUI()) pour des critères dynamiques qui se mettent à jour automatiquement.
Pas envie d'écrire la formule BDSOMME à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Commercial : calculer les ventes par région
Tu dois analyser tes ventes par région. Ta base de données contient les ventes de toute l'équipe, mais tu veux connaître uniquement le total pour la région Nord.
| A | B | C | |
|---|---|---|---|
| 1 | Vendeur | Région | Ventes |
| 2 | Marie | Nord | 2 500 € |
| 3 | Pierre | Sud | 1 800 € |
| 4 | Sophie | Nord | 3 200 € |
| 5 | Lucas | Est | 1 950 € |
| 6 | Emma | Nord | 2 800 € |
=BDSOMME(A1:C6; "Ventes"; E1:E2)La zone de critères (en-tête Région en E1, valeur Nord en E2) ne retient que les lignes du Nord, puis la fonction additionne leurs ventes : Marie + Sophie + Emma = 8 500 €. Si tu remplaces Nord par Sud dans la zone, le total se recalcule instantanément.
Astuce de pro : Pour basculer rapidement entre régions, ajoute une liste déroulante (Données > Validation) dans la cellule de critère. L'utilisateur sélectionne la région, BDSOMME recalcule sans qu'il touche à la formule.
Comptable : additionner les factures impayées d'un client
Tu dois calculer le montant total des factures impayées pour un client spécifique afin de préparer les relances. Ta base contient toutes les factures avec leur statut, et tu veux croiser deux critères : le client ET le statut impayé.
| A | B | C | |
|---|---|---|---|
| 1 | Client | Statut | Montant |
| 2 | Entreprise ABC | Payée | 5 000 € |
| 3 | Entreprise ABC | Impayée | 2 300 € |
| 4 | Société XYZ | Impayée | 1 500 € |
| 5 | Entreprise ABC | Impayée | 3 700 € |
| 6 | Client Pro | Payée | 4 200 € |
=BDSOMME(A1:C6; "Montant"; E1:F2)La formule croise deux critères placés sur la même ligne de la zone (Client = Entreprise ABC ET Statut = Impayée), donc un ET logique, et additionne les montants qui vérifient les deux conditions : 2 300 + 3 700 = 6 000 €. Un simple changement de nom de client dans la zone te donne le solde impayé de n'importe quel compte.
Gestionnaire de stock : calculer le stock des produits critiques
Tu veux additionner la quantité totale des produits dont le stock est inférieur à 50 unités pour anticiper les commandes urgentes. Les opérateurs de comparaison comme <50 fonctionnent directement dans la zone de critères.
| A | B | C | |
|---|---|---|---|
| 1 | Produit | Catégorie | Stock |
| 2 | Produit A | Électronique | 25 |
| 3 | Produit B | Mobilier | 120 |
| 4 | Produit C | Électronique | 35 |
| 5 | Produit D | Bureautique | 45 |
| 6 | Produit E | Électronique | 80 |
=BDSOMME(A1:C6; "Stock"; E1:E2)Ici, la fonction lit l'opérateur de comparaison <50 posé sous l'en-tête Stock et n'additionne que les produits sous ce seuil : Produit A (25) + Produit C (35) + Produit D (45) = 105. Tous les opérateurs sont admis (<50, >=100, <>0) et tu peux rendre le seuil dynamique en le plaçant dans une cellule référencée par le critère.
Contrôleur de gestion : somme des dépenses de deux départements (OU)
Tu dois calculer le total des dépenses des départements Marketing OU Commercial pour préparer ton rapport budgétaire. Aucune autre fonction de somme conditionnelle ne gère nativement le OU : c'est là que BDSOMME brille.
| A | B | C | |
|---|---|---|---|
| 1 | Département | Type | Montant |
| 2 | Marketing | Publicité | 12 000 € |
| 3 | IT | Logiciels | 8 500 € |
| 4 | Commercial | Déplacements | 5 200 € |
| 5 | Marketing | Événements | 9 800 € |
| 6 | RH | Formation | 6 300 € |
| 7 | Commercial | Cadeaux clients | 2 400 € |
=BDSOMME(A1:C7; "Montant"; E1:E3)La formule lit deux valeurs placées sous le même en-tête mais sur des lignes différentes (Marketing puis Commercial), ce qui crée un OU logique, et additionne les montants des deux départements : Marketing (12 000 + 9 800) + Commercial (5 200 + 2 400) = 29 400 €. Pour élargir le périmètre, il suffit d'ajouter une ligne dans la zone et d'étendre la référence.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction BDSOMME
Tout se joue sur les en-têtes : ceux de ta zone de critères doivent recopier au caractère près ceux de ta base (un accent ou un espace en trop, et tu récoltes un #VALEUR!). Le reste vient des mêmes causes : un nom de champ sans guillemets, une zone de critères qui oublie sa ligne de titres, ou une base dont la première ligne n'est pas une vraie ligne d'en-têtes.
Erreur #VALEUR! : en-têtes non correspondants
C'est l'erreur la plus fréquente avec BDSOMME. Elle survient quand les en-têtes de ta zone de critères ne correspondent pas exactement aux en-têtes de ta base de données : majuscules, accents ou espaces différents.
Solution : Copie-colle les en-têtes depuis ta base de données vers ta zone de critères au lieu de les retaper. Vérifie aussi qu'il n'y a pas d'espaces invisibles avant ou après le texte avec =SUPPRESPACE(cellule).
Nom de champ non reconnu : résultat vide ou erreur
Le nom du champ entre guillemets ne correspond à aucun en-tête de la base de données, ou les guillemets sont absents.
Solution : Vérifie que le nom du champ est entre guillemets et correspond exactement à un en-tête de colonne. En alternative, utilise le numéro de colonne (2 pour la deuxième colonne), mais c'est moins lisible et fragile si tu réorganises les colonnes.
Zone de critères sans ligne d'en-têtes
BDSOMME nécessite obligatoirement des en-têtes dans la zone de critères. Si tu mets directement les valeurs sans titre, la formule ne fonctionnera pas correctement.
Solution : Ta zone de critères doit toujours avoir au moins deux lignes : la première avec les noms de colonnes (identiques à la base), la seconde avec les valeurs à filtrer. Un oubli de la ligne d'en-têtes est la cause de 80% des erreurs avec toutes les fonctions BD*.
Base de données sans en-têtes dans la plage référencée
Si ta plage base_de_données ne commence pas par une ligne d'en-têtes, BDSOMME considère la première ligne de données comme des titres et ignore ces données dans les calculs.
Solution : Assure-toi que la première ligne de ta plage base_de_données contient bien les titres des colonnes. C'est une règle absolue pour toutes les fonctions BD*.
Astuces avancées avec BDSOMME
Laisse une cellule vide pour inclure tous les enregistrements
Si tu laisses une cellule de critères vide (avec seulement l'en-tête), BDSOMME ignore ce critère et inclut tous les enregistrements pour cette colonne. C'est parfait pour créer des filtres optionnels : si l'utilisateur ne remplit pas un critère, tous les enregistrements sont pris en compte.
Résultat : un tableau de bord flexible où chaque cellule de filtre est indépendante.
Crée des critères calculés avec des formules
Dans ta zone de critères, tu peux utiliser une formule pour définir un critère dynamique. Par exemple, pour filtrer les ventes du mois en cours, mets =">="&DEBUT.MOIS(AUJOURDHUI();0) dans ta cellule de critère.
Le critère se met à jour automatiquement chaque mois sans que tu touches à la formule.
BDSOMME vs SOMME vs SOMME.SI vs SOMME.SI.ENS
Utilise BDSOMME quand tu as besoin de conditions OU ou d'un tableau de critères modifiable par l'utilisateur. Pour des cas simples avec un ou deux critères ET, SOMME.SI ou SOMME.SI.ENS seront plus rapides à mettre en place.
| Critère | BDSOMME | SOMME | SOMME.SI | SOMME.SI.ENS |
|---|---|---|---|---|
| Critères multiples | ET et OU | Non | 1 seul | Plusieurs (ET uniquement) |
| Conditions OU combinées | Oui (natif) | Non | Non | Non |
| Syntaxe | Zone séparée requise | Très simple | Simple | Moyenne |
| Critères dynamiques | Facile (cellules modifiables) | Non | Avec formules | Avec formules |
| Cas d'usage typique | Tableaux de bord interactifs | Totaux simples | Filtrage basique | Filtrage multicritères ET |
Questions fréquentes sur la fonction BDSOMME
Quelle est la différence entre BDSOMME et SOMME.SI.ENS ?
BDSOMME utilise une zone de critères séparée avec des en-têtes, ce qui permet des conditions plus complexes : OU entre lignes, ET entre colonnes. SOMME.SI.ENS est plus simple pour des critères basiques en ET, mais elle ne gère pas nativement les conditions OU. Pour combiner OU et ET dans une même formule, BDSOMME est la seule option directe.
Comment définir correctement la zone de critères ?
La zone de critères doit obligatoirement avoir les mêmes en-têtes que ta base de données (majuscules, accents, espaces identiques). Place les conditions sous les en-têtes : une ligne = conditions ET (toutes doivent être vraies), plusieurs lignes = conditions OU (au moins une suffit).
Peut-on utiliser des opérateurs de comparaison dans les critères ?
Oui. Tu peux utiliser >, <, >=, <=, <> dans ta zone de critères. Par exemple, pour des ventes supérieures à 1000, mets Ventes en en-tête et >1000 dans la cellule en dessous. Les guillemets ne sont pas nécessaires dans la cellule de la feuille, mais si tu construis le critère dans une formule, utilise des guillemets : ">1000".
BDSOMME fonctionne-t-elle avec des tableaux structurés ?
Oui, tu peux utiliser BDSOMME avec des tableaux Excel structurés. Utilise la référence du tableau comme base_de_données et le nom de colonne entre guillemets pour le champ. C'est même recommandé car la formule s'adapte automatiquement quand tu ajoutes des lignes.
Pourquoi BDSOMME renvoie-t-elle #VALEUR! ?
Cette erreur survient généralement quand les en-têtes de ta zone de critères ne correspondent pas exactement aux en-têtes de ta base de données. Vérifie l'orthographe exacte, les majuscules et les espaces. Vérifie aussi que le nom de champ est bien entre guillemets et existe dans ta base.
Pour aller plus loin
Les fonctions similaires : SOMME.SI.ENS, SOMME.SI, BDMOYENNE, BDNB, BDMAX
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

