Blog technique sur mes expériences de développeur.
2 juillet 2012
Une fois n’est pas coutume, cet article va traiter de bureautique ! Si dans ce billet je m’appuie sur le logiciel OpenOffice Calc, sachez que les manipulations sont sensiblement les mêmes si vous utilisez Excel ou la suite LibreOffice.
En informatique et plus particulièrement dans les bases de données relationnelles, la jointure est une opération qui consiste à effectuer un produit cartésien des enregistrements de deux tables pour lesquelles certaines valeurs correspondent. Wikipedia
Je vous accorde que ce qu’on va produire dans ce billet n’est pas exactement une jointure au sens base de données, mais ça tend à y ressembler.
Nous allons travailler avec un fichier OpenOffice Calc contenant deux feuilles de calcul.
La première feuille de calcul contient des couleurs. Chaque couleur a un identifiant unique et un libellé :
Identifiant | Couleur |
---|---|
C1 | Bleu |
C2 | Vert |
C3 | Noir |
C4 | Orange |
C5 | Jaune |
C6 | Gris |
C7 | Rouge |
C8 | Rose |
C9 | Blanc |
C10 | Or |
Notre seconde feuille de calcul contient quant à elle des objets. Chaque objet possède un identifiant, un libellé ainsi que le code correspondant à sa couleur :
Identifiant | Nom | Code couleur |
---|---|---|
O1 | Voiture | C6 |
O1 | Scooter | C3 |
O1 | Télévision | C9 |
O1 | Pantalon | C3 |
O1 | Guitare | C10 |
O1 | Stylo | C6 |
O1 | Téléphone | C8 |
O1 | Skate | C2 |
O1 | Appareil photo | C1 |
O1 | Chaise | C5 |
L’objectif est ici d’afficher le nom de la couleur correspondant à chaque objet :
Identifiant | Nom | Code couleur |
---|---|---|
O1 | Voiture | Gris |
O1 | Scooter | Noir |
O1 | Télévision | Blanc |
O1 | Pantalon | Noir |
O1 | Guitare | Or |
O1 | Stylo | Gris |
O1 | Téléphone | Rose |
O1 | Skate | Vert |
O1 | Appareil photo | Bleu |
O1 | Chaise | Jaune |
Commencez par reproduire les deux premiers tableaux dans deux feuilles de calcul différentes d’un document OpenOffice Calc.
Dans la feuille de calcul contenant vos objets, ajoutez une colonne «couleur». C’est dans cette colonne que le nom des couleurs sera affiché. Vous devriez avoir quelque chose comme ça :
Nous allons dans un premier temps faire la jointure pour l’objet O1 puis nous étendrons la formule aux autres par la suite.
Dans la cellule qui correspond à la cellule D2 de ma capture d’écran, saisissez la formule =RECHERCHEV( puis cliquez sur l’assistant fonction :
La fenêtre suivante devrait normalement s’ouvrir :
Dans la ligne Critère de recherche, il faut saisir la valeur qui permet de faire la jointure. Dans notre cas, c’est l’identifiant de la couleur. Nous allons donc saisir C2.
Au niveau de la matrice, il faut que l’on sélectionne les données sources qui nous intéressent. Dans notre cas, il s’agit de l’identifiant de la couleur ainsi que son libellé contenus dans la feuille de calcul n°1. Ma feuille de calcul s’appelant Couleur, je dois donc saisir : Couleur.A1:B11.
La ligne Indice permet d’indiquer la colonne que l’on souhaite afficher. Dans notre cas, nous voulons le libellé de la couleur. C’est donc la colonne B de la matrice qui nous intéresse. Nous allons donc saisir 2 comme indice.
Finalement, la ligne ordre de tri étant facultative, nous n’allons pas nous y intéresser et laisser vide.
Voici ce que vous devriez avoir :
Vous pouvez d’ores et déjà voir le résultat. Il s’agit de la couleur grise ce qui correspond bien au résultat attendu. Nous allons donc valider en cliquant sur le bouton OK.
Votre tableur doit alors ressembler à ça :
Avant d’étendre la formule aux autres cellules, nous allons bloquer les données de notre matrice. Remplacez donc la formule par la suivante : =RECHERCHEV(C2;Couleur.$A$1:$B$11;2)
Vous pouvez donc maintenant étendre la formule sans risque !
Il reste encore une chose à faire. Nous voulons que notre document final contienne 3 colonnes, or actuellement il en possède 4. Nous ne pouvons pas supprimer la colonne Code couleur puisque notre formule en dépend… Nous allons tricher en la masquant !
Vous devriez alors avoir le résultat suivant qui correspond bien à ce que nous voulions :