XL 2016 récupération caractère entre crochet par la droite

riddick93

XLDnaute Nouveau
Bonjour à toutes et tous,
J'essaie d'extraire les caractères entre crochet par la droite d'une cellule.
Avec la formule que j'ai je n'obtient pas le résultat voulu sur tout les cas.
en Cellule A1 j'ai le titre ou se situe le/les mot(s) à extraire et en B1 j'ai la formule suivante
=SI(DROITE(A2;1)<>"]";"";STXT(A2;TROUVE("[";A2;1)+1;TROUVE("]";A2;1)-TROUVE("[";A2;1)-1))
Voici les résultats selon les différentes disposition des crochets:
La 2nd et 3ème ligne sont bonnes mais pas la 1ère ni la dernière
[Bonjour] [Merci] je vais bien [aujourd'hui]Bonjour
[Bonjour] [Merci] je vais bien
je vais bien [aujourd'hui]aujourd'hui
[Bonjour] je vais bien [aujourd'hui]Bonjour

Je vous joint mon fichier si vous avez une solution
Merci d'avance
 

Pièces jointes

  • recherche TAG.xlsx
    11.2 KB · Affichages: 9
Solution
Bonjour à tous, bonjour @riddick93

La chaîne à traiter étant en A2 :

Cette formule renvoie le dernier mot entre crochet :
=STXT(A2;TROUVE("¯";SUBSTITUE(A2;"[";"¯";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"[";""))))+1;TROUVE("]";STXT(A2;TROUVE("¯";SUBSTITUE(A2;"[";"¯";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"[";""))))+1;NBCAR(A2)))-1)

Cette formule renvoie le mot entre crochet s'il se situe à droite de la chaîne :
=SI(DROITE(A2;1)<>"]";"";SUBSTITUE(STXT(A2;TROUVE("¯";SUBSTITUE(A2;"[";"¯";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"[";""))))+1;NBCAR(A2));"]";""))
(J'utilise le caractère "¯" qui a peu de chance de se trouver dans la chaîne à traiter )

Amicalement
Alain

riddick93

XLDnaute Nouveau
Merci de la réponse sylvanu
en fait je ne voir apparaitre en colonne B uniquement les derniers caractères entre crochet en fin
Du coup voici les infos que je voudrais voir apparaitre:
TitreTAG actuelTAG Voulu
[Bonjour] [Merci] je vais bien [aujourd'hui]Bonjouraujourd'hui
[Bonjour] [Merci] je vais bien
je vais bien [aujourd'hui]aujourd'huiaujourd'hui
[Bonjour] je vais bien [aujourd'hui]Bonjour
 

D.D.

XLDnaute Impliqué
Hello
Merci de la réponse sylvanu
en fait je ne voir apparaitre en colonne B uniquement les derniers caractères entre crochet en fin
Du coup voici les infos que je voudrais voir apparaitre:
TitreTAG actuelTAG Voulu
[Bonjour] [Merci] je vais bien [aujourd'hui]Bonjouraujourd'hui
[Bonjour] [Merci] je vais bien
je vais bien [aujourd'hui]aujourd'huiaujourd'hui
[Bonjour] je vais bien [aujourd'hui]Bonjour

Pas trop compris.
Il ne faudrait pas plutôt
[Bonjour] [Merci] je vais bien [aujourd'hui]aujourd'hui
[Bonjour] [Merci] je vais bienMerci
je vais bien [aujourd'hui]aujourd'hui
[Bonjour] je vais bien [aujourd'hui]aujourd'hui
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour à tous, bonjour @riddick93

La chaîne à traiter étant en A2 :

Cette formule renvoie le dernier mot entre crochet :
=STXT(A2;TROUVE("¯";SUBSTITUE(A2;"[";"¯";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"[";""))))+1;TROUVE("]";STXT(A2;TROUVE("¯";SUBSTITUE(A2;"[";"¯";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"[";""))))+1;NBCAR(A2)))-1)

Cette formule renvoie le mot entre crochet s'il se situe à droite de la chaîne :
=SI(DROITE(A2;1)<>"]";"";SUBSTITUE(STXT(A2;TROUVE("¯";SUBSTITUE(A2;"[";"¯";NBCAR(A2)-NBCAR(SUBSTITUE(A2;"[";""))))+1;NBCAR(A2));"]";""))
(J'utilise le caractère "¯" qui a peu de chance de se trouver dans la chaîne à traiter )

Amicalement
Alain
 

Pièces jointes

  • recherche TAG.xlsx
    11.7 KB · Affichages: 1

riddick93

XLDnaute Nouveau
Hello


Pas trop compris.
Il ne faudrait pas plutôt
[Bonjour] [Merci] je vais bien [aujourd'hui]aujourd'hui
[Bonjour] [Merci] je vais bienMerci
je vais bien [aujourd'hui]aujourd'hui
[Bonjour] je vais bien [aujourd'hui]aujourd'hui
Bonjour, en effet une coquille s'est insérré dans mon tableau, je ne dois sortir que les mots entre crochet de fin
donc je devrait avoir:
aujourd'hui
aujourd'hui
aujourd'hui

le/les mot(s) que je souhaite extraire sont tjs situé en fin
 

riddick93

XLDnaute Nouveau
Bonjour à tous, bonjour @riddick93

La chaîne à traiter étant en A2 :

Cette formule renvoie le dernier mot entre crochet :


Cette formule renvoie le mot entre crochet s'il se situe à droite de la chaîne :

(J'utilise le caractère "¯" qui a peu de chance de se trouver dans la chaîne à traiter )

Amicalement
Alain
Merci beaucoup AtTheOne c'est exactement cela
Nickel vous gérez
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Juste en passant il est dommage que le mot le plus important de la demande soit apparu au post 7 par le demandeur
le/les mot(s) que je souhaite extraire sont tjs situé en fin
@D.D. en avait eu l'intuition ;)

Perso j'avais compris qu'il fallait récupérer tous les mots entre crochets !!!

Comme quoi une demande bien écrite évite ces problèmes de compréhension

@Phil69970
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

En B2 mettre la formule
VB:
=STXT($A2;TROUVE("@";SUBSTITUE(A2;"[";"@";SOMME(--(STXT(SUBSTITUE(A2;"[";"@");LIGNE($1:$255);1)="@")));1)+1;TROUVE("#";SUBSTITUE(A2;"]";"#";SOMME(--(STXT(SUBSTITUE(A2;"[";"#");LIGNE($1:$255);1)="#")));1)-TROUVE("@";SUBSTITUE(A2;"[";"@";SOMME(--(STXT(SUBSTITUE(A2;"[";"@");LIGNE($1:$255);1)="@")));1)-1)
validation matricielle et copier vers le bas

JHA
 

Discussions similaires

Réponses
8
Affichages
383

Statistiques des forums

Discussions
312 215
Messages
2 086 328
Membres
103 180
dernier inscrit
Vcr