Sumproduct или sumif с заменой и критериями - PullRequest
0 голосов
/ 04 мая 2018

Я борюсь за формулу 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))))

Но это тоже не работает.

Может кто-нибудь помочь?

Спасибо

(Надеюсь, формулы верны, я "перевожу" их с французского ...)

В основном нужно проверить / проанализировать / сложить все в одном ... Спасибо:)

1 Ответ

0 голосов
/ 04 мая 2018

Сначала поместите эту пользовательскую функцию в стандартный модуль:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...