Excel - Power Query - Power Pivot - VBA

EX09 | Fonctions de recherche (RECHERCHEV et RECHERCHEX)

Document fictif à usage pédagogique.

Énoncé

Contexte

  • Entreprise : Brévalis Industries (fictive).
  • Demande : compléter les 40 commandes de la feuille Ventes avec la désignation, le prix, le taux de remise et le nom du client.
  • Durée : 40 min | Niveau : intermédiaire.
  • Départ : EX09_depart.xlsx (Ventes, Produits/tblProduit, Clients/tblClient, Bareme, Recherche) | Fin : EX09_corrige.xlsx.
  • Pièges prévus : ART-0041 (ligne 8) absent du référentiel, CLI-099 (ligne 19) inconnu.

Travail demandé

  • Avec RECHERCHEV : désignation et prix (valeur exacte), message si l'article est inconnu, taux de remise par recherche approximative dans le barème.
  • Avec RECHERCHEX : raison sociale avec valeur si non trouvé, recherche vers la gauche, plusieurs colonnes renvoyées.
  • Avec INDEX + EQUIV : le prix, pour les versions sans RECHERCHEX.

Simulation

  • Simulation interactive EX09 (8 étapes guidées, validation automatique) : voir la sous-page EX09 | Simulation.

Corrigé

E00 | Ouvrir le fichier de départ

  • Fichier > Ouvrir > Parcourir > Documents\excel-lab\depart\EX09_depart.xlsx.
💡
Capture : boîte Ouvrir, dossier depart, fichier EX09_depart.xlsx sélectionné

E01 | Désignation (RECHERCHEV exacte)

  • F2 : =RECHERCHEV(C2;tblProduit;2;FAUX), recopier. Ligne 8 : #N/A.
💡
Capture : boîte Arguments de la fonction RECHERCHEV

E02 | Prix

  • G2 : =RECHERCHEV(C2;tblProduit;6;FAUX) (PrixVenteHT est la 6e colonne).

E03 | Article inconnu

  • F2 : =SIERREUR(RECHERCHEV(C2;tblProduit;2;FAUX);"Article inconnu"), recopier.
  • Variante plus ciblée : SI.NON.DISP(...;"Article inconnu") ne masque que #N/A.

E04 | Barème (RECHERCHEV approximative)

  • H2 : =RECHERCHEV(E2;Bareme!$A$2:$B$5;2;VRAI), recopier. 3 682,95 € donne 2 % ; 11 044,80 € donne 8 %.
  • Le barème doit être trié par ordre croissant.

E05 | Client (RECHERCHEX)

  • I2 : =RECHERCHEX(B2;tblClient[CodeClient];tblClient[RaisonSociale];"Client inconnu"), recopier. Ligne 19 : Client inconnu.
💡
Capture : boîte Arguments de la fonction RECHERCHEX

E06 | Recherche vers la gauche

  • Recherche!B4 : =RECHERCHEX(B3;tblProduit[Designation];tblProduit[RefProduit]) renvoie ART-0013.
  • RECHERCHEV ne peut pas renvoyer une colonne située à gauche de la colonne de recherche.

E07 | Plusieurs colonnes

  • Recherche!B7 : =RECHERCHEX(B6;tblProduit[RefProduit];tblProduit[[Designation]:[Gamme]]) : Châssis léger CL-5, P3, Sous-ensembles propagés en B7:D7.

E08 | INDEX + EQUIV

  • Recherche!B9 : =INDEX(tblProduit[PrixVenteHT];EQUIV(B6;tblProduit[RefProduit];0)) : 1 324,26 €.
  • F12 > EX09_corrige.
💡
Capture : comparaison des résultats RECHERCHEV et RECHERCHEX côte à côte

Points de vigilance

  • Oublier FAUX dans RECHERCHEV lance une recherche approximative : sur des codes, le résultat peut être faux sans aucune erreur.
  • Un numéro de colonne écrit en dur devient faux si une colonne est insérée dans la table ; RECHERCHEX n'a pas ce problème.
  • RECHERCHEX existe dans Microsoft 365 et Excel 2021 et suivants ; ailleurs, INDEX + EQUIV.
  • Fonctions de test complémentaires du support : ESTNA, ESTERREUR, SI.NON.DISP.

Pour aller plus loin

  • Fonction RECHERCHEV : Source
  • Fonction RECHERCHEX : Source
  • RECHERCHEV, INDEX ou EQUIV : Source
  • Corriger une erreur #N/A : Source