[RESOLU] Problème avec la fonction RECHERCHEV

servela

XLDnaute Nouveau
Bonjour,
Dans le cadre d'une analyse sur la saison cycliste à venir, j'ai récupérer des informations que j'aimerais traiter.
En 1ère partie, la liste des coureurs partants pour 2012, et leur valeur estimée.
En 2ème partie, la liste des coureurs et leur résultats sur la saison 2011.

J'aimerais, pour chaque coureur de 2012, savoir combien de points il a obtenu la saison précédente.
J'utilise pour ça la fonction RECHERCHEV :
Par exemple, pour Philippe Gilbert, je fait :
=RECHERCHEV(A2;$G$2:$L$715;6), et j'obtiens 3, à ma grande surprise (je suis incapable de savoir comment excell peut me renvoyer une tel valeur), alors que le résultat correcte est 1453.

Bref, je patauge.

Les point de la saisons 2011 se trouvent dans la colonne L, à l'exception de ceux qui ont un nom de famille " composé " (ca décale tout pour eux, faut encore que je m'attelle à ce problème).

Merci pour votre aide.

Cordialement, servela.
 

Pièces jointes

  • Coureurs.xlsx
    86.7 KB · Affichages: 120
  • Coureurs.xlsx
    86.7 KB · Affichages: 137
  • Coureurs.xlsx
    86.7 KB · Affichages: 139
Dernière édition:

servela

XLDnaute Nouveau
Re : Problème avec la fonction RECHERCHEV

Bonsoir CB60,

Merci beaucoup (pour la rapidité de ta réponse et son exactitude)! Ca fonctionne !
Une explication de ce que ce 0 apporte et corrige à ma formule ?


Maintenant, si quelqu'un a une solution pour le problème de colonne pour les noms composé, je suis preneur aussi. Est-ce possible de corriger cet alignement avec une macro ?
 

CB60

XLDnaute Barbatruc
Re : Problème avec la fonction RECHERCHEV

Re
tu peux tester cela en D2 et tirer vers le bas
=SI(NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";""))=4;INDEX(DECALER($L$2:$L$715;;2);EQUIV(A2;$G$2:$G$715;0));SI(NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";""))=3;INDEX(DECALER($L$2:$L$715;;1);EQUIV(A2;$G$2:$G$715;0));INDEX($L$2:$L$715;EQUIV(A2;$G$2:$G$715;0))))
 

servela

XLDnaute Nouveau
Re : Problème avec la fonction RECHERCHEV

A mon avis, c'est moi qui doit mal te comprendre, ou alors quelquechose m'échappe.
Quel différence y-a-t-il entre le résultat apporté par
=RECHERCHEV(A2;$G$2:$L$715;6;0)
et celui apporté par
=SI(NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";""))=4;INDEX(DECALER($L$2:$L$715;;2);EQUIV(A2;$G $2:$G$715;0));SI(NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";""))=3;INDEX(DECALER($L$2:$L$715;;1);EQUIV(A2;$G $2:$G$715;0));INDEX($L$2:$L$715;EQUIV(A2;$G$2:$G$7 15;0))))
??

La seconde formule est bien plus complexe (et pas qu'un peu), je me dis donc que tu as fait ça dans le but de résultats plus complets (je me trompe ?) or (mais c'est sans doute là que je me trompe) je ne vois aucune différence apparente (et m'interroge donc sur le fait d'avoir pondu un tel casse-tête pour un résultat équivalent). J'attends ta lumière sur ce point.

