1

Я читал о «Лучший способ удалить начальные нули из нечисловых значений в Excel», и мне нравится предоставленное решение, но проблема в том, что он удаляет только 1 ноль из предыдущих нулей. Мне нужно, чтобы найти нули и удалить их все. Итак, я использовал эту формулу и вставил еще один оператор if, как это:

=IF( LEFT(S3) = "0", RIGHT(S3, LEN(S3)-1),IF(
    LEFT(S3) = "0",
    RIGHT(S3, LEN(S3)),
    S3))

Но это не сработало.

4 ответа4

0

Вы не упомянули максимальное число "0", ожидаемое в вашем буквенно-цифровом значении, поэтому вот пример с максимумом 4 нуля:

=IF(LEFT(A1,4)="0000",RIGHT(A1,LEN(A1)-4), IF(LEFT(A1,3)="000",RIGHT(A1,LEN(A1)-3), IF(LEFT(A1,2)="00",RIGHT(A1,LEN(A1)-2), IF(LEFT(A1,1)="0",RIGHT(A1,LEN(A1)-1), A1))))

Это даст вам следующий результат:

удалить нули

Конечно, если ваше значение является числовым:

=VALUE(A1)

будет достаточно.

0

Используйте эту формулу массива:

=MID(A1,MIN(IF(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)<>"0",ROW(INDIRECT("1:" & LEN(A1))))),LEN(A1))

Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования. Если все сделано правильно, то Excel поместит {} вокруг формулы.

Он найдет первый не 0 и установит его в качестве первого символа в функции MID.

0

Попробуйте эту небольшую пользовательскую функцию:

Public Function nozero(s As String) As String
    Dim l As Long
    l = Len(s)

    If Left(s, 1) <> "0" Then
        nozero = s
        Exit Function
    End If

    t = s
    While Left(t, 1) = "0"
        t = Mid(t, 2)
    Wend
    nozero = t
End Function
0

Определите имя, которое создает массив чисел 1:255

seq   refers to:  =ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))

Затем используйте эту формулу, введенную, удерживая Ctrl + Shift при нажатии Enter

=MID(A1,MATCH(TRUE,MID(A1,seq,1)<>"0",0),99)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .