【问题标题】:How to extract numbers with leading zeros from mixed Excel cells?如何从混合 Excel 单元格中提取带前导零的数字?
【发布时间】:2019-01-18 20:46:03
【问题描述】:

我需要从混合单元格中提取前导零的数字吗?

示例单元格 A1 内容:

A1: 0012 SomeText

我在单元格 B1 中只需要带前导零的数字:

B1: 0012

如果我将公式 =TEXT(LEFT(A1;FIND(" ";A1));"@") 放入格式为 General 的单元格中,我只会得到不带前导零的数字 12。

如果我将公式放入格式化为文本公式的单元格不起作用,它会显示公式文本。

【问题讨论】:

  • 总是有四位数字吗?如果是这样,请将"@" 替换为"0000" 或仅使用=LEFT(A1,FIND(" ",A1)-1)
  • TEXT() 将数字转换为字符串,以便去除前导零,除非您使用具有它们的格式,即使那样它也可能没有您想要的前导零数量。请改用字符串处理函数。
  • 从 0 到 000001 有多种数字字符

标签: excel excel-formula


【解决方案1】:

假设您的文本是####[space]xxxx,您可以使用LEFT() 和SEARCH() 提取数字:

=TRIM(LEFT(A1;SEARCH(" ";A1)-1))

【讨论】:

  • 既然是空格,FIND也可以。问题出在 TEXT 上。
  • TRIM 在这种情况下究竟做了什么?
  • @VBasic2008 没什么,我只是习惯于在尝试获取字符串的特定部分时使用它。在这种情况下,我相信-1 有效地删除了尾随空格。
  • 不错。我一直用 VBA Split 来做这件事。抱歉打扰了。
  • @VBasic2008 一点也不麻烦!
【解决方案2】:

OP 的方法

=TEXT(LEFT(A1;FIND(" ";A1));REPT("0";FIND(" ";A1)-2)&"#")

逗号版

=TEXT(LEFT(A1,FIND(" ",A1)),REPT("0",FIND(" ",A1)-2)&"#")

以前的版本提出了尾随空格丢失的问题。

VBA 版本

Function LZERO(ZeroString As String) As String
    LZERO = Split(ZeroString)(0)
End Function

例如=LZERO(A1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多