Ludovic ROLAND

Blog technique sur mes expériences de développeur.

Des jointures dans vos documents OpenOffice Calc !

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.

Qu’est ce qu’une jointure ?

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.

Ce que l’on souhaite obtenir.

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

C’est parti !

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 :

Commentaires