2016-05-27 2 views
-1

В моей ячейке A1 будет строка, такая как 02020. Мне нужна формула, которая проверит эту строку и вернет значение первого символа, который не равен 0. Таким образом, в приведенном выше примере он должен вернуться 2.Excel - поиск первого символа, который не является 0 в строке

Спасибо за любую помощь.

+2

Покажите свою формулу. – findwindow

+0

У меня нет формулы, формула - это то, о чем я прошу. – codetemplar

+0

SO не является сервисом Excel. – findwindow

ответ

1

Единственная важная проблема заключается в том, что ведущий ноль может быть первым символом в строке символов или просто быть результатом форматирования числового значения с ведущими нулями. Решение должно охватывать оба случая.

Рассмотрим User Defined Function:

Public Function DropTheZeros(r As Range) As Variant 
    Dim s As String, i As Long 

    s = r(1).Text 
    For i = 1 To Len(s) 
     DropTheZeros = Mid(s, i, 1) 
     If DropTheZeros <> "0" Then Exit Function 
    Next i 
    DropTheZeros = "" 
End Function 

enter image description here

Это должно работать, даже если ведущие нули выдумка форматирования.

Или даже:

Public Function DropTheZeros2(r As Range) As Variant 
    DropTheZeros2 = Left(Replace(r(1).Text, "0", ""), 1) 
End Function 

Или даже без VBA:

=LEFT(SUBSTITUTE(TEXT(A1,"@"),"0",""),1) 
+0

Спасибо :) оцените это – codetemplar

+0

(согласно комментариям) Вам не нужно ', 1' – Jeeped

+0

@ Jeeped Я не сделал пойми это................................... –

Смежные вопросы