BDLIRE (DGET en anglais) est une fonction qui extrait une valeur unique d'une base de données selon des critères précis définis dans une zone séparée. Contrairement à RECHERCHEV qui ne peut chercher que dans une seule colonne, BDLIRE te permet de croiser plusieurs critères pour récupérer exactement l'information dont tu as besoin.
Concrètement, c'est elle qui te permet de retrouver l'email du responsable achats d'une entreprise précise, le stock d'un produit dans un entrepôt donné, le salaire d'un employé dans un département spécifique, ou le budget d'un projet pour une année donnée. Une zone de critères bien construite remplace avantageusement une colonne auxiliaire ou des imbrications complexes.
Syntaxe de la fonction BDLIRE
=BDLIRE(base_de_données; champ; critères)BDLIRE exige un résultat unique : si plusieurs lignes correspondent aux critères, elle renvoie #VALEUR!. Ce comportement est volontaire, c'est une garantie d'unicité. Si tu veux agréger plusieurs correspondances, utilise BDSOMME ou BDMOYENNE.
Comprendre chaque paramètre de la fonction BDLIRE
Les trois arguments s'enchaînent dans cet ordre : d'abord ta base avec ses en-têtes, puis le champ que tu veux récupérer, enfin la zone de critères. Aucun n'est facultatif, et c'est ce troisième qui fait toute la différence : il vit dans une plage séparée, avec ses propres en-têtes identiques à ceux de la base, et c'est là que tu poses tes conditions.
base_de_données
: la plage de cellules qui contient ta base de données, en-têtes inclusPar exemple A1:D100. La première ligne doit absolument contenir les noms de colonnes : Excel s'en sert pour identifier les champs. Sans en-têtes, BDLIRE ne fonctionnera pas.
Tu peux aussi nommer cette plage (ex : VentesAnnuelles) et utiliser ce nom dans la formule pour la rendre plus lisible et faciliter la maintenance.
Astuce : Nomme ta plage de données via Formules > Gestionnaire de noms. Ta formule devient alors =BDLIRE(VentesAnnuelles; "Email"; F1:G2), plus claire qu'une plage comme A1:D500.
champ
: le nom de la colonne dont tu veux extraire la valeur, entre guillemets : `"Prix"` ou `"Email"`Tu peux aussi utiliser le numéro de la colonne dans la base de données (1 pour la première, 2 pour la deuxième, etc.), mais le nom est beaucoup plus lisible et résiste aux réorganisations de colonnes.
Attention : le nom doit correspondre exactement à l'en-tête de colonne, majuscules et espaces compris. "Prix TTC" n'est pas la même chose que "prix ttc".
critères
: une plage séparée qui contient tes conditions de rechercheElle doit avoir au minimum deux lignes : la première avec les noms de colonnes (identiques à ceux de ta base), et la deuxième avec les valeurs recherchées. Par exemple F1:G2 où F1 contient "Ville", F2 contient "Paris", G1 contient "Statut", G2 contient "Actif".
Mets les conditions sur la même ligne pour un ET logique, sur des lignes différentes pour un OU logique. Tu peux combiner les deux pour des requêtes complexes.
Astuce : Crée ta zone de critères dans une zone vide de ta feuille pour pouvoir modifier facilement tes recherches sans toucher à la formule. Tu peux même créer un mini-formulaire avec des listes déroulantes pour les utilisateurs non techniques.
Pas envie d'écrire la formule BDLIRE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Gestionnaire de stock : trouver le stock d'un produit par entrepôt
Tu es gestionnaire de stock et tu as une base avec des centaines de produits répartis dans différents entrepôts. Un client te demande le stock disponible d'un modèle précis dans une ville précise, et tu dois répondre rapidement.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Produit | Entrepôt | Stock | Prix |
| 2 | Ordinateur Dell XPS | Paris | 45 | 1 299 € |
| 3 | Écran Samsung 27" | Paris | 122 | 349 € |
| 4 | Ordinateur Dell XPS | Lyon | 28 | 1 299 € |
| 5 | Clavier Logitech MX | Paris | 201 | 89 € |
=BDLIRE(A1:D5; "Stock"; A7:B8)La zone de critères A7:B8 spécifie Produit='Ordinateur Dell XPS' ET Entrepôt='Paris'. BDLIRE filtre la base et retourne le stock correspondant : 45 unités. Avec RECHERCHEV, tu aurais dû créer une colonne auxiliaire combinant produit et entrepôt. BDLIRE gère nativement les critères multiples.
Astuce de pro : Lie ta zone de critères à des listes déroulantes (Données > Validation) pour créer un vrai formulaire de recherche. Le gestionnaire choisit le produit et l'entrepôt dans les listes, BDLIRE retourne le résultat automatiquement.
Commercial : récupérer l'email d'un contact client
Tu es commercial et tu gères une base de contacts avec plusieurs personnes par entreprise. Tu dois récupérer l'email du responsable achats de TechCorp pour lui envoyer une proposition commerciale.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Entreprise | Nom | Fonction | |
| 2 | TechCorp | Alice Martin | DG | alice@techcorp.fr |
| 3 | TechCorp | Bob Durand | Resp. Achats | bob@techcorp.fr |
| 4 | InnovSAS | Claire Petit | Resp. Achats | claire@innovsas.fr |
| 5 | TechCorp | David Bernard | DSI | david@techcorp.fr |
=BDLIRE(A1:D5; "Email"; A7:B8)La zone de critères spécifie Entreprise='TechCorp' ET Fonction='Resp. Achats'. Résultat : bob@techcorp.fr. Un seul enregistrement correspond, c'est exactement ce que BDLIRE attend. Cette approche est parfaite pour créer un mini-CRM dans Excel.
RH : consulter le salaire d'un employé dans un département
Tu travailles aux ressources humaines et tu dois vérifier le salaire d'un employé précis. Le problème : plusieurs personnes portent le même nom de famille. Chercher uniquement par Nom='Martin' retournerait #VALEUR! car trois lignes correspondent.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Matricule | Nom | Département | Salaire |
| 2 | EMP001 | Sophie Martin | IT | 3 800 € |
| 3 | EMP002 | Marc Dupont | RH | 3 200 € |
| 4 | EMP003 | Julie Martin | Compta | 3 500 € |
| 5 | EMP004 | Pierre Martin | IT | 4 200 € |
=BDLIRE(A1:D5; "Salaire"; A7:B8)En ajoutant un second critère Département='IT', tu réduis le résultat à un seul enregistrement et BDLIRE retourne 4 200 €. Pour encore plus de fiabilité, utilise le matricule comme critère : il est unique par définition.
Contrôleur de gestion : extraire le budget d'un projet pour une année
Tu es contrôleur de gestion et tu dois retrouver le budget alloué au projet PROJ-A pour l'année 2025. Tes projets s'étalent sur plusieurs années avec des budgets différents chaque année, donc chercher uniquement par code projet retournerait plusieurs résultats.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Code Projet | Année | Chef de projet | Budget |
| 2 | PROJ-A | 2024 | Marie L. | 180 000 € |
| 3 | PROJ-B | 2024 | Jean D. | 250 000 € |
| 4 | PROJ-A | 2025 | Marie L. | 220 000 € |
| 5 | PROJ-C | 2024 | Sophie M. | 95 000 € |
=BDLIRE(A1:D5; "Budget"; A7:B8)La zone de critères spécifie Code Projet='PROJ-A' ET Année='2025'. BDLIRE retourne 220 000 €. C'est typiquement le genre de cas où RECHERCHEV montre ses limites : elle ne sait pas croiser deux colonnes sans colonne auxiliaire.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction BDLIRE
BDLIRE n'a qu'un seul message d'échec, #VALEUR!, mais il cache trois situations bien différentes. Soit plusieurs lignes répondent à tes critères et elle refuse d'en choisir une, soit aucune ne correspond, soit la zone de critères elle-même est mal montée : en-têtes qui ne collent pas exactement à la base, ou une seule ligne au lieu des deux requises (en-têtes + valeurs).
Plusieurs enregistrements correspondent aux critères
C'est l'erreur la plus courante avec BDLIRE. Si plusieurs lignes de ta base correspondent aux critères, la fonction retourne #VALEUR! car elle ne sait pas laquelle choisir. Par exemple, chercher uniquement par ville alors que 50 clients habitent cette ville.
Solution : Ajoute des critères supplémentaires pour identifier un seul enregistrement. Si tu veux vraiment agréger plusieurs résultats, utilise BDSOMME, BDMOYENNE ou la fonction FILTRE (Excel 365).
Aucun enregistrement ne correspond aux critères
BDLIRE retourne aussi #VALEUR! si aucune ligne ne correspond. C'est souvent dû à une faute de frappe dans la zone de critères, un problème de casse, ou des espaces invisibles.
Solution : Vérifie que tes critères correspondent exactement aux données (copie-colle les en-têtes depuis la base). Entoure ta formule avec SIERREUR pour afficher un message clair : =SIERREUR(BDLIRE(...); "Non trouvé").
Les en-têtes de la zone de critères ne correspondent pas à ceux de la base
Si les noms de colonnes dans ta zone de critères ne correspondent pas exactement (au caractère près) aux en-têtes de ta base de données, BDLIRE ne trouvera rien et retournera #VALEUR!.
Solution : Copie-colle les en-têtes directement depuis ta base de données vers ta zone de critères. Un espace en trop ou une différence de casse suffit à faire échouer la formule.
Zone de critères mal structurée
La zone de critères doit absolument avoir une ligne d'en-têtes et au moins une ligne de valeurs. Si tu sélectionnes uniquement une ligne ou si ta zone est mal construite, la formule échoue.
Solution : Assure-toi que ta zone de critères a au minimum 2 lignes (en-têtes + valeurs). Même pour un seul critère, cette structure en 2 lignes minimum est obligatoire.
BDLIRE vs RECHERCHEV vs INDEX-EQUIV vs FILTRE
BDLIRE est idéale quand tu as une base structurée avec en-têtes et que tu dois extraire UNE valeur selon plusieurs critères complexes. Si tu as Excel 365, FILTRE est plus moderne et peut retourner plusieurs résultats. Pour un seul critère simple, RECHERCHEV suffit.
| Critère | BDLIRE | RECHERCHEV | INDEX-EQUIV | FILTRE |
|---|---|---|---|---|
| Critères multiples | Natif | Nécessite une colonne auxiliaire | Complexe à écrire | Natif |
| Logique ET/OU | Oui (zone de critères) | Non | Non | Oui |
| Résultats multiples | Non (une seule valeur) | Non (une seule valeur) | Non (une seule valeur) | Oui (tableau dynamique) |
| Disponibilité | Toutes versions | Toutes versions | Toutes versions | Excel 365 uniquement |
| Cas d'usage principal | Extraction précise multi-critères | Recherche simple par une colonne | Recherche flexible dans une colonne | Extraction de plusieurs lignes |
Astuces avancées avec BDLIRE
Utiliser des critères calculés dynamiques
Tu peux mettre des formules dans ta zone de critères pour créer des conditions dynamiques. Par exemple, pour chercher les enregistrements du mois en cours, écris =MOIS(AUJOURDHUI()) dans ta cellule de critère au lieu d'une valeur fixe. La zone se met à jour automatiquement chaque mois.
Combine BDLIRE avec cette technique pour créer des tableaux de bord qui se rafraîchissent sans intervention.
Déboguer avec BDNB avant BDLIRE
Si ta formule BDLIRE ne fonctionne pas, essaie d'abord =BDNB(base; "champ_numérique"; critères) avec les mêmes critères. Si BDNB retourne 0, aucun enregistrement ne correspond. Si elle retourne plus de 1, tu as plusieurs correspondances. Ça te dit exactement où est le problème sans avoir à parcourir la base manuellement.
Cette technique de débogage te fait gagner beaucoup de temps sur les grandes bases.
Utiliser des jokers dans les critères texte
BDLIRE accepte les jokers * et ? dans les critères texte. Pour trouver tous les noms commençant par Mar, écris Mar* dans ta zone de critères. Le * remplace n'importe quelle suite de caractères, le ? remplace un seul caractère.
Cela permet des recherches partielles sans saisir le libellé exact, très utile quand les données ont des variantes de saisie (Martin, Martin-Dupont, Martin J....).
Questions fréquentes sur la fonction BDLIRE
Pourquoi BDLIRE retourne-t-elle #VALEUR! alors que je vois un résultat ?
Si plusieurs enregistrements correspondent à tes critères, BDLIRE ne sait pas lequel choisir et retourne #VALEUR!. C'est l'erreur la plus courante.
Affine tes critères pour n'obtenir qu'un seul résultat, ou utilise BDSOMME ou BDMOYENNE si tu veux agréger plusieurs valeurs.
Quelle différence entre BDLIRE et RECHERCHEV ?
RECHERCHEV cherche une valeur dans la première colonne d'une table et retourne une colonne spécifique. BDLIRE utilise une zone de critères séparée qui permet des conditions multiples ET/OU.
BDLIRE est plus puissante pour les critères complexes, mais aussi plus longue à mettre en place. Si tu n'as qu'un critère simple, RECHERCHEV suffit.
Comment gérer les critères multiples avec BDLIRE ?
Dans ta zone de critères, mets les conditions sur la même ligne pour un ET logique (ex : Ville='Paris' ET Ventes>1000), ou sur des lignes différentes pour un OU logique (ex : Région='Nord' OU Région='Sud').
Tu peux combiner les deux pour des requêtes complexes : une ligne pour chaque combinaison ET, plusieurs lignes pour le OU entre ces combinaisons.
BDLIRE peut-elle retourner du texte ou uniquement des nombres ?
BDLIRE peut retourner n'importe quel type de données : texte, nombre, date, booléen. Elle extrait simplement la valeur du champ spécifié pour l'enregistrement qui correspond aux critères.
Le nom peut prêter à confusion mais elle n'est pas limitée aux nombres.
Que faire si aucun enregistrement ne correspond aux critères ?
BDLIRE retourne #VALEUR! si aucun enregistrement ne correspond. Entoure ta formule avec SIERREUR pour afficher un message personnalisé : =SIERREUR(BDLIRE(...); "Aucun résultat").
C'est indispensable pour rendre tes tableaux professionnels et éviter d'afficher des erreurs aux utilisateurs finaux.
Pour aller plus loin
Les fonctions similaires : RECHERCHEX, RECHERCHEV, INDEX, EQUIV, FILTRE
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

