Excel Recherchev en mieux
Résolu
eljojo_e
Messages postés
1155
Date d'inscription
Statut
Membre
Dernière intervention
-
eljojo_e Messages postés 1155 Date d'inscription Statut Membre Dernière intervention -
eljojo_e Messages postés 1155 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise la fonction recherchev car j'ai une liste de commune (176 exactement) et une deuxième liste de commune qui n'est pas écrite tout à fait pareil :
Ex : 1ere liste : SAINT ETIENNE ----> 2eme liste : ST ETIENNE etc..
Il n'y a pas beaucoup de différence mais la fonction recherchev (x;x;x;VRAI-> approximatif) ne trouve pas la bonne correspondance (même jamais) j'ai l'impression qu'il commence au début de la liste et que le premier qui ressemble un peu près il s'arrête.
Si vous pouvez m'aider,
Cordialement,
J'utilise la fonction recherchev car j'ai une liste de commune (176 exactement) et une deuxième liste de commune qui n'est pas écrite tout à fait pareil :
Ex : 1ere liste : SAINT ETIENNE ----> 2eme liste : ST ETIENNE etc..
Il n'y a pas beaucoup de différence mais la fonction recherchev (x;x;x;VRAI-> approximatif) ne trouve pas la bonne correspondance (même jamais) j'ai l'impression qu'il commence au début de la liste et que le premier qui ressemble un peu près il s'arrête.
Si vous pouvez m'aider,
Cordialement,
A voir également:
- Excel Recherchev en mieux
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
9 réponses
Salut,
La fonction RECHERCHEV n'affiche que la première valeur trouvée, dans le cas de réponse multiple plusieurs possibilités avec la syntaxe Index par exemple mais le mieux serait d'avoir ton fichier ou un exemple de fichier pour écrire une formule adaptée. tu peux joindre ton fichier avec ce lien
https://www.cjoint.com/
La fonction RECHERCHEV n'affiche que la première valeur trouvée, dans le cas de réponse multiple plusieurs possibilités avec la syntaxe Index par exemple mais le mieux serait d'avoir ton fichier ou un exemple de fichier pour écrire une formule adaptée. tu peux joindre ton fichier avec ce lien
https://www.cjoint.com/
Re,
on a bien ton classeur mais tu n'as qu'une liste alors qu'il était question de plusieurs listes.
et si pour ma part j'ai bien compris, plusieurs noms identiques pouvaient exister.
dans le fichier que tu as joint que veux tu faire ?
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
on a bien ton classeur mais tu n'as qu'une liste alors qu'il était question de plusieurs listes.
et si pour ma part j'ai bien compris, plusieurs noms identiques pouvaient exister.
dans le fichier que tu as joint que veux tu faire ?
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Alors en faite : J'ai une liste de commune (a droite dans le fichier) et j'ai des noms de commun (à gauche) qui sont tapé à la main par des personnes différentes. Le problème c'est qu'aucune personnes ne l'écrit pareil et je voudrais faire en sorte de faire un lien automatique entre ses 2 écriture.
ex:
personne 1 : Saint genis
personne 2 : ST GENIS
personne 3 : ST-GENIS
personne 4 : SAINT-genis
Liste de commune : SAINT GENIS
RechercheV(X;X;X;VRAI) ne fonctionne pas.
Merci d'avance !
ex:
personne 1 : Saint genis
personne 2 : ST GENIS
personne 3 : ST-GENIS
personne 4 : SAINT-genis
Liste de commune : SAINT GENIS
RechercheV(X;X;X;VRAI) ne fonctionne pas.
Merci d'avance !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
1° message pas passé!
peut être quelque chose à exploiter
vous pouvez trouver comment est écrit le 1° nom dans la liste avec une recherche partielle de texte
soit pas exemple pour trouver la façon don est écrite le ^premier St Genis dans une colonne A:
=RECHERCHEV("*genis*";A:A;1;0)
le texte entre guillemets + astérisques n'est pas sensible à la casse et vous renvoie le premier texte de la liste qui contient Genis quelque soit la façon dont il est écrit, ainsi que le texte qui le complète.
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
1° message pas passé!
peut être quelque chose à exploiter
vous pouvez trouver comment est écrit le 1° nom dans la liste avec une recherche partielle de texte
soit pas exemple pour trouver la façon don est écrite le ^premier St Genis dans une colonne A:
=RECHERCHEV("*genis*";A:A;1;0)
le texte entre guillemets + astérisques n'est pas sensible à la casse et vous renvoie le premier texte de la liste qui contient Genis quelque soit la façon dont il est écrit, ainsi que le texte qui le complète.
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Super ça marche nikel, mais
je fait comment vu que j'ai 177 commune etplein de facon différente de l'écrire^^...
je fait comment vu que j'ai 177 commune etplein de facon différente de l'écrire^^...
Dans ce fichier https://www.cjoint.com/?3CDkkyYqZgl
La colonne I est la liste des communes standard.
J'ai écrit deux exemple : cellule "valeur brut" que n'importe qui peut écrire n'importe comment (ou presque) et je cherche à faire une recherche dans cette liste (en I) pour que dans la cellule "valeur cherché" j'ai la bonne écriture (celle de la colonne I)
^^ dsl si c'est incompréhensible
La colonne I est la liste des communes standard.
J'ai écrit deux exemple : cellule "valeur brut" que n'importe qui peut écrire n'importe comment (ou presque) et je cherche à faire une recherche dans cette liste (en I) pour que dans la cellule "valeur cherché" j'ai la bonne écriture (celle de la colonne I)
^^ dsl si c'est incompréhensible
Bonjour,
Ne serait-il pas envisageable qu'au lieu de faire saisir par l'utilisateur le nom d'une commune (qui sera orthographiée différemment d'un utilisateur à l'autre), de lui afficher une liste déroulante des 177 communes possibles ?
Ne serait-il pas envisageable qu'au lieu de faire saisir par l'utilisateur le nom d'une commune (qui sera orthographiée différemment d'un utilisateur à l'autre), de lui afficher une liste déroulante des 177 communes possibles ?
alors il faudra passer par une macro, (ce n'est pas dans mes compétences) à moins que la solution ci joint puisse vous suffire, c'est une cote mal taillée qui permet de rechercher une liste de noms à partir d'un nombre de lettres variable en fin du nom cherché,, et au final de trouver celui qui correspond à ce que vous cherchez.
Mais avant de l'appliquer, il faut débarrasser votre liste en I des tirets qui empêchent de traiter un texte assez long, soit donc:
sélectionner colonne I
crtl+h
remplacer
en haut le tiret
en bas le blanc
https://www.cjoint.com/?BCDrqcGZX5T
crdlmnt
Mais avant de l'appliquer, il faut débarrasser votre liste en I des tirets qui empêchent de traiter un texte assez long, soit donc:
sélectionner colonne I
crtl+h
remplacer
en haut le tiret
en bas le blanc
https://www.cjoint.com/?BCDrqcGZX5T
crdlmnt
Re,
Bonsoir mon ami Vaucluse et merci d'avoir pris le relai, je me suis absenté.
Une proposition avec liste déroulante qui s'adapte en fonction de la première lettre saisie en majuscule ou minuscule
https://www.cjoint.com/?BCDxlP5avrC
Bonsoir mon ami Vaucluse et merci d'avoir pris le relai, je me suis absenté.
Une proposition avec liste déroulante qui s'adapte en fonction de la première lettre saisie en majuscule ou minuscule
https://www.cjoint.com/?BCDxlP5avrC
Re bonjour,
Merci pour votre aide, du cou j'ai écrit un code qui compare les noms des communes:
Public Function compare(aa As String, bb As String)
ma = Application.WorksheetFunction.Max(Len(aa), Len(bb))
b = 0
For a = 1 To ma
If Right(Left(LCase(aa), a), 1) = Right(Left(LCase(bb), a), 1) Then b = b + 1
If Left(Right(LCase(aa), a), 1) = Left(Right(LCase(bb), a), 1) Then b = b + 1
Next
compare = b
End Function
J'ai fait des tests, à chaque fois la valeur max de b tombe sur la commune recherché !
merci bien en tout cas @ +
Merci pour votre aide, du cou j'ai écrit un code qui compare les noms des communes:
Public Function compare(aa As String, bb As String)
ma = Application.WorksheetFunction.Max(Len(aa), Len(bb))
b = 0
For a = 1 To ma
If Right(Left(LCase(aa), a), 1) = Right(Left(LCase(bb), a), 1) Then b = b + 1
If Left(Right(LCase(aa), a), 1) = Left(Right(LCase(bb), a), 1) Then b = b + 1
Next
compare = b
End Function
J'ai fait des tests, à chaque fois la valeur max de b tombe sur la commune recherché !
merci bien en tout cas @ +