Excel 2010 - Recherche entre 2 bornes
Résolu
COCOISE_60
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai besoin d'aide pour le problème suivant :
J'ai un fichier qui comporte 2 feuilles.
Dans la Feuil1 j'ai une colonne qui liste des identifiants uniques de type "000030-44440" (cet identifiant = concaténation d'un numéro de client et d'une date).
Dans la Feuil2 j'ai 3 colonnes :
ColA = valeur min. pour un identifiant (ex. 000118-44439)
ColB = valeur max. pour un identifiant (ex. 000118-44445)
ColC = une donnée que je veux récupérer si ma recherche aboutit
Je souhaite que pour chaque ligne de ma Feuil1 une vérification soit faite sur toutes les lignes de la Feuil2 afin de déterminer un identifiant compris entre les bornes est trouvé. Si la concordance est établie, je dois rapatrier la donnée de la colonne C.
Ex. Feuil1 identifiant = 012345-44426
Feuil2 présence sur une des lignes en ColA = 012345-44424 et en ColB = 012345-44432 (ColC = "blabla")
Dans ce cas l'identifiant Feuil1 est contenu entre 2 bornes de la Feuil2, la valeur "blabla" sera rapatriée en Feuil1.
Je précise que mes 2 feuilles peuvent lister plusieurs fois le même numéro client mais concaténé avec des dates différentes : il est donc possible qu'1 identifiant Feuil1 concorde avec plusieurs lignes de la Feuil2 : mais si j'en trouve 1 ça me suffit.
Mes listes sont assez longues (plusieurs dizaines de milliers de lignes chacune).
Le tout en Excel 2010...
J'ai tenté avec des formules de type SOMMEPROD, RECHERCHEV, INDEX... sans succès. Je ne me suis pas essayée au VBA car je ne suis pas à l'aise avec les boucles... Mes recherches sur différents forum n'ont rien donné, bref, toute aide sera bienvenue ^^
Merci merci
J'ai un fichier qui comporte 2 feuilles.
Dans la Feuil1 j'ai une colonne qui liste des identifiants uniques de type "000030-44440" (cet identifiant = concaténation d'un numéro de client et d'une date).
Dans la Feuil2 j'ai 3 colonnes :
ColA = valeur min. pour un identifiant (ex. 000118-44439)
ColB = valeur max. pour un identifiant (ex. 000118-44445)
ColC = une donnée que je veux récupérer si ma recherche aboutit
Je souhaite que pour chaque ligne de ma Feuil1 une vérification soit faite sur toutes les lignes de la Feuil2 afin de déterminer un identifiant compris entre les bornes est trouvé. Si la concordance est établie, je dois rapatrier la donnée de la colonne C.
Ex. Feuil1 identifiant = 012345-44426
Feuil2 présence sur une des lignes en ColA = 012345-44424 et en ColB = 012345-44432 (ColC = "blabla")
Dans ce cas l'identifiant Feuil1 est contenu entre 2 bornes de la Feuil2, la valeur "blabla" sera rapatriée en Feuil1.
Je précise que mes 2 feuilles peuvent lister plusieurs fois le même numéro client mais concaténé avec des dates différentes : il est donc possible qu'1 identifiant Feuil1 concorde avec plusieurs lignes de la Feuil2 : mais si j'en trouve 1 ça me suffit.
Mes listes sont assez longues (plusieurs dizaines de milliers de lignes chacune).
Le tout en Excel 2010...
J'ai tenté avec des formules de type SOMMEPROD, RECHERCHEV, INDEX... sans succès. Je ne me suis pas essayée au VBA car je ne suis pas à l'aise avec les boucles... Mes recherches sur différents forum n'ont rien donné, bref, toute aide sera bienvenue ^^
Merci merci
A voir également:
- Excel recherche valeur entre deux bornes
- Nombre de jours entre deux dates excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Déplacer colonne excel - Guide
6 réponses
Bonjour,
Doit-on considérer que 000118-44424 est plus petit que 012345-44432?
Je n'ai aucun moyen de comparer ce qui n'est pas des nombres, sauf si les 2 parties du côté du tiret ont toujours la même structure et, mieux, le même nombre de caractères de sorte à extraire une partie puis l'autre qui elles pourront être comparées à des nombres pour la seconde, à rien pour la première (000118 n'est pas un nombre), sauf par exemple, en supposant que ce puisse être aussi faible que 000001, à multiplier par 100 000.
Doit-on considérer que 000118-44424 est plus petit que 012345-44432?
Je n'ai aucun moyen de comparer ce qui n'est pas des nombres, sauf si les 2 parties du côté du tiret ont toujours la même structure et, mieux, le même nombre de caractères de sorte à extraire une partie puis l'autre qui elles pourront être comparées à des nombres pour la seconde, à rien pour la première (000118 n'est pas un nombre), sauf par exemple, en supposant que ce puisse être aussi faible que 000001, à multiplier par 100 000.
Bonjour
Sans exemple de ton fichier, il faut se livrer à des suppositions!
Voici un exemple de fonction personnalisée, à adapter à ton cas
https://www.cjoint.com/c/LDlpeN41roG
Cdlmnt
Via
Sans exemple de ton fichier, il faut se livrer à des suppositions!
Voici un exemple de fonction personnalisée, à adapter à ton cas
https://www.cjoint.com/c/LDlpeN41roG
Cdlmnt
Via
Tout d'abord un énorme merci pour vos réponses !!! Cela fait plusieurs jours que je suis sur mon fichier ce qui explique mes remerciements tardifs (je travaille sans Internet).
J'ai testé la macro de Via et elle compare les données comme demandé, le seul truc c'est que la valeur rapatriée n'est pas la bonne (je me rends compte que je me suis mal expliquée dans mon post de départ : toutes mes excuses pour cela)
Donc j'ai constitué un fichier d'école pour que ce soit plus facile...
https://www.cjoint.com/c/LDom37Ig2zT
Encore merci x 100000000 pour votre aide ^^
J'ai testé la macro de Via et elle compare les données comme demandé, le seul truc c'est que la valeur rapatriée n'est pas la bonne (je me rends compte que je me suis mal expliquée dans mon post de départ : toutes mes excuses pour cela)
Donc j'ai constitué un fichier d'école pour que ce soit plus facile...
https://www.cjoint.com/c/LDom37Ig2zT
Encore merci x 100000000 pour votre aide ^^
Re,
Avec ton fichier exemple c'est plus explicite et dans ce cas même pas besoin de macro, un formule suffit :
https://www.cjoint.com/c/LDonQciyaqG
Cdlmnt
Via
Avec ton fichier exemple c'est plus explicite et dans ce cas même pas besoin de macro, un formule suffit :
https://www.cjoint.com/c/LDonQciyaqG
Cdlmnt
Via
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii !!!!!!!!!!!!!!!!!!!!!!!
Ça marche trop bien ^^
Je n'avais pas pensé à imbriquer les "INDEX" : ça va me servir dans plein d'autres cas ^^
Un énorme soulagement pour moi, merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci
Ça marche trop bien ^^
Je n'avais pas pensé à imbriquer les "INDEX" : ça va me servir dans plein d'autres cas ^^
Un énorme soulagement pour moi, merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci