XL 2016 retrouver un resultat

Neo Hyuga

XLDnaute Junior
Hello,

situation : j exporte des donnees .csv depuis un site energetique, mes fichiers excels se basent dessus a des fins statistiques.
donc beaucoup de recherchev ...

probleme : la presentation de l export csv a changé, et risque de changer a nouveau.

question : quelle formule puis je utiliser pour une recherche sur toute une plage de données sans mentionner la cellule cible, pour qu'excel le trouve tout seul comme un grand selon ma ref et le nom de la colonne ?

merci d'avance

ps : une combinaison de plusieurs formules peut etre ? je ne sais pas, j avoue ne pas etre expert comme la plupart d'entre vous /blush
 
Solution
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 :
1709485044123.png

Puis choisis son nom :
1709485083780.png


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...

AtTheOne

XLDnaute Impliqué
Supporter XLD
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 :
1709485044123.png

Puis choisis son nom :
1709485083780.png


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
 

Pièces jointes

  • retrouver un resultat.xlsx
    12.4 KB · Affichages: 4

Neo Hyuga

XLDnaute Junior
Enorme, un grand merci Alain, tu as parfaitement compris ma problematique /clap /clap

question tout de meme :

- 1 - [#En-têtes] : excel interprete donc ca automatiquement comme la ligne a en-tete de mon tableau ?

- 2 - : l'expression LIGNE()-LIGNE(tb[#En-têtes]) qui calcule le N° de la ligne courante :
Jamais j'aurais pu trouver ca tout seul lol est ce que ca revient au meme de dire (ligne en cours - 1 ) ?

- 3 - Comment je met le sujet en resolu ? :^^ edit : ps : rien dit j ai trouvé :p

Merci de ton aide a nouveau et surtout de ta persistance

J'espere que sur ma prochaine requete sur la date j'aurais le meme type d'aide :)

Pour une fois j ai hate d etre a demain au taf pour mettre en place la formule ^^

ps2 : je reve d'un jour ou on puisse transferer ses connaissances en deux clics comme dans Matrix lol
"J ai besoin de savoir piloter un helicoptere" xD
"Alain j ai besoin de =equiv(somme;"toutes tes conaissances sur excel") :D
 
Dernière édition:

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir à toutes & à tous, bonsoir @Neo Hyuga
1 - [#En-têtes] : excel interprete donc ca automatiquement comme la la ligne a en-tete de mon tableau ?
Oui, c'est la syntaxe pour désigner l'entête d'un tableau structuré
2 - : l'expression LIGNE()-LIGNE(tb[#En-têtes]) qui calcule le N° de la ligne courante :
Jamais j'aurais pu trouver ca tout seul lol est ce que ca revient au meme de dire (ligne en cours - 1 ) ?
Oui si la ligne de l'entête est 1, si l'entête est en ligne 5 c'est égal (la ligne en cours -5) ...

A bientôt
 

Neo Hyuga

XLDnaute Junior
bonjour Alain,

j ai bien peur de devoir te solliciter a nouveau lol

au taf j ai tester la formule mais sans succes, je crois qu excel bloque sur la reference si je comprend bien, j ai essayé en remettant les a1 : u1 avec et sans dollars, j ai tenté de jouer avec les parentheses, les dieses etc, bref j ai tenté plusieur combinaisons mais rien n y fait, aurais tu une idée stp ? ou d'autres personnes bien sur
 

Pièces jointes

  • IMG_4874.jpg
    IMG_4874.jpg
    551.3 KB · Affichages: 4

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir à toutes & à tous, bonsoir @Neo Hyuga

Peux-tu essayer au boulot le fichier que j'ai joint au post#16 ?

Ça nous éclairerait sur les éventuels problèmes de version (quelle version au boulot, quelle version chez toi ?), mon exemple fonctionne sur EXCEL2007 et EXCEL2021.

Autre point d’achoppement, tes données sont-elles dans un tableau structuré, et as-tu utilisé le nom de ce tableau (voir début du post#16 )? Car sinon tb[#En-têtes] n'a aucun sens dans les formules, si ton tableau s'appelle tableau1 il faudra utiliser tableau1[#En-têtes] ou renommer ce tableau.
Pour vérifier si tes données sont bien dans un TS, sélectionne une cellule de ces données et regarde si tu as dans le ruban un onglet "Création" ou "Création de tableau" qui s'affiche (dans cet onglet à gauche le nom du tableau est affiché :
dans 2007
1709580248484.png

dans 2021
1709580306038.png


A bientôt
 

Neo Hyuga

XLDnaute Junior
Salut Alain, normalement oui tout est conforme, mais je re verifierais demain a nouveau

c est excel 16 avec macro et vba desactiver, un rapport ptet ?

mon TS s appele TB et j ai bien respecté les majuscules

mon TS je l ai obtenu en faisant comme d hab, inserer tableau, c est ptet la mon erreur ?

en tout cas, tu vois partiellement sur ma derniere photo qu il y a les couleurs et les filtres d un tableau classique

sur ma derniere photo, le fait que reference soit en gras veut il dire que c est ce qu excel interprete comme non conforme a la formule ?

merci encore, plus d infos demain :)
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Re..

mon TS je l ai obtenu en faisant comme d hab, inserer tableau, c est ptet la mon erreur ?
Non c'est la façon normale de créer un TS. Par l'onglet accueil c'est un raccourci (choix de la mise en forme simultanée)
Les majuscules ne sont pas importantes (la formule reprendra la casse du nom donné).

Ta formule sur la capture d'écran me paraît bonne si elle se situe dans le TS et que le texte de l'entête cherchée est en $H$1. Mis à part les @ je ne sais pas si c'est correct dans 2016.
Peux-tu reconstruire la formule en utilisant les sélections de plage, sélectionne la cellule cible et dans la barre de formule tape =INDEX( etc :
1709585550440.gif


Bon essaie demain mon fichier on en saura peut-être un peu plus ..
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour à toutes & à tous, bonjour @Neo Hyuga
Si la cellule dans laquelle tu veux renvoyer la donnée est sur la même ligne que la donnée dans le tableau, la formule ne change pas :
1709635140932.gif

Cependant si tu as enregistré chez toi sur EXCEL 365, ressaisis la formule sur 2016 car tu vas être pollué par les @ ...

en dehors du tableau avec un décalage de lignes il te faudra prendre en compte ce décalage, c'est la partie "LIGNE()-LIGNE(tb[#En-têtes])" qu'il te faudra faire évoluer pour tenir compte de ce décalage
EDIT :
1709642012572.gif



A bientôt
 
Dernière édition:

Neo Hyuga

XLDnaute Junior
Salut Alain, j etais en reunion a l exterieur toute la journée, j'essaye demain, par contre est ce que tu aurais une solution alternative juste pour : [#En-têtes] stp ? j ai l impression que le souci vient surtout de la

On est pas tres loin, je le sens bien, a nouveau grand merci :)
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Re
est ce que tu aurais une solution alternative juste pour : [#En-têtes] stp ?
As-tu essayé de reconstruire au boulot la formule comme dans mes précédents post#23 et post25 en tapant dans ta cellule =INDEX( et en faisant le sélection à la souris ?
Pour voir si c'est tb[#En-têtes] qui pose problème, mets toi dans une cellule vide, tape = et sélectionne l'entête de ton tableau, tu verras bien ce que t'affiche ta version d'Excel. Mais je ne crois pas ...

A bientôt
 

Neo Hyuga

XLDnaute Junior
hello alain, la formule fonctionne c est bon, grand merci, c etaient les @ qui posaient souci lol
j ai le bon resultat mais au final c'est pas ce que je comptais avoir lol
la il est tard, je referais un post ce we avec plus de detail de toutes facons
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour à toutes & à tous, bonjour @Neo Hyuga :
INDEX( tb ; LIGNE()-LIGNE(tb[#En-têtes]) ; EQUIV(Z1;tb[#En-têtes];0) )
Mis à part les @ je ne sais pas si c'est correct dans 2016.
Cependant si tu as enregistré chez toi sur EXCEL 365, ressaisis la formule sur 2016 car tu vas être pollué par les @ ...

Et finalement :
c etaient les @ qui posaient souci lol
C' est curieux je ne sais pas si je t'avais alerté sur ce point !!! ... 🤣
A bientôt
 

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 180
dernier inscrit
Vcr