Страницы: 1
RSS
Суммирование цен в ячейке
 
Доброго времени суток. Имеется такая таблица с данными. Как можно суммировать несколько цен в одной ячейки.
 
Какой результат должен получиться? Покажите в файле
Согласие есть продукт при полном непротивлении сторон
 
372$
 
Почему не 402? Или 77?
Согласие есть продукт при полном непротивлении сторон
 
Shoes 1шт. 150$ ;
Lotion  3шт. 30$ ;
Cream 1шт. 25$ ;
Shoes 1шт. 25$ ;
Slim fast  4шт. 20$ ;
Fabreez 3шт. 15$ ;
Deodorant 5шт. 25$ ;
Vitamen 2шт. 40$ ;
Easter egg 6шт. 42$ ;

=150+30+25+25+20+15+25+40+42  == 372$
 
Шузы суммировать с яйцами и кремом !? Бред. Ой. Я вслух это сказал?. И количество никакой роли не играет?
Изменено: Sanja - 09.04.2018 13:06:13
Согласие есть продукт при полном непротивлении сторон
 
конкретно для Вашего случая можно с помощью UDF
Код
Function summcl(rng As Range)
arr = Split(rng, ";")
For Each ss In arr
    s = Split(Trim(ss), " ")
    sm = sm + Val(Left(s(UBound(s)), Len(s(UBound(s))) - 1))
Next
summcl = sm
End Function

но есть подозрение, что Вы изначально где-то усложнили себе жизнь..
 
Вариант. Связка двух функций
Код
Function СУММЦЕН(iTxt)
Dim iStr, I&
iStr = Split(Trim(iTxt), ";")
For I = 0 To UBound(iStr)
    If Trim(iStr(I)) <> Empty Then
        СУММЦЕН = СУММЦЕН + CDbl(Replace(RegExpExtract(CStr(iStr(I)), "\d+\$"), "$", ""))
    End If
Next
End Function

Private Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String
    On Error GoTo ErrHandl
    Set regex = CreateObject("VBScript.RegExp")
    regex.Pattern = Pattern
    regex.Global = True
    If regex.Test(Text) Then
        Set matches = regex.Execute(Text)
        RegExpExtract = matches.Item(Item - 1)
        Exit Function
    End If
ErrHandl:
    RegExpExtract = CVErr(xlErrValue)
End Function
Согласие есть продукт при полном непротивлении сторон
 
Пардон там не цена а сумма. Сайт не формирует общую сумму. А программисты не хотят добавлять новый столбец с данными.  
 
yozhik, спасибо, очень помогли
Sanja,  Вам тоже спасибо
Страницы: 1
Наверх