Microsoft 365 Extraire dans une cellule

GOGOMAT

XLDnaute Nouveau
Supporter XLD
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

chris

XLDnaute Barbatruc
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
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

chris

XLDnaute Barbatruc
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
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

Discussions similaires

Réponses
5
Affichages
296

Statistiques des forums

Discussions
312 097
Messages
2 085 256
Membres
102 839
dernier inscrit
Tougtoug