【问题标题】:Excel - Finding first character that is not 0 in a stringExcel - 查找字符串中不是0的第一个字符
【发布时间】:2016-05-27 21:16:07
【问题描述】:

我的单元格 A1 中会有一个字符串,例如 02020。我需要一个公式来检查这个字符串并返回不等于 0 的第一个字符的值。所以在上面的示例中它应该返回 2。

感谢您的帮助。

【问题讨论】:

  • 显示你的公式。
  • @findwindow - troll 无法从单元格的 value 中获取 left-most 字符。继续……这里没什么可看的。
  • =LEFT(VALUE(A1))(¹没有意识到这是'复杂公式开发')。
  • 仅在工作表@ScottCraner 中,不在 VBA 中。 fwiw,对于 CODE 等类似功能也是如此。
  • 为了记录 OP,您所要做的就是展示您尝试过的一个无效的公式,所有这些都可以避免。

标签: excel


【解决方案1】:

唯一重要的问题是前导零可能是字符串中的第一个字符,或者它可能只是用前导零格式化数值的结果。解决方案应该涵盖这两种情况。

考虑这个用户定义函数:

Public Function DropTheZeros(r As Range) As Variant
    Dim s As String, i As Long

    s = r(1).Text
    For i = 1 To Len(s)
        DropTheZeros = Mid(s, i, 1)
        If DropTheZeros <> "0" Then Exit Function
    Next i
    DropTheZeros = ""
End Function

即使前导零是一种格式化技巧,这也应该有效。

甚至:

Public Function DropTheZeros2(r As Range) As Variant
    DropTheZeros2 = Left(Replace(r(1).Text, "0", ""), 1)
End Function

甚至没有 VBA:

=LEFT(SUBSTITUTE(TEXT(A1,"@"),"0",""),1)

【讨论】:

  • (根据 cmets)你不需要 , 1
猜你喜欢
  • 2017-09-22
  • 1970-01-01
  • 2018-01-19
  • 2020-02-14
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多