205 votes

Excel : dernière correspondance caractère-chaîne dans une chaîne de caractères

Existe-t-il un moyen efficace d'identifier le dernier caractère/chaîne correspondant dans une chaîne de caractères en utilisant les fonctions de base ? C'est-à-dire pas le dernier caractère ou la dernière chaîne de caractères. de la chaîne, mais la position de la dernière occurrence d'un caractère/chaîne sur une chaîne de caractères. Search et find Les deux fonctionnent de gauche à droite et je ne vois pas comment les appliquer sans un long algorithme récursif. Et cette solution semble désormais obsolète.

3 votes

Parce que je veux la position de la dernière instance du point "." dans la chaîne "un.deux.trois.quatre".

6 votes

Il est amusant de constater qu'une lecture erronée de la question permet d'obtenir des votes positifs.

1 votes

Je dirais qu'il faut voir les choses sous un autre angle : cela signifie que d'autres personnes n'ont pas compris ce que vous vouliez dire dans votre question et ont donc pensé que la suggestion était la bonne solution... Même la réponse que vous avez choisie commençait par "Je pense que je comprends ce que vous voulez dire"... Ce n'est pas une critique, mais plutôt une demande d'essayer de rendre vos questions plus faciles à comprendre pour aider les gens à répondre plus facilement.

0voto

user8512894 Points 1

Je suis très en retard, mais une solution simple consiste à utiliser VBA pour créer une fonction personnalisée.

Ajoutez la fonction à VBA dans le WorkBook, la feuille de calcul ou un module VBA.

Function LastSegment(S, C)
    LastSegment = Right(S, Len(S) - InStrRev(S, C))
End Function

Ensuite, la formule de cellule

=lastsegment(B1,"/")

dans une cellule et la chaîne à rechercher dans la cellule B1, la cellule sera remplie avec le texte qui suit le dernier "/" de la cellule B1. Pas de limite de longueur, pas de formules obscures. Le seul inconvénient auquel je pense est la nécessité d'avoir un classeur compatible avec les macros.

Toute fonction VBA utilisateur peut être appelée de cette manière pour renvoyer une valeur à une formule de cellule, y compris comme paramètre d'une fonction Excel intégrée.

Si vous utilisez la fonction de manière intensive, vous voudrez vérifier le cas où le caractère n'est pas dans la chaîne, où la chaîne est vide, etc.

-2voto

Richard Points 1

Cellule A1 = find/the/position/of/the last slash

La façon la plus simple de le faire est d'inverser le texte et de trouver la première barre oblique comme d'habitude. Vous pouvez alors obtenir la longueur du texte complet moins ce nombre.

Comme ça :

=LEN(A1)-FIND("/",REVERSETEXT(A1),1)+1

Cela renvoie 21, la position de la dernière /

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X