Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2010, 01:29   #1
oldjoe
Пользователь
 
Регистрация: 21.07.2010
Сообщений: 12
По умолчанию как суммировать только числа из ячеек где есть текст?

Напр 3 ячейки:
10Вдр15Кор7Ад
1Нос2НосГ
4Бр19Кс4УхС

в четвертой банально нужна сумма цифр из этих трех(или более) ячеек
сумма только цифр

пс.:таких ячеек очень много, просто =сумм не работает никак, разбивать вручную все это по разным ячейкам чтоб эксель игнорировал те которые с текстом -адская маята!

хелп?
oldjoe вне форума Ответить с цитированием
Старый 21.11.2010, 01:53   #2
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Код:
=СУММ((ДЛСТР(диапазон)-ДЛСТР(ПОДСТАВИТЬ(диапазон;{1;2;3;4;5;6;7;8;9};"")))*{1;2;3;4;5;6;7;8;9})
формула массива
Вложения
Тип файла: rar Сумма_цифр.rar (3.2 Кб, 325 просмотров)

Последний раз редактировалось ZORRO2005; 21.11.2010 в 01:55.
ZORRO2005 вне форума Ответить с цитированием
Старый 21.11.2010, 02:30   #3
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Красиво!

Но что нужно автору?
Цитата:
Сообщение от oldjoe
как суммировать только числа...
Цитата:
Сообщение от oldjoe
...банально нужна сумма цифр...
vikttur вне форума Ответить с цитированием
Старый 21.11.2010, 02:41   #4
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Если нужно сумму цифр только из ячеек с текстом, то нужно заменить диапазон на ЕСЛИ(ЕТЕКСТ(диапазон);диапазон)
vikttur, это не для Вас. Вам такие вещи не нужно объяснять.

Последний раз редактировалось ZORRO2005; 21.11.2010 в 02:44.
ZORRO2005 вне форума Ответить с цитированием
Старый 21.11.2010, 03:38   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