La première partie de mon problème, c'était au niveau de la formule, et c'est maintenant réglé (mais déjà avec ta première " simple " solution, je t'en remercie).

Le second problème que j'ai pour pouvoir concrètement traité les données, c'est au niveau des Noms. En effet, j'ai à la base intégrer les données par importations depuis un document texte, en choisissant délimité - par espace - afin de les placer dans les cellules. Ce qui a eu pour conséquence que, pour un coureur comme par exemple Guillaume VAN KEIRSBULCK (3 string), ses résultats sont décalés de 1 colonne, par rapport à la norme (2 string). Pour un coureur comme Koldo FERNANDEZ DE LARREA (4 string), ses résultats sont décalés de 2 colonnes.
Et donc, au niveau des résultat en appliquant la formule, ne devrait être " N/A " que les coureurs qui n'ont pas couru en 2011, ou bien ceux qui n'ont pas pris de point au cours de cette année.
Or a ceux-là s'ajoute tous les coureurs qui ont un prénom + nom supérieur à 2 string, qui ne sont pas pris en compte, vu que leur résultat est hors-champs "normal" je dirais.

Voila j'espère que c'est plus claire, merci pour ton aide en tous cas.
 

Alminar

XLDnaute Nouveau
Re : Problème avec la fonction RECHERCHEV

=RECHERCHEV(A2;$G$2:$L$715;6;FAUX)
si tu ne renseignes pas le quatrieme champ les resultats peuvent etre surprenant, faux te permet s de ne pas avoir de resultats approchants mais la reponse exacte ou pas de réponse.
 

CB60

XLDnaute Barbatruc
Re : Problème avec la fonction RECHERCHEV

Bonjour
sur le fichier je commence par rechercher le nombre d'espace en colonne A grace à:
NBCAR(A2)-NBCAR(SUBSTITUE(A2;" ";""))=4
si il y a 4 espaces je recherche le nom equivalent à A2 dans la colonne G grace à :
EQUIV(A2;$G$2:$G$1010;0))
et decale la colonne L de 2 grace à :
INDEX(DECALER($L$2:$L$1010;;2);
si je n'ai pas 4 espaces, je recherche si il y en a 3 et j'utilise la suite de la formule, enfin si les conditions 4 ou 3 espaces ne sont pas validés je prend en compte la colonne L.
La formule est beaucoup plus longue seulement pour gerer les noms composés
 

JNP

XLDnaute Barbatruc
Re : Problème avec la fonction RECHERCHEV

Bonjour le fil :),
Je suis plutôt parti sur la base de corriger les données de base, donc j'ai inséré deux colonnes H et J.
Pour récupérer le nom complet en H :
Code:
=J2&" "&K2&SI(NBVAL(O2:Q2)>0;" "&L2;"")&SI(NBVAL(O2:Q2)>1;" "&M2;"")&SI(NBVAL(O2:Q2)>2;" "&N2;"")
Les valeurs de NBVAL me permettent de vérifier si il y a plus de colonnes dû à l'éclatement des données, et à concaténer la totalité du nom :p...
Pour récupérer les points en I :
Code:
=DECALER(N2;;NBVAL(O2:Q2))
DECALER me permet d'aller chercher la dernière valeur de l'éclatement ;)...
Du fait, tu peux récupérer les points en D avec :
Code:
=SIERREUR(INDEX($I$1:$I$715;EQUIV(A2;$H$1:$H$715;0));"")
ESTERREUR (qui n'existe pas en 2003, mais tu es en 2007...) permet de ne pas afficher le #NA! et renvoit "" (tu peux mettre 0 si tu préfères), et je préfère le couple INDEX/EQUIV à RECHERCHEV :rolleyes:...
Ton fichier joint, voit si ça te convient :).
Bon dimanche :cool:
 

Pièces jointes

  • Coureurs.xlsx
    120.2 KB · Affichages: 64
  • Coureurs.xlsx
    120.2 KB · Affichages: 63
  • Coureurs.xlsx
    120.2 KB · Affichages: 74

JNP

XLDnaute Barbatruc
Re : Problème avec la fonction RECHERCHEV

Re :),
Tu as bien tout compris, mais il faudrait concaténer en conditionnel dans la formule pour l'EQUIV :rolleyes:...
D'où mes colonnes intermédiaires pour éviter une formule de 3km :p...
Bon dimanche :cool:
 

servela

XLDnaute Nouveau
Re : Problème avec la fonction RECHERCHEV

Merci beaucoup les amis !
JNP, c'est parfait, un grand grand merci !
CB60, un tout grand merci également pour ta précieuse aide, et désolé d'avoir été peu claire dans un premier temps.
Enfin, merci pour vos explications. Ce forum est un véritable plaisir, c'est agréable de voir des gens partager leur savoir de la sorte.

Bonne fin de week-end à tous :)
 

Discussions similaires

Statistiques des forums

Discussions
311 715
Messages
2 081 822
Membres
101 822
dernier inscrit
holale