Skip to content

Jointer deux tableaux (et autres usages) avec la fonction RECHERCHEV()

21/05/2013

J’ai découvert tout récemment une fonction Excel (et LibreOffice) qui répond enfin à l’un besoin ancien (et même plusieurs). Je vous en donne donc le principe, puis deux exemples d’utilisations. Si vous avez d’autres exemples d’usages, je suis d’avance intéressé.

Principe

Vous avez deux tableaux, qui contiennent tous deux une colonne où se retrouvent des identifiants communs (n°, ISBN, code-barres, titre, etc). Le tableau 1 est celui que vous voulez enrichir, avec des infos tirées du tableau 2.

tableau 1-2 - formule RECHERCHEV

tableau 1-2 - résultat RECHERCHEVpng

Cela ne permet pas exactement de jointer deux tableaux, mais de reproduire dans le tableau 1 tout ou partie des infos du tableau 2, sur la base d’un identifiant commun (présent n fois dans le tableau 1, mais 1 fois dans le tableau 2)

La fonction RECHERCHEV() contient les paramètres suivants :

  • Paramètre 1 : dans le tableau 1, quelle valeur va devoir être retrouvée dans le tableau 2 (l’identifiant commun)
  • Paramètre 2 : où est le tableau 2 (dont la 1ère colonne contient l’identifiant qu’on va chercher comme premier paramètre)
  • Paramètre 3 : si on trouve dans la colonne 1 du tableau 2 l’identifiant défini comme paramètre 1, quelle valeur récupère-t-on (donc : n° de colonne du tableau 2)
  • Paramètre 4 : FAUX
    (FAUX pour dire : la correspondance des deux identifiants doit être exacte)

Ca a l’air un peu abstrait ? C’est pourtant très pratique, donc on va voir ce que ça donne en vrai

Exemple 1 : enrichir une liste d’informations extraites d’une liste plus longue

Imaginons un prof qui vous envoie une bibliographie de 100 ouvrages : Titre, Auteur, ISBN (sympa !). Vous voulez enrichir cette liste de leur cote (quand vous en avez un exemplaire dans votre bibliothèque).

Une solution un peu brutale, mais rapide, consiste à extraire la liste de vos dizaines de milliers d’exemplaires (même si Excel 2007 accepte désormais 1 million de lignes, mieux vaut quand même l’éviter) avec : ISBN, localisation, cote.

  • Le tableau 1 sera donc celui de l’enseignant (100 lignes)
  • Le tableau 2 sera votre liste d’exemplaires (disons : 7811 lignes – c’est comme ça)

Dans chaque tableau, la première colonne est l’identifiant commun, à savoir l’ISBN (nettoyé, c’est-à-dire sans tiret — c’est mieux pour être sûr de matcher plus aisément les 2 listes).

Dans le tableau 1, je rajoute en dernière colonne à droite la formule qui va

  • [Paramètre 1] prendre l’ISBN de la première colonne du tableau 1
  • [Paramètre 2] chercher cette valeur dans le tableau 2
  • [Paramètre 3] s’il trouve l’ISBN, prendre la 2e colonne (la localisation)
  • [Paramètre 4] faire une correspondance exacte sur l’ISN (‘FAUX’)

Ce qui me donne pour la première ligne (cellule D4) la formule : RECHERCHEV(A2;$F$2:$I$7812;2;FAUX)

recup localisation

recup cote

résultat cote-localisation

Exemple 2 : attribuer une typologie plus large sur la base d’une typologie fine

Imaginons que vous ayez 2 listes :

  1. La liste des étudiants emprunteurs de votre Université, avec mention du code Diplôme dedans (extraction du SIGB)
  2. La liste des codes Diplômes, avec libellé complet et mention du cycle et de l’UFR

Si vous voulez faire des stats sur votre population d’étudiants et leurs pratiques de prêt, il est vraisemblable que les sous-groupes par code diplôme seront trop réduits : il sera donc plus utile d’exploiter l’info Cycle et/ou UFR.

Vous avez donc besoin d’attribuer à chaque étudiant son cycle et son UFR, à partir de la seconde liste.

recherche UFR

Puis

résultat code etape

Bon, il faut me croire sur parole si je dis que chacune des valeurs présentes (de manière répétée) dans la colonne C [tableau 1] l’est également (mais une seule fois) dans la colonne G [tableau 2].

Je suis convaincu que pour la gestion de la documentation électronique, par exemple, cette fonction peut se révéler très utile (par exemple si on a un tableau avec des ISSN et des stats, et un tableau avec des ISSN et des prix ou des noms de collections Elsevier).

Advertisements
8 commentaires
  1. rainbowfrog permalink
    22/05/2013 07:23

    Bonjour Lully,

    Oui, effectivement, cette fonction est très utile aussi pour créer des tableaux de comparaisons budgétaires entre 2 ou plusieurs tableaux annuels, en utilisant le numéro de ligne budgétaire comme identifiant de repérage… (pour ceux qui ont un budget à gérer), et pour énormément de fonctions statistiques où il faut faire des regroupements par catégorie.
    Bonne journée 🙂

  2. Dominique Rouger permalink
    22/05/2013 08:49

    Bonjour,

    Fonction très intéressante en effet,
    avec un effet pervers c’est qu’elle détournera encore plus les bibliothécaires d’apprendre le langage sql 🙂

    Une remarque sur le second paramètre, qui définit donc la plage du tableau 2, il faut (quasi impérativement) comme c’est montrer dans l’un (mais pas l’autre ) des exemples la saisir en valeur fixe ($G$2:$I$238) et non en valeur flottante (G2:I238), car dans le second cas, quand on va dupliquer cette formule tout au long d’une colonne, le tableur va décaler le tableau 2 au fur a mesure …
    (et sur OO avec shift ou ctrl on ne bloque pas l’incrémentation)

    Autre remarque, avec OO toujours, la formulation G:K pour le second paramètre n’est pas autorisé

  3. 24/05/2013 12:35

    De fait, cette fonction est absolument vitale pour dégrossir l’analyse des stats. Imaginons par exemple une plate-forme qui donne accès à plusieurs bouquets à la fois, et qui soit incapable de les dissocier quand vous récoltez les statistiques (suivez mon regard). Eh bien il vous suffit d’avoir une liste (à jour, hein, attention, faut suivre) des ISSN des bouquets à extraire, et vous pouvez remanier le tableur de statistiques de façon à agréger les statistiques des divers bouquets. C’est très intéressant aussi pour mettre les prix en regard des usages, quand on songe à couper des bouquets et à repasser au titre à titre. Bien sûr, ce sont là des exemples au hasard.
    Merci pour ce billet ! On songe à un petit atelier en interne sur ce genre de fonction, je signalerai ce post comme aide mémoire…

  4. Marie H permalink
    28/05/2013 13:42

    C’est effectivement une fonction indispensable pour comparer des tableaux ou enrichir un tableau (avec des collections, des prix, des données de l’an dernier …). Votre tableau dans lequel vous cherchez l’info n’a pas besoin d’être sur la même feuille, il peut être dans un dossier différent, on peut aller le chercher facilement en utilisant la flèche d’aide de rédaction de la formule. En revanche il faut avoir un critère à comparer fiable.

  5. Sylvain Machefert (Symac) permalink
    11/06/2013 10:18

    Bonjour,
    on n’insistera jamais assez sur le 4° paramètre qui indique de faire une recherche exacte. Je ne sais pas si c’est le cas sous excel mais sous libreoffice cet argument est facultatif et par défaut LibreOffice Calc essaie de faire une correspondance « approximative » qui génère parfois des résultats étonnants …

Trackbacks

  1. (et autres usages) avec la fonction RECHERCHEV(...
  2. Jointer deux tableaux (et autres usages) avec l...
  3. tecknobidules | Pearltrees

Les commentaires sont fermés.

%d blogueurs aiment cette page :