нашлась формула (для суммирования цифр)
традиционно в теме написано:
Цитата:
как суммировать только числа
а в сообщении:
Цитата:
банально нужна сумма цифр из этих ячеек
разберем первое значение 10Вдр15Кор7Ад.
тут содержится три числа: 10, 15 и 7
тут содержится 5 цифр: 1, 0, 1, 5, 7
соответственно:
сумма чисел = 10 + 15 + 7 = 32
сумма цифр = 1+0+1+5+7 = 14
знаете от куда родом фраза "но это две большие разницы"
Цитата:
просто =сумм не работает никак
ошибочка вышла, именно с просто =сумм я и начал:
Код:
=СУММ(ЕСЛИ(ЕОШ(ЗНАЧЕН(ПСТР(дт;ТРАНСП(СТРОКА(ДВССЫЛ("1:" & МАКС(ДЛСТР(дт)))));1)));;ЗНАЧЕН(ПСТР(дт;ТРАНСП(СТРОКА(ДВССЫЛ("1:" & МАКС(ДЛСТР(дт)))));1))))
формула считает сумму цифр, находящихся между буквами массива. чтобы чуть сократить формулу массив с данными предварительно назван ДТ. к сожаление в 2003 это все работать отказалось - зашкалило количество вложенных функций.
Вложения
Тип файла: rar Книга454.rar (5.9 Кб, 168 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.11.2010, 11:07   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

так.как ТК не определился.предлагаю по ячейкам ударить Regex
На выбор,либо цифры.либо числа
Код:
Function oNumbers(RNG As Range) As Double
Dim RegEx As Object
Dim ssl As String, S_Summ As Double
For n = 1 To RNG.Columns.Count
For m = 1 To RNG.Rows.Count
ssl = ssl & RNG.Cells(m, n)
Next: Next
Set RegEx = CreateObject("VBScript.RegExp")
    With RegEx
        .Global = True
        .Pattern = "\D"
       ssl = .Replace(ssl, " ")
    End With
Set objRegEx = Nothing
  ssl = RTrim(LTrim(ssl))
      sl = Split(ssl, " ", -1)
     For n = 0 To UBound(sl)
     If sl(n) <> "" Then
     S_Summ = S_Summ + sl(n)
     End If: Next
  oNumbers = S_Summ
End Function
-----------------------------------------
Function Zifra(RNG As Range) As Double
Dim RegEx As Object
Dim ssl As String, S_Summ As Double
For n = 1 To RNG.Columns.Count
For m = 1 To RNG.Rows.Count
ssl = ssl & RNG.Cells(m, n)
Next: Next
Set RegEx = CreateObject("VBScript.RegExp")
    With RegEx
        .Global = True
        .Pattern = "\D"
       ssl = .Replace(ssl, " ")
    End With
Set objRegEx = Nothing
  ssl = RTrim(LTrim(ssl))
     For n = 1 To Len(ssl)
      sl = Mid(ssl, n, 1)
     If sl <> " " Then
     S_Summ = S_Summ + sl
     End If: Next
  Zifra = S_Summ
End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 21.11.2010, 14:19   #7
oldjoe
Пользователь
 
Регистрация: 21.07.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
нашлась формула (для суммирования цифр)
традиционно в теме написано:а в сообщении:
разберем первое значение 10Вдр15Кор7Ад.
тут содержится три числа: 10, 15 и 7
тут содержится 5 цифр: 1, 0, 1, 5, 7
соответственно:
сумма чисел = 10 + 15 + 7 = 32
сумма цифр = 1+0+1+5+7 = 14
знаете от куда родом фраза "но это две большие разницы"

ошибочка вышла, именно с просто =сумм я и начал:
Код:
=СУММ(ЕСЛИ(ЕОШ(ЗНАЧЕН(ПСТР(дт;ТРАНСП(СТРОКА(ДВССЫЛ("1:" & МАКС(ДЛСТР(дт)))));1)));;ЗНАЧЕН(ПСТР(дт;ТРАНСП(СТРОКА(ДВССЫЛ("1:" & МАКС(ДЛСТР(дт)))));1))))
формула считает сумму цифр, находящихся между буквами массива. чтобы чуть сократить формулу массив с данными предварительно назван ДТ. к сожаление в 2003 это все работать отказалось - зашкалило количество вложенных функций.
две огромные разницы
прошу прощение за формулировку
нужна сумма чисел конечно, 32 которая

просто после двух-часового поиска по инету в хелпе экселя и тут на форуме, в попытке найти как эксель может и может ли разделять в одной ячейке текст/чифры/числа/значения/проценты итд итп в голове попуталось. хехе
oldjoe вне форума Ответить с цитированием
Старый 21.11.2010, 14:35   #8
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Приложите пример, максимально приближенный к реалиям. Тогда можно и подумать=)
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Старый 21.11.2010, 14:41   #9
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

doober,
спасибо за пользовательские функции.
Как подправить oNumbers(), чтобы правильно считала ячейки где в конце числа?
a12
3b
посчитала 123.
ZORRO2005 вне форума Ответить с цитированием
Старый 21.11.2010, 15:02   #10
oldjoe
Пользователь
 
Регистрация: 21.07.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от DV68 Посмотреть сообщение
Приложите пример, максимально приближенный к реалиям. Тогда можно и подумать=)
да пример вот сойдет с теми тремя ячейками которые я наверху написал, главно способ какой
oldjoe вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
суммировать значения повторяющихся ячеек в excel breeze.olga Microsoft Office Excel 17 17.12.2015 17:03
как округлить числа во всём столбце(2500 ячеек)? Danatos Microsoft Office Excel 13 15.02.2011 06:08
Как преобразовывать числа в текст? bluesman Microsoft Office Excel 4 25.09.2010 00:22
Числа как текст ezus Microsoft Office Excel 4 02.08.2009 14:17
Как в OnkeyPress отловить если в Edit есть текст позицию заменяемого символа? slips Общие вопросы Delphi 3 06.12.2008 18:12