Exemple 1

On a deux classeurs ou deux feuilles de calcul. Dans le premier on a une liste de personnes avec leurs nom, prénom, adresse mail. Dans le second on a ces mêmes informations avec en plus l’UAI et d’autres informations qui nous intéressent, mais plusieurs personnes de la liste sont sur une même ligne (car même établissement).

Comment récupérer automatiquement les informations pour chaque personne, l’UAI en particulier ?

Données

Feuille 2 contenant toutes les infos mais avec plusieurs personnes par ligne
Feuille 1 les infos à retrouver sont sur les 3 premières colonnes. On prendra uniquement la colonne C pour le rapprochement et on récupèrera l’UAI dans la colonne D.

Fonctions utilisées

Fonction EQUIV

Le résultat est un nombre entier naturel (= numéro de ligne).

  • Premier paramètre : valeur recherchée
  • Deuxième paramètre : colonne dans laquelle chercher (ne fonctionne pas avec une matrice)
  • Troisième paramètre : 0 si la colonne n’est pas triée (1 pour tri croissant / -1 pour tri décroissant)

Fonction INDEX

Le résultat est la valeur d’une cellule dont on indique le numéro de ligne et le numéro de colonne.

  • Premier paramètre : matrice dans laquelle on cherche
  • Deuxième paramètre : numéro de ligne (dans la matrice)
  • Troisième paramètre : numéro de colonne (dans la matrice)

Formule possible si une ligne de la feuille 2 correspond à une seule ligne de la feuille 1

Dans la cellule D2 de la feuille 1 :

=INDEX($Feuille2.$A$2:$G$32;EQUIV($C2;$Feuille2.$D$2:$D$32;0);1)

La fonction EQUIV récupère le numéro de la ligne où on trouve C2 (ici le mail) dans la colonne D de la Feuille2, puis la fonction INDEX récupère la valeur qui est dans la première colonne de cette ligne (ici l’UAI).

Formule correspondant à l’exemple

Dans la cellule D2 de la feuille 1 :

=INDEX($Feuille2.$A$2:$G$32;EQUIV(1;($Feuille2.$D$2:$D$32=$C2)+($Feuille2.$G$2:$G$32=$C2)+($Feuille2.$J$2:$J$32=$C2);0);1)

Comme le mail peut se trouver dans trois colonnes différentes (ici D, G et J), mais dans une seule de ces trois colonnes, on va utiliser la fonction EQUIV un peu différemment.

On cherche le nombre 1 dans la colonne constituée des résultats de la somme des tests vérifiant si C2 est dans chacune de ces colonnes.

  • Si C2 n’est pas sur la ligne, le résultat sera 0 (0+0+0).
  • Si C2 est sur la ligne, quelle que soit la colonne qui le contient, le résultat sera 1 (1+0+0 ou 0+1+0 ou 0+0+1).

Résultat

Exemple 2

Cette fois on veut récupérer des données en utilisant deux colonnes de recherche. La première feuille contient une liste de personnes avec leurs nom et prénom dans deux colonnes. Dans la deuxième feuille se trouvent les mêmes personnes, mais ni le nom, ni le prénom ne sont des identifiants uniques. Il faut donc vérifier que les deux correspondent.

Feuille2
Feuille1 avec formule dans C2
Feuille1 avec formule dans D2

Dans la cellule C2 de la feuille 1

=INDEX($Feuille2.$A$2:$D$6; EQUIV(1;($Feuille2.$B$2:$B$6=$A2)*($Feuille2.$C$2:$C$6= $B2);0);4)

Dans la cellule D2 de la feuille 1

=INDEX($Feuille2.$A$2:$D$6; EQUIV(1;($Feuille2.$B$2:$B$6=$A2)*($Feuille2.$C$2:$C$6= $B2);0);1)

On cherche le nombre 1 dans la colonne constituée des résultats du produit des tests vérifiant si les nom ET prénom correspondent.

  • Si ni le nom, ni le prénom ne figure sur la ligne, le résultat sera 0 (0x0).
  • Si seulement le nom ou seulement le prénom est sur la ligne, le résultat sera 0 (1×0 ou 0x1).
  • Si les nom ET prénom correspondent, le résultat sera 1 (1×1).