Sumproduct或sumif with substitute and criteria

时间:2018-05-04 13:03:04

标签: excel excel-formula

我正在努力学习Excel公式,希望有人能帮助我。

这是我想要做的。我有以下几行:

|3RO|5R|10RO| |3P|

我想在“RO”字符串之前添加所有数字,而不包含R或空格或P。

在这种情况下,我想要的结果是:13(3 + 10)

我有以下内容:

=SUMPRODUCT(NUMBERVALUE(SUBSTITUTE(A1:D1,"RO","")))

如果我只有空的或RO包含单元格,那么这是有效的,但如果我有一个“5R”值,当然不起作用

所以我想首先检查单元格值是否包含“RO”,然后解析并添加

我试过

=SUMPRODUCT((RIGHT(A1:E1,2)="RO")*(NUMBERVALUE(LEFT(A1:E1,FIND("RO",;A1:E1)-1))))

但它也不起作用。

有人可以帮忙吗?

谢谢,

(我希望公式是正确的,我正在将它们从法语“翻译”......)

基本上需要检查/解析/总结一个...谢谢:)

2 个答案:

答案 0 :(得分:0)

首先将此用户定义函数放在标准模块中:

Public Function NumPart(rng As Range)
    Dim r As Range, CH As String
    Dim temp As String, K As Long
    Dim arr, L As Long, i As Long
    ReDim arr(1 To 1, 1 To rng.Count)

    K = 1
    For Each r In rng
        v = r.Text
        L = Len(v)
        temp = ""
        For i = 1 To L
            CH = Mid(v, i, 1)
            If CH Like "[0-9]" Then
                temp = temp & CH
            End If
        Next i
        arr(1, K) = CLng(temp)
        K = K + 1
    Next r
    NumPart = (arr)
End Function

(它将混合文本的值返回为Long)

然后在某个单元格中输入:

=SUMPRODUCT(numpart(A1:D1)*(RIGHT(A1:D1,2)="RO"))

enter image description here

答案 1 :(得分:0)

编辑:如果您想将其作为一个公式,那么您可以使用以下内容:

`=SUM(VALUE(IFERROR(LEFT(C3:F3,IFERROR(SEARCH("RO",C3:F3),0)-1),0)))`

这里我的范围是C3:F3,但你的范围是数字出现的范围。还要确保用CTRL SHFIT ENTER设置公式。

https://i.stack.imgur.com/GX9uR.png