J'ai un fichier A avec des 3 colonnes de nom, ville, code postal.
un autre fichier B avec 4 colonnes de code, nom, ville, code postal
je voudrais dans le premier fichier mettre le code correspondant au
nom uniquement si les 3 critères : nom, ville, code postal, entre les 2
fichiers sont vrais.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que dans le
fichier B
je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou plus
correspondent, accepter la validation sur le nom)
j'ai essayer recherche equiv avec si , mais une macro surtout si je peux
demander un nombre de caractères identiques dans les colonnes "nom". Mais
voilà cette macro là ??? !!!!.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
chrisn
"ptck" a écrit dans le message de news:
je voudrais dans le premier fichier mettre le code correspondant au
nom uniquement si les 3 critères : nom, ville, code postal, entre les 2
fichiers sont vrais.
Pour qu'une telle recherche marche ave index/equiv, commencez par
concatener codepostal + ville + nom dans une nouvelle colonne dans les deux tableaux.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que dans le
fichier B je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou plus
correspondent, accepter la validation sur le nom)
Oui, bien sûr, en utilisant la fonction gauche(nom,5) dans la
concatenation. par contre cela vous causera d(autre problèmes : nom inférieur à 5 lettres, homonynie sur les 5 premières lettres... S'il s'agit d'une transcription qui doit être unique, vous avez intérêt à commencer par faire la première recherche (identité sur le nom complet) et à filtrer le résultat pour continuer une recherche ensuite sur 5 ou 4 lettres, après avoir vérifier qu'il ne vous reste pas de doublon au niveau des noms réduits. (tri avec suppression des doublons doit vous donner le même nombre de ligne que le fichier original)
-- chrisn mettre le bon fai, libertysurf pour me répondre
"ptck" a écrit dans le message de news:
je voudrais dans le premier fichier mettre le code correspondant
au
nom uniquement si les 3 critères : nom, ville, code postal, entre
les 2
fichiers sont vrais.
Pour qu'une telle recherche marche ave index/equiv, commencez par
concatener
codepostal + ville + nom dans une nouvelle colonne dans les deux
tableaux.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que
dans le
fichier B
je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou
plus
correspondent, accepter la validation sur le nom)
Oui, bien sûr, en utilisant la fonction gauche(nom,5) dans la
concatenation. par contre cela vous causera d(autre problèmes : nom
inférieur à 5 lettres, homonynie sur les 5 premières lettres...
S'il s'agit d'une transcription qui doit être unique, vous avez
intérêt à commencer par faire la première recherche (identité sur le
nom complet) et à filtrer le résultat pour continuer une recherche
ensuite sur 5 ou 4 lettres, après avoir vérifier qu'il ne vous reste
pas de doublon au niveau des noms réduits. (tri avec suppression des
doublons doit vous donner le même nombre de ligne que le fichier
original)
--
chrisn
mettre le bon fai, libertysurf pour me répondre
je voudrais dans le premier fichier mettre le code correspondant au
nom uniquement si les 3 critères : nom, ville, code postal, entre les 2
fichiers sont vrais.
Pour qu'une telle recherche marche ave index/equiv, commencez par
concatener codepostal + ville + nom dans une nouvelle colonne dans les deux tableaux.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que dans le
fichier B je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou plus
correspondent, accepter la validation sur le nom)
Oui, bien sûr, en utilisant la fonction gauche(nom,5) dans la
concatenation. par contre cela vous causera d(autre problèmes : nom inférieur à 5 lettres, homonynie sur les 5 premières lettres... S'il s'agit d'une transcription qui doit être unique, vous avez intérêt à commencer par faire la première recherche (identité sur le nom complet) et à filtrer le résultat pour continuer une recherche ensuite sur 5 ou 4 lettres, après avoir vérifier qu'il ne vous reste pas de doublon au niveau des noms réduits. (tri avec suppression des doublons doit vous donner le même nombre de ligne que le fichier original)
-- chrisn mettre le bon fai, libertysurf pour me répondre
AV
Avec dans le fichier B (nommé "FichierB") les plages nommées : "CodeFichierB" ; "NomFichierB" ; "VilleFichierB" ; "CPFichierB" Dans ton fichier A : En A1 un Nom, en B1 une ville et en C1 un Code Postal Pour récupérer en D1 le code correspondant s'il y a cohérence entre les 4 premières lettres du nom ET le nom de la ville ET le code postal pour la liste contenue dans "FichierB" (c'est ta question) =INDEX(FichierB.xls!CodeFichierB;EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!No mFichierB;4)&FichierB.xls!VilleFichierB&FichierB.xls!CPFichierB;0)) Si le fichier "FichierB" est fermé, il faudra préciser le chemin d'accès Ca pourrait donner quelque chose comme ça :
Si tu veux gérer l'erreur déclenchée par le EQUIV en cas de non correspondance des valeurs cherchées : Avec le fichier "FichierB" ouvert : =SI(ESTNUM(EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!NomFichierB;4)&FichierB. xls!VilleFichierB&FichierB.xls!CPFichierB;0));INDEX(FichierB.xls!CodeFichierB;EQ UIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!NomFichierB;4)&FichierB.xls!VilleFich ierB&FichierB.xls!CPFichierB;0));"") Avec le fichier "FichierB" fermé : =SI(ESTNUM(EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE('C:TEMPFichierB.xls'!NomFichierB;4) &'C:TEMPFichierB.xls'!VilleFichierB&'C:TEMPFichierB.xls'!CPFichierB;0));INDE X('C:TEMPFichierB.xls'!CodeFichierB;EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE('C:TEMPF ichierB.xls'!NomFichierB;4)&'C:TEMPFichierB.xls'!VilleFichierB&'C:TEMPFichie rB.xls'!CPFichierB;0));"")
Si tu veux tester les X (au lieu de 4) premières lettres du nom, remplace, dans les 2 fonctions GAUCHE le 4 par X !
PS : toutes les formules indiquées doivent être validées sous forme matricielle : Ctrl+maj+entrée PSbis : tu peux faire l'économie des longues formules (pour cause de test d'erreur) en utilisant un format conditionnel Exemple pour D1 : format --> mise en forme conditionnelle --> la formule est : =ESTNA(D1) --> police de la même couleur que le fond --> OK
AV
"ptck" a écrit dans le message news:
bonjour,
J'ai un fichier A avec des 3 colonnes de nom, ville, code postal. un autre fichier B avec 4 colonnes de code, nom, ville, code postal
je voudrais dans le premier fichier mettre le code correspondant au nom uniquement si les 3 critères : nom, ville, code postal, entre les 2 fichiers sont vrais.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que dans le fichier B je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou plus correspondent, accepter la validation sur le nom)
j'ai essayer recherche equiv avec si , mais une macro surtout si je peux demander un nombre de caractères identiques dans les colonnes "nom". Mais voilà cette macro là ??? !!!!.
à ceux à qui ça ne fait pas peur
merci
Avec dans le fichier B (nommé "FichierB") les plages nommées :
"CodeFichierB" ; "NomFichierB" ; "VilleFichierB" ; "CPFichierB"
Dans ton fichier A :
En A1 un Nom, en B1 une ville et en C1 un Code Postal
Pour récupérer en D1 le code correspondant s'il y a cohérence entre les 4
premières lettres du nom ET le nom de la ville ET le code postal pour la liste
contenue dans "FichierB" (c'est ta question)
=INDEX(FichierB.xls!CodeFichierB;EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!No
mFichierB;4)&FichierB.xls!VilleFichierB&FichierB.xls!CPFichierB;0))
Si le fichier "FichierB" est fermé, il faudra préciser le chemin d'accès
Ca pourrait donner quelque chose comme ça :
Si tu veux gérer l'erreur déclenchée par le EQUIV en cas de non correspondance
des valeurs cherchées :
Avec le fichier "FichierB" ouvert :
=SI(ESTNUM(EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!NomFichierB;4)&FichierB.
xls!VilleFichierB&FichierB.xls!CPFichierB;0));INDEX(FichierB.xls!CodeFichierB;EQ
UIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!NomFichierB;4)&FichierB.xls!VilleFich
ierB&FichierB.xls!CPFichierB;0));"")
Avec le fichier "FichierB" fermé :
=SI(ESTNUM(EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE('C:TEMPFichierB.xls'!NomFichierB;4)
&'C:TEMPFichierB.xls'!VilleFichierB&'C:TEMPFichierB.xls'!CPFichierB;0));INDE
X('C:TEMPFichierB.xls'!CodeFichierB;EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE('C:TEMPF
ichierB.xls'!NomFichierB;4)&'C:TEMPFichierB.xls'!VilleFichierB&'C:TEMPFichie
rB.xls'!CPFichierB;0));"")
Si tu veux tester les X (au lieu de 4) premières lettres du nom, remplace, dans
les 2 fonctions GAUCHE le 4 par X !
PS : toutes les formules indiquées doivent être validées sous forme matricielle
: Ctrl+maj+entrée
PSbis : tu peux faire l'économie des longues formules (pour cause de test
d'erreur) en utilisant un format conditionnel
Exemple pour D1 : format --> mise en forme conditionnelle --> la formule est :
=ESTNA(D1) --> police de la même couleur que le fond --> OK
AV
"ptck" <nospam-ptck@easyconnect.fr> a écrit dans le message news:
Oi8n8w9HEHA.4052@TK2MSFTNGP12.phx.gbl...
bonjour,
J'ai un fichier A avec des 3 colonnes de nom, ville, code postal.
un autre fichier B avec 4 colonnes de code, nom, ville, code postal
je voudrais dans le premier fichier mettre le code correspondant au
nom uniquement si les 3 critères : nom, ville, code postal, entre les 2
fichiers sont vrais.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que dans le
fichier B
je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou plus
correspondent, accepter la validation sur le nom)
j'ai essayer recherche equiv avec si , mais une macro surtout si je peux
demander un nombre de caractères identiques dans les colonnes "nom". Mais
voilà cette macro là ??? !!!!.
Avec dans le fichier B (nommé "FichierB") les plages nommées : "CodeFichierB" ; "NomFichierB" ; "VilleFichierB" ; "CPFichierB" Dans ton fichier A : En A1 un Nom, en B1 une ville et en C1 un Code Postal Pour récupérer en D1 le code correspondant s'il y a cohérence entre les 4 premières lettres du nom ET le nom de la ville ET le code postal pour la liste contenue dans "FichierB" (c'est ta question) =INDEX(FichierB.xls!CodeFichierB;EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!No mFichierB;4)&FichierB.xls!VilleFichierB&FichierB.xls!CPFichierB;0)) Si le fichier "FichierB" est fermé, il faudra préciser le chemin d'accès Ca pourrait donner quelque chose comme ça :
Si tu veux gérer l'erreur déclenchée par le EQUIV en cas de non correspondance des valeurs cherchées : Avec le fichier "FichierB" ouvert : =SI(ESTNUM(EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!NomFichierB;4)&FichierB. xls!VilleFichierB&FichierB.xls!CPFichierB;0));INDEX(FichierB.xls!CodeFichierB;EQ UIV(GAUCHE(A1;4)&B1&C1;GAUCHE(FichierB.xls!NomFichierB;4)&FichierB.xls!VilleFich ierB&FichierB.xls!CPFichierB;0));"") Avec le fichier "FichierB" fermé : =SI(ESTNUM(EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE('C:TEMPFichierB.xls'!NomFichierB;4) &'C:TEMPFichierB.xls'!VilleFichierB&'C:TEMPFichierB.xls'!CPFichierB;0));INDE X('C:TEMPFichierB.xls'!CodeFichierB;EQUIV(GAUCHE(A1;4)&B1&C1;GAUCHE('C:TEMPF ichierB.xls'!NomFichierB;4)&'C:TEMPFichierB.xls'!VilleFichierB&'C:TEMPFichie rB.xls'!CPFichierB;0));"")
Si tu veux tester les X (au lieu de 4) premières lettres du nom, remplace, dans les 2 fonctions GAUCHE le 4 par X !
PS : toutes les formules indiquées doivent être validées sous forme matricielle : Ctrl+maj+entrée PSbis : tu peux faire l'économie des longues formules (pour cause de test d'erreur) en utilisant un format conditionnel Exemple pour D1 : format --> mise en forme conditionnelle --> la formule est : =ESTNA(D1) --> police de la même couleur que le fond --> OK
AV
"ptck" a écrit dans le message news:
bonjour,
J'ai un fichier A avec des 3 colonnes de nom, ville, code postal. un autre fichier B avec 4 colonnes de code, nom, ville, code postal
je voudrais dans le premier fichier mettre le code correspondant au nom uniquement si les 3 critères : nom, ville, code postal, entre les 2 fichiers sont vrais.
pour corser:
Dans Le fichier A les noms ne sont pas exatement les mêmes que dans le fichier B je peux avoir un nom coupé (peut-on demander si 4 ou 5 lettres ou plus correspondent, accepter la validation sur le nom)
j'ai essayer recherche equiv avec si , mais une macro surtout si je peux demander un nombre de caractères identiques dans les colonnes "nom". Mais voilà cette macro là ??? !!!!.