Désolé ! cela doit être le seul test que je n'ai pas fait... En fait l'erreur vient du libellé dans la Feuille1 : ce n'était pas évident mais tu avais encodé un "blanc" à la fin et dans ta liste déroulante, tu n'avais pas mis ce blanc donc la recherche EQUIV ne trouvait pas de solution d'où les vilains #NA.
Il y a moyen d'éviter le #NA et le remplacer par un "vide" quand la formule ne trouve pas mais dans ton cas de figure on doit en principe TOUJOURS trouver quelque chose alors je préfère afficher le #NA car cela veut dire qu'il y a une discordance entre tes données et tes listes (ce qui a été le cas ici)
Voici le fichier corrigé : http://www.cjoint.com/c/GHApCrkMXhf
Explications complémentaires :
=INDEX(INDIRECT(ADRESSE(3;LIGNE()-1;1;1;"Feuil1")):INDIRECT(ADRESSE(16;LIGNE()-1;1;1;"Feuil1"));EQUIV($E$6&" "&$E$7;Feuil1!$A$3:$A$16;0);1)
La fonction principale dans la formule est INDEX(matrice;ligne;colonne). Cette fonction va chercher dans une matrice le contenu de la cellule se trouvant au croisement de la ligne et la colonne indiquée. Les matrices dans ton cas sont les colonnes B à G de la Feuille 1.
Comme il faut faire évoluer la matrice de recherche en fonction de la ligne où la formule se trouve, nous allons utiliser les fonctions ADRESSE et INDIRECT pour faire évoluer la plage en fonction de la ligne.
La fonction ADRESSE(Num.ligne;Num.colonne;abs;A1;nom feuille) (voir aide Excel pour explications de la syntaxe) a été complétée par 3 pour l'adresse du début de plage et 16 pour la dernière ligne de la plage. Cela est figé puisque tes matrices vont toutes de 3 à 16.
Là où cela devient intéressant c'est pour la colonne car c'est celle ci qui doit varier à chaque ligne (pour aller chercher dans la colonne B puis C puis D ...). Comme tes colonnes sont juxtaposées, cela veut dire qu'elles augmentent de 1 à chaque ligne. Donc nous pouvons nous appuyer sur la numérotation des lignes qui augmente aussi de 1 à chaque ligne. Il faut juste corrigé le décalage de départ. Comme ton tableau de recherche part de la ligne 3 il suffit d'enlever 1 pour trouver le numéro de la colonne de la première matrice (3-1=2 soit B).
Nous construisons ainsi l'adresse de la première et de la dernière cellule des matrices.
Il faut savoir que lorsque nous construisons une adresse dans Excel, il faut utiliser la fonction INDIRECT pour lire le contenu de la cellule que représente l'adresse (voir explications dans aide Excel)
Nous avons ainsi construit la plage évolutive de la matrice dans laquelle nous allons aller chercher le pourcentage.
Il reste à trouver la ligne et la colonne :
Le plus facile : la colonne : comme la plage ne comporte qu'une seule colonne (par exemple la colonne 2 soit B) c'est forcément la colonne 1
Reste la ligne : c'est là qu'intervient la fonction EQUIV qui va aller chercher la concaténation $E$6&" "&$E$7 dans la plage Feuil1!$A$3:$A$16 avec comme paramètre 0 (pour dire que l'on désire une recherche exacte càd par a peu près - voir explication aide Excel).
C'est donc cette recherche qui ne pouvait se faire car la concaténation était introuvable dans la plage puisqu'il y avait un blanc en dernière position de ton libellé dans la Feuille1
Ouf !
Je conseille de prendre 2 aspirines après avoir lu ces explications !
J'espère que c'est un peu plus clair pour toi !
Un conseil : ce qui parait difficile à appréhender dans ces longues formules, est l’imbrication des fonctions. Donc, pour pouvoir les comprendre, il faut bien scinder la formule pour isoler les fonctions et tout devient plus clair. Soit tu mets des couleurs différentes soit tu les découpes. Tu peux aussi, lors de la mise au point, utiliser des cellules non utilisées pour insérer les fonctions isolées pour t'apercevoir comment elle travaille et quel résultat elle donne.
Il y a aussi un assistant sous l'onglet Formules : à droite au dessus : Evaluer la formule
Si tu mets le curseur dans la cellule contenant la formule et que tu cliques sur le bouton "Evaluer la formule" tu pourras voir comment Excel calcule la formule. Tu pourras surtout voir quand elle se plante et cela permet de t'aider pour la mise au point.
Bon j'arrête sinon il faudra tout le tube d'aspirine...
Si tu as encore des questions n'hésites pas à me revenir.
Bonne courage.
A+
Chris