Chercher une valeur lorsque le nom des colonnes diffèrent?

Résolu/Fermé
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016 - Modifié par biagjibs le 14/04/2015 à 21:17
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016 - 15 avril 2015 à 19:49
Bonsoir,

J'ai visioné les tutoriels (Index/Match/Lookup) pour chercher une valeur mais le probleme dans mon cas est que les colonnes (2eme feuille) ou je veux retourner les valeurs ont un nom different de celles ou sont présentent les valeurs (1ère feuille)..du coup je n'ai pas pu utiliser les méthodes proposés.

voici le fichier avec quelques données non réels: https://www.cjoint.com/c/EDovBVTMiM1


Ce que j'essaye de réaliser c'est: dans la feuille "Results" une fois que je sélectionne la classe, je sélectionne le nom (EngFirstName) puis dans la colonne C je récupére la valeur associé a mon choix dans la feuille: "StudentsData" dans les colonnes D, H, L,..etc De meme, associé a mon choix le nom du Teacher (colonne I )

Merci pour votre aide.


8 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
15 avril 2015 à 08:36
Bonjour
voyez si ce modèle peut vous aider, la cellule B2 est seule équipée de la proposition, à défaut de savoir ce que vous voulez placer dans les colonnes de Results
https://www.cjoint.com/c/EDpiQXy0yZK
les explications sont dans le modèle
pour ce qui est de la validation en B, elle ne peut pas fonctionner com
me vous l'avez placée car tous les champs nommés ont les mêmes limites.
Voyez comment est fait ce modèle

Par ailleurs, ces solutions fonctionnent avec les deux premières lettres du code classe, mais certains codes ont le même début et une troisième lettre. Ils seront pour l'instant groupés sans tenir comte de la lettre.
S'il faut les différencier,voyez pour passer à trois lettres en plaçant par exemple un tiret entre le code et le nom dans tous les cas
ex Y1-Names ou Y6G-Name
s
Il faudra alors dans les formules, dans les items GAUCHE(B2;2) écrire GAUCHE(B2;3)
(sur le tableau et dans le nom de Liste)

et si ça ne suffit toujours pas, revenez, on complètera
crdlmnt
1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 15/04/2015 à 13:19
Re
je n'avais pas percuté" sur l'organisation de votre base de données et surtout, j'avais pensé que vous cherchiez les noms en colonne C alors que chaque catégorie Y a sa liste

Mais dans tous les cas, il faut que dans la ligne 1 de Students, le titre correspondant à Yxx_name soit écrit de la même façon qu'en colonne A

voila ,donc une nouvelle version du fichier peut être mieux adapté si j'ai bien compris
https://www.cjoint.com/c/EDpnuDXtXkO
pour info:
le champ de la base de données de A1 à AK30 est nommé Champ
Les titres de A1à AK1 sont nommés titre
Le champ où doit être cherché le nom de résults est appelé Cherche, la formule affectée au nom permet de choisir le champ selon la valeur de résults en colonne B
Les formules sont placées dans les zones en gris. Pour Teatcher, la formule s'adresse au nom indiqué en ligne 2 de Students qui, je suppose est valable pour toutes la colonne correspondantes
j'ai placé en colonne A de Résults un menu déroulant qui fait référence à la colonne A de students nommée Liste_Y
revenez si besoin de complément où si ce n'est toujours pas ça.

crdlmnt

.... ps: et finalement, après réflexion dans ce contexte,avec cette version les formules peuvent se passer du code GAUCHE(cell;3) puisque dans tous les cas, le titre complet va se trouver à la fois en A de Results et en ligne 1 de Students
par exemple en C2 de Results, vous pouvez écrire:
=SI($A2="";"";SIERREUR(INDEX(Champ;EQUIV($B2;Cherche;0);EQUIV$A2;Titres;0)+2);""))

