Bonsoir,
Création d'un tableau structuré nommé "Source" afin d'ordonner les informations de chaque emploi en colonne.
En cellule E1 une validation de données avec une liste de choix qui correspond à la plage des entêtes du tableau.
Sur les quelques lignes en dessous de E2 à E10, mise en place d'une formule avec RECHERCHEH, cette fonction va faire une recherche horizontale d'une donnée sur la première ligne d'une plage (ici la plage correspond au tableau créé) et elle va renvoyer la donnée se trouvant dans la colonne trouvée au numéro de ligne demandée : RECHERCHEH(la donnée à chercher ; plage de la matrice de recherche ; numéro de ligne de la matrice à renvoyer ; paramètre afin de régler la finesse de recherche), donc :
- la valeur à chercher en horizontal de la plage de cellule A1:B4, qui n'est autre que le tableau "Source", se trouve en E1, afin de rendre cette formule copiable vers le bas on verrouille la référence à E1 en ajoutant des "$" : E$1 (ici on verrouille seulement la ligne.
- la plage de la matrice pour la recherche est A1:B4 soit le tableau structuré nommé "Source" avec l'argument [#Tout"] afin d'indiquer qu'on prend en compte la totalité du tableau c'est à dire les données mais aussi l'entête !
- la ligne de la donnée à renvoyer pour la première formule est la 2, mais ici pour rendre la formule copiable vers le bas, j'ai remplacé le 2 par l'instruction LIGNE() qui renvoi le numéro de ligne de la feuille Excel où se trouve cette instruction. Ici l'instruction se trouve en ligne 2 de la feuille, donc on renvoie bien la donnée se trouvant en ligne 2 de la matrice (du tableau).
- 0 ou FAUX afin de signaler que nous faisons une recherche à valeur Exact, c'est à dire que dans la ligne d'entête du tableau on recherche exactement la valeur se trouvant en E$1.
Ceci donne cette formule en E2 : =RECHERCHEH(E$1;Source[#Tout];LIGNE();0)
Grâce à la valeur variable ligne et au $ avant le 1 de E$1, lorsque l'on tire la formule vers le bas en ligne 3 de la feuille en E3,
on a : =RECHERCHEH(E$1;Source[#Tout];LIGNE();0), ce qui ne change pas mais ici LIGNE() vaut 3.
Ceci affiche une erreur de type #N/A si rien n'est trouvé (par exemple ici le tableau réponse contient plus de lignes que le tableau, donc la formule en ligne 5 de la feuille provoque une erreur du fait que la formule demande de renvoyer la valeur de la 5ième ligne du tableau alors qu'il n'y en a que 4, donc "non apprécié".
Pour éviter cet affichage en attendant d'agrandir le tableau, j'ai utilisé la fonction SIERREUR qui permet d'afficher ou de faire autre chose en cas d'erreur sur le premier argument : SIERREUR(premier argument; alors faire ceci)
=SIERREUR(maformule; alors afficher un tiret) =SIERREUR(RECHERCHEH(E$1;Source[#Tout];LIGNE();0);"-")
@ bientôt
LouReeD