GOGOMAT XLDnaute Nouveau Supporter XLD 9 Août 2022 #1 Bonsoir J'ai a nouveau un petit problème J'aurais besoin d'identifier et d'extraire dans une cellule ou il y a une suite de chiffre et nombre l'extrait que j'ai dans un un autre fichier en base je m'exprime mal Pièces jointes TEST.xlsx 11.3 KB · Affichages: 9
Bonsoir J'ai a nouveau un petit problème J'aurais besoin d'identifier et d'extraire dans une cellule ou il y a une suite de chiffre et nombre l'extrait que j'ai dans un un autre fichier en base je m'exprime mal
job75 XLDnaute Barbatruc 9 Août 2022 #3 Bonsoir, GOGOMAT à dit: je m'exprime mal Cliquez pour agrandir... Oh que oui et où est l'autre fichier ? Bonne nuit. Vote positif 0 Vote négatif
Bonsoir, GOGOMAT à dit: je m'exprime mal Cliquez pour agrandir... Oh que oui et où est l'autre fichier ? Bonne nuit.
GOGOMAT XLDnaute Nouveau Supporter XLD 10 Août 2022 #4 Bonjour, Le fichier ID est dans la feuille ID dans le même fichier Vote positif 0 Vote négatif
chris XLDnaute Barbatruc 10 Août 2022 #5 Bonjour Une solution PowerQuery (intégré à Excel) Pièces jointes Extrait_PQ.xlsx 22.2 KB · Affichages: 4 Vote positif 0 Vote négatif
GOGOMAT XLDnaute Nouveau Supporter XLD 10 Août 2022 #6 chris à dit: Bonjour Une solution PowerQuery (intégré à Excel) Cliquez pour agrandir... EXCELLENT Merci mais comment le reproduire ? Je ne connais pas PowerQuery Vote positif 0 Vote négatif
chris à dit: Bonjour Une solution PowerQuery (intégré à Excel) Cliquez pour agrandir... EXCELLENT Merci mais comment le reproduire ? Je ne connais pas PowerQuery
chris XLDnaute Barbatruc 10 Août 2022 #7 Bonjour A noter que si la source évolue, il suffit d'actualiser le résultat J'ai mis les 2 tableaux sous forme de tableaux structurés correctement nommés Lance PowerQuery, Données Obtenir des données, Lancer PowerQuery Tu verras 2 requêtes : T_ID et extrait avec le détail des étapes à droite t_ID récupère simplement la liste des ID (depuis une cellule du tableau t_ID, Données à partir d'un tableau) Extrait : idem puis Ajouter une colonne, colonne d'Index. Renommer l'étape Etat1 Ajouter une colonne, colonne personnalisée, formule =t_ID Clic sur la double flèche près du titre de la colonne Personnalisé, décocher tout sauf ID Ajouter une colonne, colonne personnalisée, formule =if Text.Contains(Text.Upper([Colonne1]),[ID]) then 1 else null Filtrer la colonne pour ne garder que 1 Accueil, Fusionner les requêtes : choisir la requête actuelle en seconde requête et dans chaque sélectionner Index, Jointure externe gauche Dans la barre de formule remplacer #"Lignes filtrées" par Etat1 Clic sur la double flèche près du titre de la colonne Lignes filtrées décocher tout sauf ID Supprimer la colonne Index Sortir par Fermer et charger dans Tableau et choisir l'emplacement Vote positif 0 Vote négatif
Bonjour A noter que si la source évolue, il suffit d'actualiser le résultat J'ai mis les 2 tableaux sous forme de tableaux structurés correctement nommés Lance PowerQuery, Données Obtenir des données, Lancer PowerQuery Tu verras 2 requêtes : T_ID et extrait avec le détail des étapes à droite t_ID récupère simplement la liste des ID (depuis une cellule du tableau t_ID, Données à partir d'un tableau) Extrait : idem puis Ajouter une colonne, colonne d'Index. Renommer l'étape Etat1 Ajouter une colonne, colonne personnalisée, formule =t_ID Clic sur la double flèche près du titre de la colonne Personnalisé, décocher tout sauf ID Ajouter une colonne, colonne personnalisée, formule =if Text.Contains(Text.Upper([Colonne1]),[ID]) then 1 else null Filtrer la colonne pour ne garder que 1 Accueil, Fusionner les requêtes : choisir la requête actuelle en seconde requête et dans chaque sélectionner Index, Jointure externe gauche Dans la barre de formule remplacer #"Lignes filtrées" par Etat1 Clic sur la double flèche près du titre de la colonne Lignes filtrées décocher tout sauf ID Supprimer la colonne Index Sortir par Fermer et charger dans Tableau et choisir l'emplacement
job75 XLDnaute Barbatruc 10 Août 2022 #8 Bonjour GOGOMAT, chris, La fonction JOINDRE.TEXTE existe depuis Excel 2016. Formule matricielle en B3 : Code: =JOINDRE.TEXTE("-";VRAI;REPT('base id'!A$4:$A63;ESTNUM(CHERCHE('base id'!A$4:$A63;A3)))) à valider par Ctrl+Maj+Entrée et tirer vers le bas. Si plusieurs ID sont trouvés ils sont concaténés. A+ Pièces jointes TEST.xlsx 13.5 KB · Affichages: 1 Vote positif 0 Vote négatif
Bonjour GOGOMAT, chris, La fonction JOINDRE.TEXTE existe depuis Excel 2016. Formule matricielle en B3 : Code: =JOINDRE.TEXTE("-";VRAI;REPT('base id'!A$4:$A63;ESTNUM(CHERCHE('base id'!A$4:$A63;A3)))) à valider par Ctrl+Maj+Entrée et tirer vers le bas. Si plusieurs ID sont trouvés ils sont concaténés. A+
chris XLDnaute Barbatruc 10 Août 2022 #9 RE A noter que sur 365 il est inutile de valider par CTRL Shift entrée, toute formule étant par défaut gérée en matricielle. Il est conseillé de travailler en tableaux structurés VB: =JOINDRE.TEXTE("-";VRAI;REPT(t_ID[ID];ESTNUM(CHERCHE(t_ID[ID];A3)))) Vote positif 0 Vote négatif
RE A noter que sur 365 il est inutile de valider par CTRL Shift entrée, toute formule étant par défaut gérée en matricielle. Il est conseillé de travailler en tableaux structurés VB: =JOINDRE.TEXTE("-";VRAI;REPT(t_ID[ID];ESTNUM(CHERCHE(t_ID[ID];A3))))
job75 XLDnaute Barbatruc 10 Août 2022 #10 Maintenant si l'on veut récupérer le 1er ID trouvé on peut utiliser, toujours en matriciel : Code: =SIERREUR(RECHERCHEV("?*";REPT('base id'!A$4:$A63;ESTNUM(CHERCHE('base id'!A$4:$A63;A3)));1;0);"") Pièces jointes TEST(1).xlsm 13.5 KB · Affichages: 3 Vote positif 0 Vote négatif
Maintenant si l'on veut récupérer le 1er ID trouvé on peut utiliser, toujours en matriciel : Code: =SIERREUR(RECHERCHEV("?*";REPT('base id'!A$4:$A63;ESTNUM(CHERCHE('base id'!A$4:$A63;A3)));1;0);"")
GOGOMAT XLDnaute Nouveau Supporter XLD 10 Août 2022 #11 job75 à dit: Maintenant si l'on veut récupérer le 1er ID trouvé on peut utiliser, toujours en matriciel : Code: =SIERREUR(RECHERCHEV("?*";REPT('base id'!A$4:$A63;ESTNUM(CHERCHE('base id'!A$4:$A63;A3)));1;0);"") Cliquez pour agrandir... Merci bcp au top Vote positif 0 Vote négatif
job75 à dit: Maintenant si l'on veut récupérer le 1er ID trouvé on peut utiliser, toujours en matriciel : Code: =SIERREUR(RECHERCHEV("?*";REPT('base id'!A$4:$A63;ESTNUM(CHERCHE('base id'!A$4:$A63;A3)));1;0);"") Cliquez pour agrandir... Merci bcp au top