2017-07-28 21 views
0

J'ai ceci:LibreOffice Calc - Trouver la position du premier caractère numérique dans une chaîne de texte

fghs13412asdf

dfs234245gk

.

Vous voulez qu'il revienne la position du dernier caractère numérique, comme ceci:

. J'ai essayé beaucoup de choses, rien ne fonctionne. Peut-être que quelque chose est différent dans LibreOffice qu'excel, où je vois tous les exemples. Voici qui devrait être simple, et est de retour dans l'erreur: https://www.youtube.com/watch?v=joZa6-cJYIc

+0

Nope, différent. Je ne modifierai pas la différence comme elle le demande, car la différence s'explique d'elle-même, et il vaut mieux laisser les questions et les réponses aussi simples que possible. – nittyjee

Répondre

1

Avez-vous besoin de la position du premier caractère numérique (comme dans le titre) ou de la dernière un (comme dans le corps ta question)?

  1. Si c'est le premier une, une simple fonction SEARCH() en utilisant des expressions régulières devraient à l'affaire, par exemple =SEARCH("([:digit:])";A1).

  2. Si c'est le dernier un, à compter de la début de la chaîne, vous pouvez utiliser un autre regex (adapté de an answer in the OpenOffice forums by gerard24): =SEARCH("[0-9][^[0-9]]+$";A1).

  3. Si vous avez besoin de la position du dernier caractère numérique, à compter de la fin de la chaîne, il faut soustraire seulement la valeur calculée à l'étape 2 de la LEN() de l'ensemble de la chaîne: =LEN(A1)-(SEARCH("[0-9][^[0-9]]+$";A1)).

Vous obtiendrez un #VALUE! erreur s'il n'y a pas de caractère numérique, ou si le dernier caractère de la chaîne d'entrée est numérique. Notez que les espaces dans la chaîne sera ignorée:

enter image description here

+0

Excellente réponse complète. C'était le problème que j'avais toujours - le dernier personnage était numérique. Merci – nittyjee