Excel formula 仅当至少有5个元素时,数字数组的总和,在1个单元格中用逗号分隔 我需要同一单元格中元素数组的和 它们之间用逗号分隔 如果有

Excel formula 仅当至少有5个元素时,数字数组的总和,在1个单元格中用逗号分隔 我需要同一单元格中元素数组的和 它们之间用逗号分隔 如果有,excel-formula,Excel Formula,我在这里问了一个类似的问题: 但您还有一个附加要求,因此请尝试以下用户定义的函数: Public Function SumWithin(s As String) As Variant If s = "" Then SumWithin = "" Exit Function End If If InStr(1, s, ",") = 0 Then SumWithin = "" Exit Function

我在这里问了一个类似的问题:

但您还有一个附加要求,因此请尝试以下用户定义的函数:

Public Function SumWithin(s As String) As Variant
    If s = "" Then
        SumWithin = ""
        Exit Function
    End If

    If InStr(1, s, ",") = 0 Then
        SumWithin = ""
        Exit Function
    End If

    arry = Split(s, ",")
    If UBound(arry) < 4 Then
        SumWithin = ""
        Exit Function
    End If

    For Each a In arry
        SumWithin = SumWithin + CDbl(a)
    Next a
End Function
公共函数suminin(作为字符串)作为变量
如果s=”“,则
suminin=“”
退出功能
如果结束
如果InStr(1,s,“,”)=0,则
suminin=“”
退出功能
如果结束
arry=拆分(s,“,”)
如果UBound(arry)<4,则
suminin=“”
退出功能
如果结束
每到一个月
SUMININ=SUMININ+CDbl(a)
下一个
端函数
一些例子:


这种方法避免了典型的文本到列方法所需的所有额外单元格。

在没有VBA的情况下,可以做到这一点,但它涉及数组公式。

您可以使用名称管理器(Ctrl+F3)诱使excel将列表作为数组读取,我称我的命名范围为“valueArray”:

=EVALUATE(“{”和SUBSTITUTE(Sheet1!$A2,“,”)&“}”)

请注意,row参数没有绝对引用,它从与数据相同的行开始(以正确对齐数组的首次使用)

你可以参考
Sheet1$A2
直接包装在
EVALUATE()
和花括号中,但已使用
SUBSTITUTE()
确保数据不会被空格破坏

现在您已经拥有了数组,可以轻松地对其执行逻辑操作,如果在预期结果时抛出错误或单元格为空,则很可能其中一个值没有解析为数字(其中可能有一两个字母):

=IF(COUNT(valueArray)>4,SUM(valueArray),“”)


你好。我是个新手,所以我把数字数组分割成不同的单元格。然后我用求和公式把它们加起来,但我是手工做的。ie:我跳过没有5个元素的单元格。正如我所说,我相信一定有办法。非常感谢
Public Function SumWithin(s As String) As Variant
    If s = "" Then
        SumWithin = ""
        Exit Function
    End If

    If InStr(1, s, ",") = 0 Then
        SumWithin = ""
        Exit Function
    End If

    arry = Split(s, ",")
    If UBound(arry) < 4 Then
        SumWithin = ""
        Exit Function
    End If

    For Each a In arry
        SumWithin = SumWithin + CDbl(a)
    Next a
End Function