Как убрать начальные нули в ячейке, которая начинается с текста и имеет текст и цифры - PullRequest
0 голосов
/ 21 февраля 2020

В столбце Excel у меня есть ячейка, содержащая MATH 0128, а другая - MATH 0015. Я хочу формулу или функцию, которая изменит ячейку с MATH 0128 на MATH 128 и MATH 0015 на MATH 15.

Я нашел

=MID(A2,MATCH(TRUE,(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)<>"0"),0),LEN(A2)) 

для ячейки A2, но кажется, что это работает, только если ячейка начинается с 0, скажем от 000Math0128 до Math 0128.

Все мои ячейки начинаются с текста.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Предполагая, что общей чертой этих строк является пробел между начальным словом и частью цифр c, и что после цифры № 1018 * нет других символов:

=LEFT(A2,FIND(" ",A2))&VALUE(MID(A2,FIND(" ",A2)+1,9999))

В качестве альтернативы и, в более общем смысле, для версий Excel, которые поддерживают FilterXML

=TEXTJOIN(" ",TRUE,FILTERXML("<a><b>"&SUBSTITUTE(A2," ","</b><b>")&"</b></a>","//b"))

. При этом будет обработана строка компонентов AlphaNumeri c и Numeri c, разделенных пробелами, и удалена ведущая 0 из цифры c компоненты. (Вы можете заменить пробел на любой другой разделитель по вашему выбору)

Некоторые примеры

enter image description here

0 голосов
/ 21 февраля 2020

Исходя из вашего примера, это то, что вам нужно:

=SUBSTITUTE(SUBSTITUTE(A1," 0"," ")," 0"," ")

У вас есть другие варианты, такие как циклы в VBA (с использованием REPLACE вместо SUBSTITUTE).

Если вы хотите добавьте больше опций к приведенной выше формуле, вы просто добавили бы ее в другие ЗАМЕНИТЕЛИ.

=SUBSTITUTE(," 0"," ")
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," 0"," ")," 0"," ")," 0"," ")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...