Microsoft 365 Chercher une partie d'une cellule et renvoyer une autre colonne

anthony183

XLDnaute Nouveau
Bonjour,

J'ai besoin de votre aide car je suis bloqué pour rapprocher plus de 50000 lignes de 2 bases de données différentes.

J'ai 2 fichiers (fusionné en 1 avec 2 onglets pour l'exemple), je voudrais qu'avec une formule, dans l'onglet "fichier 1", il me cherche via le libellé en cellule C2, une correspondance ou en tout cas une partie du libellé dans l'onglet "fichier 2" en cellule G2:G3. J'ai donc commencé avec la formule en colonne BA de l'onglet "Fichier 1" : SI(ESTNUM(CHERCHE(C3;'Fichier 2'!G:G));"pas ok";"ok"). Il me trouve bien une référence mais je voudrais savoir ou se trouve la référence qu'il me trouve pour ensuite lui affecter le code du fichier 2 colonne AC.

J'ai également essayé celle-ci (en matricielle) que j'ai trouvé sur le forum mais ça ne fonctionne pas : =+SIERREUR(INDEX('Fichier 2'!$AC$2:$AC$3;EQUIV(VRAI;ESTNUM(CHERCHE('Fichier 2'!$G$2:$G$3;C2));0));"")

Merci pour votre aide :)
 

Pièces jointes

  • Fichier Aide Forum Excel.xlsx
    673.1 KB · Affichages: 10

chris

XLDnaute Barbatruc
Bonjour

Des matricielles sur 50000 : cela va ramer

Ton fichier a des liens avec un classeur externe

Il faudrait clairement indiquer de quelles colonnes tu as besoin dans chaque fichier et ce que tu veux obtenir concrètement

Tu as PowerQuery intégré à Excel qui peut directement traiter les fichiers sans les importer, donc joins plutôt 2 fichiers représentatifs dans le format initial s'il n'est pas Excel
 

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour anthony 183,

le estnum (cherche()) de la ligne 3 est ecrit dans le bon sens donc il cherche CERES en colonne G et CERES on le trouve sans soucis

par contre en ligne 2 le cherche() est ecrit a l'envers il faut mettre CHERCHE(C2;'Fichier 2'!$G$2:$G$3) à la place de CHERCHE('Fichier 2'!$G$2:$G$3;C2) premier soucis
le 2 ieme soucis c'est que dans la colonne G tu n'as de toute façon pas la valeur de C2 qui est SUN REV PLUME la cellule de la colonne G du fichier 2 étant "Oreiller Sun'Rev" si en c2 du fichier 1 tu avais ne serait ce que sun' ou sun'rev la formule fonctionnerait puisque ces 2 valeur se trouve dans "Oreiller Sun'Rev"

cordialement

EDIT : Bonjour chris :)
 

anthony183

XLDnaute Nouveau
Bonjour

Des matricielles sur 50000 : cela va ramer

Ton fichier a des liens avec un classeur externe

Il faudrait clairement indiquer de quelles colonnes tu as besoin dans chaque fichier et ce que tu veux obtenir concrètement

Tu as PowerQuery intégré à Excel qui peut directement traiter les fichiers sans les importer, donc joins plutôt 2 fichiers représentatifs dans le format initial s'il n'est pas Excel
Bonjour Chris,

En effet, il y avait une liaison.
Voila les deux fichiers. Dans mon fichier "Ancien ERP", je veux attribuer en colonne AZ, le code du nouveau ERP qui se trouve dans mon fichier "Nouveau ERP" en colonne AC. Ma seule clé d'entrée c'est le libellé mais qui n'est pas forcément identique entre les 2 fichiers, j'ai au moins une partie du libellé que je peux retrouver (au moins dans 90% de mes lignes).
Je voudrais donc affecter le code produit de la colonne AC du fichier nouveau ERP à la colonne AZ du fichier ancien ERP
 

Pièces jointes

  • Nouveau ERP.xlsx
    22 KB · Affichages: 3
  • Ancien ERP.xlsx
    111 KB · Affichages: 2

anthony183

XLDnaute Nouveau
Bonjour le Forum,
Bonjour anthony 183,

le estnum (cherche()) de la ligne 3 est ecrit dans le bon sens donc il cherche CERES en colonne G et CERES on le trouve sans soucis

par contre en ligne 2 le cherche() est ecrit a l'envers il faut mettre CHERCHE(C2;'Fichier 2'!$G$2:$G$3) à la place de CHERCHE('Fichier 2'!$G$2:$G$3;C2) premier soucis
le 2 ieme soucis c'est que dans la colonne G tu n'as de toute façon pas la valeur de C2 qui est SUN REV PLUME la cellule de la colonne G du fichier 2 étant "Oreiller Sun'Rev" si en c2 du fichier 1 tu avais ne serait ce que sun' ou sun'rev la formule fonctionnerait puisque ces 2 valeur se trouve dans "Oreiller Sun'Rev"

cordialement

EDIT : Bonjour chris :)
Bonjour Jocelyn, Merci
Qu'est ce que je pourrais écrire comme formule qui contiendrait une partie de ma cellule recherche comme dans l'exemple de Sun'Rev car j'ai bien le mot "sun" dans les deux cellules ?
 

chris

XLDnaute Barbatruc
RE

Un premier essai avec PowerQuery

Utilisation de la correspondance approximative : j'ai réglé sur 0,4 ce qui est très tolérant

On a 1322 réponses : voir si cela te semble OK

Mettre à jour le chemin puis Données, Actualiser tout
 

Pièces jointes

  • Ancien ERP_PQ.xlsx
    143.8 KB · Affichages: 4

chris

XLDnaute Barbatruc
RE

PowerQuery est totalement intégré à Excel depuis la version 2016

C’est juste le chemin du fichier indiqué en couleur jaune qu’il faut mettre à jour pour correspondre au chemin sur ton PC

Pour voir les requêtes : Données, Obtenir des données, lancer PowerQuery

L'une des requête charge les données du classeur Nouveau, l'autre utilise le tableau du classeur Ancien et croise avec Nouveau pour trouver les correspondances
On voit les étapes des requêtes à droite

J'ai préféré convertir en minuscules même si la recherche approximative peut le faire, pour mieux visualiser ce qu'il associe
 
Dernière édition:

Discussions similaires