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.
Réponses
Trop de publicités?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.
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 /
- Réponses précédentes
- Plus de réponses
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.
0 votes
J'aurais dû ajouter l'exemple à la question, mais je pense qu'il y avait suffisamment d'éléments pour distinguer cette question d'une requête sur le dernier caractère d'une chaîne de caractères :
search
etfind
les deux chaînes de requête contenu Le terme "match" est un terme standard, et l'exemple est lié.0 votes
Duplicata possible de Comment extraire la dernière sous-chaîne d'une colonne Excel ?
0 votes
(Légèrement plus récent) duplicate cross-site : superuser.com/q/680769