Extraire le Nième mot compris entre 2 espaces

Bonjour,

Je dois réaliser une synthèse d'une extraction .xlsx provenant d'un programme tiers.

Pour des raisons techniques certains champs ont dû être concaténés dans ce programme et, avant de mettre en place mes TCD, je dois "isoler" certains mots.

Je ne maitrise pas le VBA et je m'en sors toujours avec des formules matricielles... mais pas cette fois (bien que je ne pense pas être trop loin du résultat).

Dans le fichier joint je souhaiterais que la colonne B de l'onglet "MEP" ne contienne que le 2nd mot de la colonne B de l'onglet "SX" (le nom du programme en cours de développement):

- le premier mot sera toujours "R&D"

- le second mot est de longueur variable

- j'ai essayé avec la fonction "extraire_mot" du pack de fonction mais ça ne semble pas accepter d'inclure la fonction "filtre"

je suis parti dans l'optique de rechercher les mots entre tel et tel espace, mais j'ai mis dans l'onglet "BD" la liste des lots que je cherche à isoler au cas où je fasse complètement fausse route avec les fonctions "filtre" et "stxt" et qu'une autre fonction soit plus appropriée (oui, je vais devoir faire ça sur plusieurs colonnes)

Voilà, j'espère avoir été clair.

Merci par avance à ceux qui voudront me filer un coup de main

12synthese-sx.xlsx (68.17 Ko)

Bonjour !

Je vous livre une proposition "légèrement" capillotractée......

J'utilise la fonction LET cela suppose donc Excel 365....

5synthese-sx.xlsx (69.79 Ko)

merci d'avoir pris le temps.

Je suis sur 365 aussi, votre formule fonctionne effectivement mais, ne sachant pas encore la taille finale de mon fichier (je dirais à la louche 80000 sur une année, voire plus) je vais continuer à chercher du côté de la fonction "filtre" qui me permet de ne pas avoir à tirer une formule sur autant de ligne, mon fichier risque d'être trop lourd.

Par ailleurs je préfèrerais ne pas avoir à figer les colonnes pour obtenir le résultat, d'où mon intérêt pour la fonction "filtre" (encore elle)

Merci encore de votre intérêt!

bonjour,

Une solution avec fonction personnalisée :

Function SWRD$(S$)
SWRD = Split(S)(1)
End Function

A+

Bonjour,

Voici une solution en VBA :

Sub ExtraireEspace()

Sheets("SX").Select
derniereLigne = Range("B" & Rows.Count).End(xlUp).Row

    For i = 5 To derniereLigne
        Sheets("SX").Select
        texte = Range("B" & i).Value
        Tableau = Split(texte, " ")
        texte2 = Tableau(1)
        Sheets("MEP").Select
        Cells((i - 3), 2) = texte2
    Next i

End Sub

Je te joins le fichier.

Bon courage :)

1synthese-sx.xlsm (74.98 Ko)

Bonjour de nouveau !

Une autre proposition via Power Query (totalement intégré à votre version Excel) à adapter à votre besoin.

5synthese-sx.xlsx (79.54 Ko)

merci beaucoup pour vos contributions:

- @Redmine: VBA je n'ai malheureusement pas le temps de m'y pencher en ce moment mais ça pourrait être la solution à mes problèmes de gros fichiers

- @JFL: Power Query, je n'ai pas réussi à comprendre comment ça fonctionnait

- @Galopin01: le coup de la formule perso m’intéresse beaucoup je vais creuser ça

J'ai finalement opté pour cette option trouvée dans une autre discussion. Ça n'est pas la panacée vu que je dois la tirer sur un nombre important de lignes, mais c'est celle que je comprend le mieux (et qui ne pèse pas si lourd que ça au final):

=SI(SOMME(NB.SI(SX!B5;"*"&produits&"*"))=0;"";INDEX(produits;EQUIV(1;NB.SI(SX!B5;"*"&produits&"*");0)))

Merci encore pour le temps que vous avez bien voulu prendre pour m'aider, et puisse la force continuer de vous guider sur les méandres de la logique.

0synthese-sx.xlsx (69.03 Ko)
Rechercher des sujets similaires à "extraire nieme mot compris entre espaces"