Excel 删除第一个字符,如果它是;0“;(零)

Excel 删除第一个字符,如果它是;0“;(零),excel,excel-formula,Excel,Excel Formula,为了删除列中的前导零,我无法获得正确的公式。我构建了以下内容,但它返回FALSE而不是不带零的值: =IF(RIGHT(Z2:Z19497,LEN(Z2:Z19497)-1)="0",MID(Z2:Z19497,2,LEN(Z2:Z19497))) 希望您能提供帮助。假设您的数据在Z2到Z19497中,您希望在单元格AA2中输入以下公式,然后从AA2到AA19497中进行选择并填写>向下(或按Ctrl+D): 注意:如注释中所述,不需要在LEN之后添加-1,因为MID即使指定的长度大于剩余字符

为了删除列中的前导零,我无法获得正确的公式。我构建了以下内容,但它返回
FALSE
而不是不带零的值:

=IF(RIGHT(Z2:Z19497,LEN(Z2:Z19497)-1)="0",MID(Z2:Z19497,2,LEN(Z2:Z19497)))

希望您能提供帮助。

假设您的数据在Z2到Z19497中,您希望在单元格AA2中输入以下公式,然后从AA2到AA19497中进行选择并填写>向下(或按Ctrl+D):

注意:如注释中所述,不需要在
LEN
之后添加
-1
,因为
MID
即使指定的长度大于剩余字符数,也可以正常工作。为了进一步减少键入,您可以使用
999
(或安全地超过最长单元格的数字)而不是
LEN(Z2)-1

您尝试的公式有几个问题:

  • 这种类型的公式一次只适用于一个单元格,但您包含了整个范围(
    Z2:Z19497
    ),而不是一个单元格(
    Z2
  • 您的
    IF
    语句有“IF true”部分(
    MID(Z2:Z19497,2,LEN(Z2:Z19497))
    ),但没有“IF false”部分。这就是为什么最后的结果是
    FALSE
    ,而不是
    Z2
    中的值
  • 对于测试条件,使用
    LEFT
    比使用
    RIGHT
    更容易

  • 请注意,当您向下复制公式时,
    Z2
    将自动前进到
    Z3
    Z4
    ,等等。

    假设您的数据在Z2到Z19497之间,您希望在单元格AA2中输入以下公式,然后从AA2到AA19497进行选择并向下填充(或按Ctrl+D):

    注意:如注释中所述,不需要在
    LEN
    之后添加
    -1
    ,因为
    MID
    即使指定的长度大于剩余字符数,也可以正常工作。为了进一步减少键入,您可以使用
    999
    (或安全地超过最长单元格的数字)而不是
    LEN(Z2)-1

    您尝试的公式有几个问题:

  • 这种类型的公式一次只适用于一个单元格,但您包含了整个范围(
    Z2:Z19497
    ),而不是一个单元格(
    Z2
  • 您的
    IF
    语句有“IF true”部分(
    MID(Z2:Z19497,2,LEN(Z2:Z19497))
    ),但没有“IF false”部分。这就是为什么最后的结果是
    FALSE
    ,而不是
    Z2
    中的值
  • 对于测试条件,使用
    LEFT
    比使用
    RIGHT
    更容易

  • 请注意,当您向下复制公式时,
    Z2
    将自动前进到
    Z3
    Z4
    ,等等。

    您的公式有几个问题

    首先,您试图将公式应用于一系列单元格
    Z2:Z19497
    。相反,您需要单独计算每个单元格,检查
    Z2
    是否以零开始,
    Z3
    是否以零开始,依此类推。如果将公式添加到类似cell
    AA2
    的位置,然后将其填充到
    AA19497
    ,则列
    AA
    中会有一个没有前导零的值列表

    下一个问题是您的
    IF
    test语句。如果我们把你的公式改成一个单元格,它看起来是这样的:
    RIGHT(Z2,LEN(Z2)-1)=“0”
    。这个公式说,告诉我,除了单元格
    Z2
    中的第一个字符之外,是否所有字符都等于0。看到这个有什么问题吗?只有当单元格
    Z2
    中有一个以0结尾的两位数时,它才会返回true。否则,您将测试多字符值是否等于0,这是不可能的

    相反,让我们检查第一个字符是否等于0。为此,让我们使用
    LEFT
    函数获取第一个字符
    LEFT(Z2,1)=“0”
    Awesome,现在我们知道第一个字符是否为0

    假设第一个字符是0。我们想删除它,但我们将如何做到这一点?当前逻辑的单单元格版本是
    MID(Z2,2,LEN(Z2))
    ,应该可以工作,但有点不正确。为了完整起见,让我们修复它。由于要删除单元格
    Z2
    的第一个字符,因此不再希望
    MID
    使用
    Z2
    的长度,而是希望它使用
    Z2
    的长度减去1。让我们将公式的这一部分重写为
    MID(Z2,2,LEN(Z2)-1)

    现在转到
    Z2
    中的单元格不以0开头的情况。如果是这种情况,您希望公式只返回该值。我们可以通过简单地在公式的指令后面添加一个逗号来实现这一点,当数字以0开头时,插入一个
    Z2
    。这听起来有点令人困惑,但在下面的完整公式中应该是有意义的:

    =IF(左(A1,1)=“0”,中(A1,2,LEN(A1)-1),A1)

    一旦输入到单元格中,大概是
    AA2
    ,您应该能够单击该单元格右下角的小框,让它沿着列填充公式,直到数据的末尾,大概是
    AA19497


    如果
    Z
    列中的所有值都是前面带零的数字,则可以使用另一个选项,如果我们遵循与此响应其余部分相同的模式,则只需在另一个单元格中输入公式
    =Z2*1
    =Z2/1
    。这将在新列中为您提供
    Z
    的数值,并且更易于记忆和键入。不幸的是,如果您的
    Z
    列中的值与数字混合在一起,它将不起作用。

    您的公式有几个问题

    首先,您试图将公式应用于一系列单元格
    Z2:Z19497
    。相反,您需要单独计算每个单元格,检查
    =IF(LEFT(Z2,1)="0",MID(Z2,2,LEN(Z2)-1),Z2)