RechercheV .... pour vaine !

vincent44

XLDnaute Nouveau
Bonjour,
Je suis coincé car RechercheV s'arrête à la première donnée trouvée. Or la table dans laquelle je dois extraire des données, la colonne A de référence peut être commune à plusieurs lignes.
Comment peut-on contourner ce problème.
Merci d'avance à ceux qui sauront m'apporter une réponse
En PJ le tableau de réference, la colonne A étant le secteur sur lequel la recherche sera réalisée
 

ballmaster

XLDnaute Occasionnel
Re : RechercheV .... pour vaine !

N'ayant pas le fichier, tu peux toujours essayeé une concaténation.

du style :

=recherchev(critère;matrice;n°col;faux)

ton critère doit être unique (principe de l'unicité).
dans la formule, ton critère recherché n'est pas unique, donc je te propose de concatener dans une colonne les colonnes nécessaires afin de remplir cette condition.
Par exemple, ta colonne a et b : crée une autre colonne dont la formule sera:
=a1&b1 (pour la ligne 1).

Ensuite ta fonction recherchev s'effectuera d'après ce nouveau critère unique.
 

vincent44

XLDnaute Nouveau
Re : RechercheV .... pour vaine !

Merci de la tentative, mais mes secteurs au-delà d'être partagés sont également multiples.
Si tu veux regarder j'attache cette fois ci le tableau xls.
 

Pièces jointes

  • exemple recherchev.xls
    39 KB · Affichages: 68
  • exemple recherchev.xls
    39 KB · Affichages: 72
  • exemple recherchev.xls
    39 KB · Affichages: 72

Monique

Nous a quitté
Repose en paix
Re : RechercheV .... pour vaine !

Bonjour,

Les numéros de ligne qui correspondent au secteur recherché par Grande.Valeur(Si())
Formule matricielle, à valider par ctrl, maj et entrée

Ensuite :
Decaler(Réf ; nb de lignes ; 0 colonne)
 

Pièces jointes

  • RechercheVincent.zip
    10.9 KB · Affichages: 36

vincent44

XLDnaute Nouveau
Re : RechercheV .... pour vaine !

Merci Monique pour cette formule qui effectivement sélectionne l'ensemble des lignes relatives au secteur demandé.
Par contre problème sur la formule "décaler" en J2 qui saute systématiquement une ligne par exemple: secteur 13
lignes: 7;8;9 (exact)
noms:CANTA;DELAL;BOUHO alors que ce devrait être BATTI;CANTA;DELAL.
J'imagine que c'est la référence qui est erronée, mais je n'arrive pas à rectifier.
Si tu pouvais y jeter un oeil. Merci de ton aide
 

Monique

Nous a quitté
Repose en paix
Re : RechercheV .... pour vaine !

Bonjour,

C'est le nb de lignes de décalage qui n'est pas bon

En K2 :
=SI($J2="";"";DECALER(B$1;$J2-1;0))

Pour avoir la ligne 7 :
si on décale B1 de 7 lignes, on arrive à la ligne 8
on décale donc de 7 - 1
 

Monique

Nous a quitté
Repose en paix
Re : RechercheV .... pour vaine !

Re,

Le fichier rectifié
plus :
une autre méthode avec Index(Plage ; n° de ligne)
une autre formule pour avoir les numéros de ligne
 

Pièces jointes

  • RechercheVincentV1.zip
    13.1 KB · Affichages: 39

vincent44

XLDnaute Nouveau
Re : RechercheV .... pour vaine !

Merci beaucoup, je ne voyais pas d'issue et je ne connaissais pas les formules matricielles.
J'ai essayé de l'appliquer à un autre cas mais avec beaucoup plus de lignes cette fois ci et il s'arrête à la ligne 91 qui était la dernière dans l'exemple que tu as traité. J'ai eu beau essayer de modifier la plage de données, mais il doit y avoir une autre astuce qui le bloque.
Tu dois avoir une petite idée j'imagine comme tu es à la base de ce tableau.
Merci de ton retour
 

Monique

Nous a quitté
Repose en paix
Re : RechercheV .... pour vaine !

Re,

C'est celle-ci, en J2, qui fait que ça s'arrête à 91
=SI(NB.SI(A$2:A$91;$I$1)<LIGNES(J$2:J2);"";PETITE.VALEUR(SI(A$2:A$91=$I$1;LIGNE(A$2:A$91));LIGNES(J$2:J2)))

Tu mets autre chose que 91

Le mieux serait de donner un nom à la plage des secteurs, par Insertion - Nom - Définir
Barre de menu - Insertion - Nom - Définir
En haut ("Noms dans le classeur"), tu tapes le nom choisi
En bas ("Fait référence à"), tu tapes
=DECALER($A$2;;;NB($A:$A))
Tu cliques sur "Ajouter" puis sur "OK" ou sur "Fermer"

La plage prise en compte par la formule démarrera en A2 et s'arrêtera à la dernière ligne contenant un n° de secteur

Du coup, en J2, tu pourras mettre celle-ci, peu importe le nombre de données :
=SI(NB.SI(Secteur;$I$1)<LIGNES(J$2:J2);"";PETITE.VALEUR(SI(Secteur=$I$1;LIGNE(Secteur));LIGNES(J$2:J2)))
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 719
Membres
110 551
dernier inscrit
Khyolyanna