gpt4 book ai didi

excel - VBA 或 Excel 函数计算逗号分隔字符串中的非零

转载 作者:行者123 更新时间:2023-12-04 20:53:08 24 4
gpt4 key购买 nike

我有一个包含以下内容的单元格:[90,90,90,0,90]。

我只想计算逗号之前或之后的非零数字。

所以,在上面的例子中,答案是 4,因为“90”​​出现了 4 次。

如果单元格包含 [180,180,0,0,0,0,0,0,90],则答案为 3。

是否有 VBA 或 Excel 功能(与 LEN、SUBSTITUTE、TRIM 等一起玩,没有运气)来完成这个?

谢谢,

蒂姆

最佳答案

如果您的数据如图所示严格:

  • 逗号之间没有空格
  • 没有前导零的非零数字,例如0180

  • 那么以下非常低效的公式将起作用:
    =(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))) + 1 - (
    (LEN(A1)-LEN(SUBSTITUTE(A1,",0",",")))
    +(LEN(A1)-LEN(SUBSTITUTE(A1,"[0,","[,")))
    +(LEN(A1)-LEN(SUBSTITUTE(A1,",0]",",]")))
    )

    否则,您可能应该使用 VBA:
    Public Function CountNonZero(ByVal s As String) As Long
    Dim arr() As String
    arr = Split(Mid$(Trim$(s), 2, Len(s) - 2), ",")

    Dim i As Long
    For i = LBound(arr) To UBound(arr)
    If Trim$(arr(i)) <> "0" Then CountNonZero = CountNonZero + 1
    Next
    End Function

    关于excel - VBA 或 Excel 函数计算逗号分隔字符串中的非零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53585058/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com