2016-05-27 23 views
-1

私のセルA1には02020などの文字列が入ります。この文字列をチェックし、等しくない最初の文字の値を返す式が必要です上記の例では2を返します。Excel - 文字列内の0でない最初の文字を見つける

ありがとうございました。

+2

数式を表示します。 – findwindow

+0

私は数式を持っていない、数式は私が求めているものです。 – codetemplar

+0

SOはExcelサービスではありません。 – findwindow

答えて

1

唯一の重要な問題は、先頭のゼロが文字列内の最初の文字である可能性があります。または、先行するゼロの数値の書式設定の結果である可能性があります。解決策は、両方のケースをカバーする必要があります。これは、先行ゼロは、フォーマットの工夫されている場合でも動作するはず

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

は、このユーザー定義関数を考えてみましょう。

あるいは:

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

あるいは:

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

ありがとうございました:)ありがとうございました – codetemplar

+0

(コメントごとに)あなたは '、1'を必要としません – Jeeped

+0

@Jeeped私はしませんでしただと、わかる................................... –

関連する問題