Errare humanum est, perseverare diabolicum
1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
15 avril 2015 à 13:27
... suite
voyez plutôt ce fichier qui résume tout ce que j'ai écris plus haut:
https://www.cjoint.com/c/EDpnNcMp3jE
la validation en colonne B fait maintenant référence au champ nommé Cherche, évolutif selon le nom placé en A dans résults
vous pouvez supprimer tous les autres champs nommés qui n'ont d'utilité pas pour ce système.
crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
15 avril 2015 à 14:23
.... décalage dans les références. Avec mes excuses
prenez ce fichier V5_(ou corriger le votre, il suffit de faire démarrer l'adresse du nom Champ en A2 au lieu de A1
https://www.cjoint.com/c/EDpoKM6AV3t
crdlmnt
0
DjiDji59430 Messages postés 4037 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 26 avril 2024 646
15 avril 2015 à 16:40
Bonjour,

Maintenant que j'ai compris le but de la manoeuvre, j'ai persévéré dans mes décalages ......
Moins élégant que Vaucluse mais parfaitement fonctionnel.
Je le mets quand même.

https://www.cjoint.com/c/EDpq1f0pLYj

On ne répétera jamais assez que tout est dans le premier post qui doit être impérativement exhaustif et avec le plus d'explications possible. Y a des rapides, y a des lents !!
1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 15/04/2015 à 19:21
Ca n'était pas une mauvaise idée de créer une colonne avec les correspondance, en ligne avec la colonne A de Students... elle était même bonne.(en plaçant ça par exemple en AL et en agrandissant la plage nommée champ jusqu'à A)
Mais compte tenu qu'il n'y a que deux variables et qu'on peut facilement identifier ou elles sont, vous pouvez écrire:
=SI(A2="";"";SI(OU($A2="Y2_Names";$A2="Y3_Names";NB.SI(A2;"*B*"));"M";"F"))

qui donnera M pour Y2_Names, Y3_Names et tous les autres qui contiennent la lettre B, le F étant affecté aux autres, à condition qu'il y ait une valeur en A


crdlmnt


Errare humanum est, perseverare diabolicum
1
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016
15 avril 2015 à 19:49
c'est parfait!!

un grand merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DjiDji59430 Messages postés 4037 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 26 avril 2024 646
15 avril 2015 à 00:06
0
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016
15 avril 2015 à 08:10
Merci pour ton aide,

Il y'a cependant 2 ou 3 petits problèmes:

la formule:
=IFERROR(OFFSET(INDEX(Y1Names,MATCH(Results!$B6,$B$2:$B$27,0)),0,1),"")


recherche la valeur associé dans Y1Names seulement...
mais si j'ai sélectionné Y2Names, Y3Names ...comment faire l'index pour rechercher dans les bonnes colonnes?

Puis j'ai remarqué que si j'essaye de changer ma sélection, les valeurs ne sont pas mises à jour?? D'autant plus que les valeur retournées ne sont pas correctes

voici le fichier à nouveau (j'ai mis des nombres Dans Y1ArNames, Y2ArNames..à la place des noms en langue étrangere) pour plus de clarité

https://www.cjoint.com/c/EDpiwuhWc01

Merci pour toute suggestion.
0
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016
15 avril 2015 à 12:29
Merci beaucoup

Donc j'ai changé les noms comme suggéré: (Y1_Names,....,Y6B_Names)

dans le Colonne C, j'ai fait le changement (GAUCHE(B2;3)

=IFERROR(INDEX(StudentsData!$A$1:$AK$30,MATCH(B2,StudentsData!$C$1:$C$30,0),MATCH(LEFT($A2,3)&"*",StudentsData!$A$1:$AK$1,0)+1),"")


donc pour Y1_Names tout marche parfaitement, j'ai réussi a faire les bon décallages etc.., sauf que si je choisis une autre classe (Y2_Names, Y3_Names etc..) ça ne marche plus??

voici le fichier:

https://www.cjoint.com/c/EDpmPJWdbGm

Merci encore pour votre aide
0
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016
15 avril 2015 à 18:07
Merci infiniment à tout les deux..j'apprécie votre aide.

les deux méthodes marchent trés bien
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
15 avril 2015 à 18:08
OK, alors on passe le sujet en résolu
Bonne route
crdlmnt
0
biagjibs Messages postés 53 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 février 2016
Modifié par biagjibs le 15/04/2015 à 18:52
il y'a une colonne ou j'aimerai retourner une valeur precise selon la sélection:
si sélection est Y1_Names retourner F
Y2_Names => M
Y3_Names => M
Y4B_Names => M
Y4G_Names => F
Y5B_Names => M
Y5G_Names => F
Y6B_Names => M
Y6G_Names => F
Pouvez-vous m'aider sur cette derniere étape?

j'étais sur le point de créer une colonne dans la premiere feuille et rechercher ces valeurs (F,M), je pense pouvoir le faire, mais peut etre qu'il y'a une meilleur méthode étant donné que les valeurs sont fixes.

merci
0