Re,
@Neo Hyuga
Je reviens sur mon
post#13
Il me semble en regardant ton image que tes données sont dans un tableau structuré (ta plage $A$1:$U$14000 porte le nom du tableau, je l'ai baptisé "tb".
Si ce n'est pas le cas transforme ta plage en tableau structuré, vas sur une cellule de ta plage et :


Puis choisis son nom :

ta formule =INDEX( $A$1:$U$14000; V2623 ; EQUIV("Valeur";$A$1:$U$1;0) )
Extrait du tableau
$A$1:$U$14000 la cellule de la ligne contenue dans
V2623 et de la colonne trouvée par
EQUIV("Valeur";$A$1:$U$1;0)
La syntaxe de INDEX étant INDEX(
tableau ;
N° de ligne ;
N° de colonne)
raison pour laquelle tu as mis dans la colonne V les N° de ligne.
Avec le tableau structuré "tb" tu peux chercher la colonne intitulée "Valeur" de la façon suivante :
tb[Valeur]
Si tu veux pouvoir changer facilement le texte "Valeur" sans toucher aux formules, tu places le mot voulu dans la cellule disons
Z1 et tu utilises EQUIV(
Z1;tb[#En-têtes];0), si ton entête s'appelle "toto" tu mets "toto" en Z1 et le tour est joué.
Ta formule devient :
INDEX(
tb ;
V2623 ;
EQUIV(Z1;tb[#En-têtes];0) )
V2623 contenant toujours le N° de la ligne.1
Maintenant si cette formule doit être valable pour toutes les lignes de ton tableau et que tu ne veux pas rajouter de colonne contenant le N° de la ligne, tu peux utiliser l'expression
LIGNE()-LIGNE(tb[#En-têtes]) qui te calcule le N° de la ligne courante du tableau
(même si ton tableau ne commence pas à la ligne 1)
Ta formule devient :
INDEX(
tb ;
LIGNE()-LIGNE(tb[#En-têtes]) ;
EQUIV(Z1;tb[#En-têtes];0) )
A chaque fois que ton entête de colonne change, tu n'as qu'à écrire cette nouvelle entête dans la cellule
Z1 et ta formule fonctionnera.
(Dans l'exemple que je donnais, il s'agissait d'extraire une seule donnée du tableau et de choisir le nom de la colonne où on cherche une valeur, ensuite cette valeur puis le nom de la colonne dont on renvoie la valeur correspondant.)
Voir le fichier joint
A bientôt