M'aider sur RECHERCHV

Résolu/Fermé
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 - 9 janv. 2013 à 18:31
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 - 13 janv. 2013 à 15:27
Bonjour,

je souhaite renseigner dans le TABLEAU 1 les colonnes "Zone" et "Ville centrale" à partir de la valeur "code postal" que je retrouve également dans le TABLEAU 2.

J'ai essayé d'utiliser la fonction RECHERCHV mais les résultats attendus sont faux.

Je vous joins mon fichier : https://www.cjoint.com/?3AjsEiXmJ42


NB : certains codes postaux sont incomplets.

merci à vous



14 réponses

Sloubi76 Messages postés 1366 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 10 décembre 2016 135
9 janv. 2013 à 19:06
Bonsoir,

le résultat n'est pas faux, il correspond à la 1ère occurrence rencontrée en fonction de la cellule de référence.
tel est le résultat si les données ne sont unique dans la base de recherche.

De plus n'ayant pas de données au delà du code commune 08531 la recherche sur Zip 14, 16 ... ne peut aboutir.



@+
1
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
9 janv. 2013 à 21:11
Bonsoir,

Merci pour votre retour mais je ne comprends pas.

Si vous recopiez la formule vers le bas, vous verrez qu'apparait "Vendée" avec des codes postaux ou début de codes postaux qui ne correspondent pas.

Il y a plus de 11000 enregistrements pour les codes postaux dans le tableau 2. Il n'en manque pas

Merci
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
9 janv. 2013 à 23:28
Bonsoir,

Je te propose ces 2 formules matricielles :
=INDEX($J$5:$J$11463,EQUIV(TEXTE(--$A5,"000"),GAUCHE($E$5:$E$11463,3),0))
et
=INDEX($K$5:$K$11463,EQUIV(TEXTE(--$A5,"000"),GAUCHE($E$5:$E$11463,3),0))
Il faut les valider par CTRL+MAJ+ENTER (et remplacer mes options régionales par les françaises).

Cordialement
0
Raymond PENTIER Messages postés 58721 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 novembre 2024 17 236
10 janv. 2013 à 03:13
Bonjour romanza.

RECHERCHEV est une fonction très puissante, mais qui exige des règles strictes pour marcher correctement :
- il ne faut pas de ligne vide
- le critère de recherche doit être dans la colonne la plus à gauche
- cette colonne contenant les critère ne doit contenir aucun doublon.

Dans ton cas, cette troisième condition n'est pas du tout remplie !

De plus l'affichage "Vendée" est normal, puisqu'en ligne 10, la formule recherche la valeur associée au contenu de la cellule A10, qui est 14 ; or dans ta colonne E il n'existe pas de COM_CT ayant le N°14 ; donc la fonction affiche la dernière valeur de la plage E5:K11463 c'est-à-dire Vendée !
0

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

Posez votre question
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
10 janv. 2013 à 21:33
Bonsoir à vous,

Je ne reprends mes messages que ce soir.

Je vous remercie pour vos retours.

Je vais prendre le temps de regarder ce que vous proposez et reviens vers vous.

Bonne soirée
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
10 janv. 2013 à 22:00
Bonsoir,



JvDo, si je copie la 1ère formule dans B5, cela ne fonctionne pas.

J'ai fait CTRL+MAJ+ENTER et excel m'indique que ma formule contient une erreur.

@+
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
10 janv. 2013 à 22:17
Bonsoir,

tu as bien remplcé mes virgules par des points virgules?
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
11 janv. 2013 à 21:53
Bonsoir,

J'ai remplacé les virgules par des points virgules, cela fonctionne jusque la ligne 14

puis #N/A de la ligne 15 à 20

puis c'est OK de 21 à 64

puis #N/A de 65 à 74

puis OK de 75 à 160

puis #N/A de 161 à 163

OK de 164 à 176

Puis #N/A jusqu'au bout
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
11 janv. 2013 à 23:29
Bonsoir,

Qu'as-tu en colonne A?
Des fois 2 chiffres (n° département?) des fois 3 chiffres, des fois 5 (sans doute un code postal, des fois du texte (un code postal dont le séparateur est un espace) et des fois ..... des trucs bizarres

Pour ce qui ressemble à un code postal, essaye :
=RECHERCHEV(TEXTE(SUBSTITUE(A330," ","")*1,"00000"),$I$5:$K$11430,2,FAUX)
et
=RECHERCHEV(TEXTE(SUBSTITUE(A330," ","")*1,"00000"),$I$5:$K$11430,3,FAUX)
(Là, il n'y a plus de CTRL+MAJ+ENTER. Je me demande d'ailleurs pourquoi je t'ai proposé ces formules matricielles!)

Malgré tout, tu trouveras encore des erreurs du fait que tous les CP ne sont pas dans ta table.

Solution : fiabilise tes données.

Cordialement
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 janv. 2013 à 00:02
ça ne marche pas.

Ne peut-on pas créer à côté de la colonne zip une colonne avec formule qui transformerait (on acceptera cette approximation) :

1) tous les codes postaux incomplets en codes complets : ex 14 devient 14000,

234 devient 23400, 5467 devient 54670

2) les codes postaux avec trop de chiffres, prendre uniquement les 5 premiers chiffres

3) les codes avec un espace type : 14 200 devient 14200

Puis à utiliser cette colonne "toilettée" pour obtenir le résultat voulu.

