Страницы: 1 2 След.
RSS
Сумма цифр с буквами
 
Здравствуйте, вот такой пример
есть ячейки со значениями 2  3  1в  1  4в  4
нужно чтобы из этого диапазона отдельно суммировались просто цифры и отдельно цифры с буквой
в даннном примере в одной ячейке должно получиться 10
в другой 5
 
в одной ячейке используете формулу СУММ, а во второй ячейке формула будет посложнее
Учимся сами и помогаем другим...
 
=СУММ(ЕСЛИОШИБКА(--(ПСТР(A1;СТРОКА($1:$999);1));0))

Массивная, А1 - ячейка со значениями 2 3 1в 1 4в 4  
 
Если значения в а1:а7, то формула массива:

=СУММ(ЕСЛИ(ЕТЕКСТ(A1:A7);МУМНОЖ(Ч(ЕСЛИОШИБКА(ПСТР(A1:A7;СТОЛБЕЦ(A1:J1);1)*СТРОКА(A1:A7)^0;));СТРОКА(1:10)^0)))
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Согласно ТЗ эти значения находятся в разных ячейках :-)
Учимся сами и помогаем другим...
 
моя формула массива для второго случая если ячейки в ряд:

Код
=СУММ(--(ПОДСТАВИТЬ(A1:F1;"в";"")))-СУММ(A1:F1)
 

все согласно примера
Изменено: ber$erk - 25.12.2014 08:28:34
Учимся сами и помогаем другим...
 
Ivan.kh,Владимир по вашим формулам 0 получается
ber$erk по вашей #ЗНАЧ!
 
avsm, а Вы ее как вводили?
Я же написал, что формула массивная, вводится Ctrl+Shift+Enter
Изменено: Ivan.kh - 25.12.2014 08:36:56 (добавил пример)
 
и вы конечно же знаете как заполняется формула массива
Учимся сами и помогаем другим...
 
вот пример, нужно чтобы в ячейке H1 была сумма цифр, которые с буквой в, в данном случае должно получиться 5
 
сразу надо было начинать с этого примера. Тогда бы и ответ пришел раньше и люди бы не тратили свое время.
Учимся сами и помогаем другим...
 
=СУММ(НЕ(ЕОШ(НАЙТИ("в";A1:F1)))*ПОДСТАВИТЬ(A1:F1;"в";""))
массивная
 
сократил свою формулу - были скобки лишние :-)

Код
=СУММ(--ПОДСТАВИТЬ(A1:F1;"в";""))-СУММ(A1:F1)
 
Учимся сами и помогаем другим...
 
ber$erk, что-то я тупонул, у Вас действительно проще. Но можно и без массивного ввода обойтись:
=СУММПРОИЗВ(--ПОДСТАВИТЬ(A1:F1;"в";""))-СУММ(A1:F1)
 
ну это же длиннее получается ))
Учимся сами и помогаем другим...
 
всем спасибо за помощь ! )
 
Выражусь регулярно.  :D  
Второй аргумент: 0 - суммировать цифры без буквы, 1 - суммировать цифры с буквой. Например, =SumNums(A1;0).

Код
Function SumNums(cell, withLetter)
    Dim i
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True: .Global = True: .Pattern = "\d+(?" & IIf(withLetter, "=", "!") & "[а-я])"
        With .Execute(cell): For i = 0 To .Count - 1: SumNums = SumNums + CDbl(.Item(i)): Next: End With
    End With
End Function
 
There is no knowledge that is not power
 
в общем если одна из ячеек окажется пустой, то ошибка  #ЗНАЧ!
=СУММПРОИЗВ(--ПОДСТАВИТЬ(A1:F1;"в";""))-СУММ(A1:F1)
 
avsm, Мой файл открывали?
There is no knowledge that is not power
 
Johny,да, но у вас в примере значения в одной ячейке,а нужно чтобы в одной ячейке по значению было
 
тогда только формулой массива
Код
=СУММ(--ПОДСТАВИТЬ(ЕСЛИ(A1:G1="";0;A1:G1);"в";""))-СУММ(ЕСЛИ(A1:G1="";0;A1:G1))
 
Учимся сами и помогаем другим...
 
ругается на  =СУММ(--ПОДСТАВИТЬ(ЕСЛИ(A1:G1="";0;A1:G1);"в";""))-СУММ(ЕСЛИ(A1:G1="";0;A1:G1))
 
а я вставил одну ячейку с пустотой
Изменено: ber$erk - 25.12.2014 12:42:43
Учимся сами и помогаем другим...
 
Формулы массива.
Сумма чисел без буквы:
=СУММ(ЕСЛИОШИБКА(--ПСТР(0&A1:F1&" д";СТРОКА(1:20);3);))
Сумма чисел с буквой:
=СУММ(ЕСЛИ(ПСТР(A1:F1;СТРОКА(2:21);1)="в";--ПСТР(0&A1:F1;СТРОКА(1:20)-1;1)))
 
До кучи  
=СУММ(ЕСЛИОШИБКА(--ПОДСТАВИТЬ(A1:F1;"в";"");))-СУММ(A1:F1)
 
сумма чисел с буквой просто =СУММ(A1:F1)
Ivan.kh,  по вашей формуле -10 получается
 
avsm, я понял , что и с буквой, и без буквы - все в одной ячейке. И таких ячеек несколько. Формулы показал именно для такого случая.
Для "раздельного" случая сумма цифр ячеек с буквами (формула массива):
=СУММ(ЕСЛИ(ДЛСТР(A1:F1)=2;--ЛЕВСИМВ(A1:F1)))
 
vikttur, ругается на диапазон A1:F1 =СУММ(ЕСЛИ(ДЛСТР(A1:F1)=2;--ЛЕВСИМВ(A1:F1)))
 
У меня не ругается. Родная потому что?
 
avsm, введите как формулу массива
Изменено: Ivan.kh - 25.12.2014 13:45:47 (добавил пример)
Страницы: 1 2 След.
Читают тему
Наверх