Beste Möglichkeit zum Entfernen mehrerer führender Nullen in nicht numerischen Werten in Excel

1

Ich las über "Die beste Möglichkeit, führende Nullen von einem nicht numerischen Wert in Excel zu entfernen" und ich liebe die bereitgestellte Lösung, aber das Problem ist, dass nur 1 Nullen von den vorhergehenden Nullen entfernt werden. Ich brauche es, um die Nullen zu finden und sie alle zu entfernen. Also habe ich diese Formel verwendet und eine weitere if-Anweisung eingefügt:

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

Aber es hat nicht funktioniert.

user2089542
quelle
Was wird nach der 0 kommen, nur Zahlen oder auch Text?
Scott Craner
Sie müssen die maximale Länge einer beliebigen Textzeichenfolge und die maximale Länge der Zahl ohne Nullen angeben. Ich sehe kreative Lösungen, aber sie stimmen alle nicht mit Ihrem theoretischen Problem überein.
Ejbytes

Antworten:

0

Sie haben die maximale Anzahl von "0", die in Ihrem alphanumerischen Wert erwartet wird, nicht erwähnt. Hier ist ein Beispiel mit maximal 4 Nullen:

=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))))

Dies gibt Ihnen das nächste Ergebnis:

Nullen löschen

Natürlich, wenn Ihr Wert eine einzelne Zahl ist:

=VALUE(A1)

wird genügen.

fernando.reyes
quelle
Vielen Dank, fernando, für deine Hilfe. Das hat super geklappt. Vielen Dank für Ihre Hilfe.
user2089542
0

Verwenden Sie diese Matrixformel:

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

Als Matrixformel muss sie beim Verlassen des Bearbeitungsmodus mit Strg-Umschalt-Enter anstelle von Enter bestätigt werden. Wenn es richtig gemacht wird, wird Excel {}die Formel umgehen.

Es findet das erste nicht 0und setzt es als erstes Zeichen in der MID-Funktion.

Bildbeschreibung hier eingeben

Scott Craner
quelle
0

Probieren Sie diese kleine benutzerdefinierte Funktion aus:

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
Garys Schüler
quelle
Und wenn Sie Option ExplicitIhr Modul oben hinzufügen , können Sie es als lokale Formel verwenden.
Ejbytes
@ejbytes Sie sind richtig
Garys Schüler
0

Definieren Sie einen Namen, der ein Array von Zahlen erstellt 1:255

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

Verwenden Sie dann diese eingegebene Formel, indem Sie ctrl + shiftbeim Schlagen gedrückt haltenEnter

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

Bildbeschreibung hier eingeben

Ron Rosenfeld
quelle