Excel 中删除非数字值中多个前导零的最佳方法

Excel 中删除非数字值中多个前导零的最佳方法

我读过关于“在 Excel 中从非数字值中删除前导零的最佳方法”,我很喜欢提供的解决方案,但问题是,它只能从前面的零中删除 1 个零。我需要它找到零并将它们全部删除。因此,我使用了该公式并插入了另一个 if 语句,如下所示:

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

但是,它没有起作用。

答案1

您没有提到字母数字值中预期的“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)

就足够了。

答案2

使用这个数组公式:

=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 函数中的第一个字符。

在此处输入图片描述

答案3

尝试这个小的用户定义函数:

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

答案4

定义一个创建数字数组的名称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)

在此处输入图片描述

相关内容