Merci
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
12 janv. 2013 à 04:53
Qu'est-ce qui ne marche pas?

Sur ton fichier, cette formule ramène 14 029 informations sur 18 400 soit 76%.
Donc ne dit pas que ça ne marche pas.

Tu auras toujours des erreurs puisque ta table de recherche ne contient pas les informations recherchées.
16, 17, 35, 37, 44, 45, 59, 72, 76, 79, 80, 86, 160, 161, 175, 229, 509, 569, ....... sont dans ce cas là avec 4 000 autres lignes.

Avec ce que tu proposes de faire dans une colonne approximative, tu récupèreras un peu plus de 300 erreurs.

Pour qu'il y ait moins d'erreur, il faut soit une règle moins restrictive, soit une table de recherche complétée des valeurs manquantes.

Une idée : pourquoi ne pas rappatrier les infos d'un code postal construit sur le n° de département et un complément présent dans la table.
Ainsi, tous les 59000 qui n'aboutissent nul part serait "redirigés sur le premier 59 présent dans la table, à savoir 59100 qui trouverait Lille.

En faisant ainsi, tu monteras à 15 777 correspondances. Plus que 2700....

Pour les 2 700 encore en erreur, il suffit de regarder les n° de départements correspondants, manquant dans la table.
Et il y en a ..................5 !! à savoir 16, 17, 44, 79, 86.
Imaginons que tu ajoutes à la table ces 5 entrées (avec "000" en plus pour faire un code postal), tu arriveras à 18 400 correspondances sur 18 400

cordialement
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 janv. 2013 à 11:42
Bonjour,

Merci pour ton aide.

Je vais prendre le temps d'essayer et je te tiens au courant.

Cordialement
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 janv. 2013 à 13:32
Je ne m'en sors pas.

Peux-tu regarder une solution de compromis.

Je voudrais à minima pouvoir utiliser cette fonctionnalité sur les départements 59 et 44.

Acceptes-tu de me proposer le fichier correspondant à laisser sur ci-joint.com.

Merci
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
12 janv. 2013 à 14:28
j'ai ajouté les départements en I11458:K11462 avec des données loufoques qu'il te faudra corriger.

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

cordialement
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
12 janv. 2013 à 19:57
Bonsoir,

Je te remercie pour ce super boulot.

Tu as donc dû étoffer ta formule?

Ce que je ne comprends pas, c'est pourquoi il faut déterminer des zones pour 16 par exemple et pas pour 02?


Cordialement.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
12 janv. 2013 à 22:38
Bonsoir,

La formule a dû s'épaissir pour tenir compte des 3 ou 4 situations particulières à gérer (longueur du contenu de la colonne ZIP, présence d'espaces, absence de zéros en tête de code) mais ne pouvait fournir de solutions pour les ZIP n'apparaissant pas dans la colonne COM_Codepostal.

En effet, RECHERCHEV() a besoin que la valeur cherchée soit dans la 1ère colonne de la matrice à partie de laquelle on veut récupérer de l'info (Raymond Pentier te l'a expliqué dans un post précédent).

D'où la nécessité de créer les 5 codes manquant dans la table (colonne I, J, K).
Ces codes ont été créés avec une terminaison "000" parce que la formule construisait un ZIP à partir des 2 caractères de gauches (le département a priori) complétés par "000".
J'ai donc créé 16000, 17000, 44000, ....qui n'existent peut-être pas dans la réalité de COM_Codepostal.
Le code 02000 existant dans COM_Codepostal, il n'a pas été nécessaire de le créer.

Cordialement
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
13 janv. 2013 à 11:02
Bonjour,

Merci pour ces explications très claires.

Dans la réalité, le code ZIP est associé à un champ qui n'apparait pas dans le tableau 1 correspondant à des volumétries qui évoluent au fil du temps.

Le tableau 1 va être ensuite agencé en tableau croisé dynamique pour avoir la volumétrie par zone (Amiens/Caen/Rouen par ex)

Je vais recevoir régulièrement une mise à jour des chiffres et certainement avec encore des surprises sur la qualité des codes postaux (il s'agit en fait de reports de lecture optique de coupons remplis à la main et parfois donc de manière très approximative comme tu as pu le constater)

Si j'ai bien compris, un fois la nouvelle liste obtenue, il suffira :

1) de ré incrémenter ta formule

2) une fois la valeur erreur N/A apparaissant, aller dans le tableau 2 pour créer les codes postaux XX000 correspondants ainsi que les zone associées.




Autre question : que me conseilles-tu pour approcher ton niveau de maîtrise des formules Excel.

Cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
13 janv. 2013 à 13:50
Bonjour,

Le mode opératoire est ok tant que les nouvelles listes présentent les mêmes anomalies que celles gérées par les formules.
Si après ces adaptations, il reste des erreurs, il faudra trouver d'autres formules.

Ce qui te permettra de progresser sur Excel.


"Autre question : que me conseilles-tu pour approcher ton niveau de maîtrise des formules Excel."

Passer du temps sur le forum, essayer de comprendre les trucs et astuces de chacun en les testant, avoir besoin et envie d'améliorer sa façon de travailler, mais y aller doucement quand même pour ne pas se décourager.
Bref, c'est comme pour le vélo : il faut des heures de selle.

Cordialement
0
romanza Messages postés 249 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 10 avril 2023 2
13 janv. 2013 à 15:27
Merci encore pour ton aide précieuse.

Bon dimanche

Romanza
0