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


1

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

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

但是,它没有用。


0,仅数字或文本之后还会出现什么?
斯科特·克莱纳

您必须解决任何文本字符串的最大长度,以及不带零的数字的最大长度。我看到了创造性的解决方案,但它们都是假设性的,与您的理论问题无关。
ejbytes

Answers:


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)

就足够了。


非常感谢您,费尔南多为您提供帮助。效果很好。感谢您的协助。
user2089542

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

如果将Option Explicit模块添加到顶部,则可以将其用作本地公式。
ejbytes

@ejbytes你是正确的
加里学生

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)

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.