Microsoft 365 afficher 10 mots avant et après un mot clé

yvann1318

XLDnaute Nouveau
Bonjour a tous,

J'ai une phrase dans une case, le but est de repérer le mot clé et d'afficher dans la case a coté 10 mots avant et après le mot clé et je suis vraiment bloqué, si quelqu'un a une solution merci.
 

vgendron

XLDnaute Barbatruc
Bonjour
@yvann1318 : c'est à toi de fournir un fichier exemple
ensuite, tu fais une recherche google sur les mots "Split" et "match" en vba excel
si pas de VBA, fais une recherche sur les fonctions excel: trouve, gauche, droite, sierreur...

comme tu peux le sentir, selon la structure de ton fichier, les solutions sont variées...
 

yvann1318

XLDnaute Nouveau
Bonjour
@yvann1318 : c'est à toi de fournir un fichier exemple
ensuite, tu fais une recherche google sur les mots "Split" et "match" en vba excel
si pas de VBA, fais une recherche sur les fonctions excel: trouve, gauche, droite, sierreur...

comme tu peux le sentir, selon la structure de ton fichier, les solutions sont variées.
Voici ma phrase dans l'image j'ai réussi a avoir le début du texte jusqu'au mot clé qui est "sprinklé" et j'ai réussi a avoir 10 mots avant le mot clé mais mes formule sont vraiment pas belle :

Pour la colonne F:

=SI(ESTERREUR(TROUVE("sprinklé"; E2)); ""; SI(ESTNUM(TROUVE(" "; GAUCHE(E2; TROUVE("sprinklé"; E2) - 1))); GAUCHE(E2; TROUVE("sprinklé"; E2) - 1); "") & " " & "sprinklé")

Pour la colonne I :

=TEXTE.APRES(F2;" ";-10)
 

Pièces jointes

  • Capture d'écran 2023-08-17 105100.png
    Capture d'écran 2023-08-17 105100.png
    39.7 KB · Affichages: 10

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à @yvann1318, bienvenue sur XLD :) ,
Bonjour @patricktoulon ;), @vgendron ;),

Quand on demande un exemple, cela signifie un classeur Excel anonymisé et non pas une image ;).

Comme vous êtes nouveau sur le forum, j'ai fait un petit classeur que j'ai joint à ce message.

En cellule B1, une formule (valable uniquement avec O365) pour les 10 mots avant le mot clef :
VB:
=EPURAGE(JOINDRE.TEXTE(" ";;PRENDRE(FRACTIONNER.TEXTE(SUPPRESPACE(GAUCHE(A1;CHERCHE("sprinklé";A1)-1));" ");1;-10)))

En cellule C1, une formule (valable uniquement avec O365) pour les 10 mots après le mot clef :
VB:
=EPURAGE(JOINDRE.TEXTE(" ";;PRENDRE(FRACTIONNER.TEXTE(SUPPRESPACE(GAUCHE(A1;CHERCHE("sprinklé";A1)-1));" ");1;-10)))

nota : dans les formules, le mot clef est "sprinklé".

edit : version v1a plus précise.
 

Pièces jointes

  • yvann1318- avant après mot clef- v1a.xlsx
    12.3 KB · Affichages: 4
Dernière édition:

chaelie2015

XLDnaute Accro
Bonjour a tous,

J'ai une phrase dans une case, le but est de repérer le mot clé et d'afficher dans la case a coté 10 mots avant et après le mot clé et je suis vraiment bloqué, si quelqu'un a une solution merci.
Bonsoir
Il semble que vous souhaitiez extraire un contexte de mots autour d'un mot clé spécifique dans une phrase, en affichant les 10 mots précédant et suivant le mot clé.
Exemple :
Supposons que votre phrase soit dans la cellule A1 et que le mot clé que vous cherchez soit dans la cellule B1. Vous pouvez utiliser les fonctions SPLIT, IF, INDEX et CONCATENER (ou CONCAT) pour obtenir le résultat souhaité.
Voici une formule que vous pourriez utiliser dans la cellule C1 pour afficher les 10 mots avant et après le mot clé :
=CONCAT(IF(ISNUMBER(SEARCH(B1, SPLIT(A1, " "))),
INDEX(SPLIT(A1, " "), MAX(1, MATCH(B1, SPLIT(A1, " "), 0) - 10)) & " ", "")) &
B1 & " " &
CONCAT(IF(ISNUMBER(SEARCH(B1, SPLIT(A1, " "))),
INDEX(SPLIT(A1, " "), MIN(COUNTA(SPLIT(A1, " ")), MATCH(B1, SPLIT(A1, " "), 0) + 10)) & " ", ""))
A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @chaelie2015 :),

=CONCAT(IF(ISNUMBER(SEARCH(B1, SPLIT(A1, " "))),
INDEX(SPLIT(A1, " "), MAX(1, MATCH(B1, SPLIT(A1, " "), 0) - 10)) & " ", "")) &
B1 & " " &
CONCAT(IF(ISNUMBER(SEARCH(B1, SPLIT(A1, " "))),
INDEX(SPLIT(A1, " "), MIN(COUNTA(SPLIT(A1, " ")), MATCH(B1, SPLIT(A1, " "), 0) + 10)) & " ", ""))

Il me semblait qu'XLD était un forum de langue française, non o_O?
Pourquoi donc présenter des formules en grand-breton ?
 

chaelie2015

XLDnaute Accro
Re
comme promis:eek:
=CONCATENER(SI(ESTNUM(TROUVE(B1; DÉCOUPER(A1; " "))),
INDEX(DÉCOUPER(A1; " "); MAX(1; EQUIV(B1; DÉCOUPER(A1; " "); 0) - 10)) & " ", "")) &
B1 & " " &
CONCATENER(SI(ESTNUM(TROUVE(B1; DÉCOUPER(A1; " "))),
INDEX(DÉCOUPER(A1; " "); MIN(NBVAL(DÉCOUPER(A1; " ")); EQUIV(B1; DÉCOUPER(A1; " "); 0) + 10)) & " ", ""))
 

chaelie2015

XLDnaute Accro
Connais pas cette fonction :( !
Je ne pense pas qu'un nom français de fonction contienne des lettres accentuées. Ou bien alors ça vient de sortir...
Re
Je m'excuse pour la confusion. La fonction "DECOUPER" que j'ai mentionnée n'existe pas dans Excel vous avez raison. J'ai fait une erreur dans la traduction. La fonction équivalente à la fonction "SPLIT" en français serait "DÉCOUPER". Cependant, il n'y a pas de fonction "DÉCOUPER" dans Excel.
 

Discussions similaires

Réponses
7
Affichages
158
Réponses
2
Affichages
163

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95