Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/сумма групп чисел разделенных нулями - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
сумма групп чисел разделенных нулями
Jhonson Дата: Пятница, 12.08.2011, 11:04 | Сообщение № 1
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Подскажите пожалуйста!
Необходимо получить суммы групп чисел разделенных нулями.
Нужно формулой.
К сообщению приложен файл: 4041830.xls (12.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 12.08.2011, 11:06
 
Ответить
СообщениеПодскажите пожалуйста!
Необходимо получить суммы групп чисел разделенных нулями.
Нужно формулой.

Автор - Jhonson
Дата добавления - 12.08.2011 в 11:04
Jhonson Дата: Пятница, 12.08.2011, 11:31 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

18 27 45 10


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 12.08.2011, 13:25
 
Ответить
Сообщение18 27 45 10

Автор - Jhonson
Дата добавления - 12.08.2011 в 11:31
Jhonson Дата: Пятница, 12.08.2011, 13:23 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

написал пользовательскую функцию, но хотелось бы стандартными средствами, без VBA
вот текст функции:

Code
Function суммгрупп(Diapazon As Range)
Dim itog(100) As Integer
Dim iCell As Range
k = 0
ch = 0
For Each iCell In Diapazon
If iCell <> 0 Then
k = k + iCell
bul = 1
Else
If k <> 0 Then
itog(ch) = k
ch = ch + 1
End If
bul = 0
k = 0
End If
Next
If k <> 0 Then
itog(ch) = k
End If
For i = 0 To ch
суммгрупп = суммгрупп + CStr(itog(i)) + " "
Next i
End Function


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщениенаписал пользовательскую функцию, но хотелось бы стандартными средствами, без VBA
вот текст функции:

Code
Function суммгрупп(Diapazon As Range)
Dim itog(100) As Integer
Dim iCell As Range
k = 0
ch = 0
For Each iCell In Diapazon
If iCell <> 0 Then
k = k + iCell
bul = 1
Else
If k <> 0 Then
itog(ch) = k
ch = ch + 1
End If
bul = 0
k = 0
End If
Next
If k <> 0 Then
itog(ch) = k
End If
For i = 0 To ch
суммгрупп = суммгрупп + CStr(itog(i)) + " "
Next i
End Function

Автор - Jhonson
Дата добавления - 12.08.2011 в 13:23
Serge_007 Дата: Пятница, 12.08.2011, 13:30 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Jhonson)
хотелось бы стандартными средствами, без VBA

Это не так просто...
Результат в одну ячейку ведь надо?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Jhonson)
хотелось бы стандартными средствами, без VBA

Это не так просто...
Результат в одну ячейку ведь надо?

Автор - Serge_007
Дата добавления - 12.08.2011 в 13:30
Jhonson Дата: Пятница, 12.08.2011, 13:36 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

можно каждую сумму в отдельную ячейку


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 12.08.2011, 13:36
 
Ответить
Сообщениеможно каждую сумму в отдельную ячейку

Автор - Jhonson
Дата добавления - 12.08.2011 в 13:36
Jhonson Дата: Пятница, 12.08.2011, 13:51 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Вот получилось, только пришлось добавить лишние столбцы и строки, да и вообще все как-то коряво получилось, может придумаете как избавиться от промежуточных данных.
К сообщению приложен файл: 3734875.xls (14.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеВот получилось, только пришлось добавить лишние столбцы и строки, да и вообще все как-то коряво получилось, может придумаете как избавиться от промежуточных данных.

Автор - Jhonson
Дата добавления - 12.08.2011 в 13:51
Формуляр Дата: Пятница, 12.08.2011, 15:04 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Jhonson,
у меня получился несколько более изящный вариант. Но без промежуточных значений всё равно - никак sad
К сообщению приложен файл: 4041830_2.xls (15.5 Kb)


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Пятница, 12.08.2011, 15:05
 
Ответить
СообщениеJhonson,
у меня получился несколько более изящный вариант. Но без промежуточных значений всё равно - никак sad

Автор - Формуляр
Дата добавления - 12.08.2011 в 15:04
Jhonson Дата: Пятница, 12.08.2011, 15:23 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Формуляр,
Спасибо, так действительно получше, но у меня исходных строк будет много, с дополнительными строками и столбцами будет слишком громоздко, наверное придется делать на VBA.
Посмотрим, может кто еще что подскажет


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеФормуляр,
Спасибо, так действительно получше, но у меня исходных строк будет много, с дополнительными строками и столбцами будет слишком громоздко, наверное придется делать на VBA.
Посмотрим, может кто еще что подскажет

Автор - Jhonson
Дата добавления - 12.08.2011 в 15:23
Формуляр Дата: Пятница, 12.08.2011, 17:02 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Jhonson,
если после исходных данных в строке ничего нет, например, результирующие строки вынесены на др. лист,
то удаётся без промежуточных значений получить накопленные суммы. Остаётся только маленький шаг - получить их разность.
Но на это ума уже не хватает.

А жаль ...
К сообщению приложен файл: 4041830_3.xls (14.0 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеJhonson,
если после исходных данных в строке ничего нет, например, результирующие строки вынесены на др. лист,
то удаётся без промежуточных значений получить накопленные суммы. Остаётся только маленький шаг - получить их разность.
Но на это ума уже не хватает.

А жаль ...

Автор - Формуляр
Дата добавления - 12.08.2011 в 17:02
Формуляр Дата: Пятница, 12.08.2011, 18:47 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Можно, конечно, в тупую вычесть всю формулу саму из себя со смещением.
Но это уже изврат.
Уж лучше с промежуточными значениями.
К сообщению приложен файл: 4041830_4.xls (14.0 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеМожно, конечно, в тупую вычесть всю формулу саму из себя со смещением.
Но это уже изврат.
Уж лучше с промежуточными значениями.

Автор - Формуляр
Дата добавления - 12.08.2011 в 18:47
MCH Дата: Пятница, 12.08.2011, 21:18 | Сообщение № 11
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

вариант без промежуточных вычислений
К сообщению приложен файл: __.xls (19.5 Kb)
 
Ответить
Сообщениевариант без промежуточных вычислений

Автор - MCH
Дата добавления - 12.08.2011 в 21:18
Serge_007 Дата: Пятница, 12.08.2011, 21:21 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (MCH)
вариант без промежуточных вычислений

Осталось только в одну ячейку итог вывести smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (MCH)
вариант без промежуточных вычислений

Осталось только в одну ячейку итог вывести smile

Автор - Serge_007
Дата добавления - 12.08.2011 в 21:21
Jhonson Дата: Пятница, 12.08.2011, 21:28 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Огромное спасибо, то что надо.
Очень помогли.
MCH +


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеОгромное спасибо, то что надо.
Очень помогли.
MCH +

Автор - Jhonson
Дата добавления - 12.08.2011 в 21:28
MCH Дата: Пятница, 12.08.2011, 22:17 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (Serge_007)
Осталось только в одну ячейку итог вывести

еще один вариант в желтых ячейках с проверкой на ошибку, включая сводный итог
К сообщению приложен файл: 5595662.xls (31.5 Kb)
 
Ответить
Сообщение
Quote (Serge_007)
Осталось только в одну ячейку итог вывести

еще один вариант в желтых ячейках с проверкой на ошибку, включая сводный итог

Автор - MCH
Дата добавления - 12.08.2011 в 22:17
Serge_007 Дата: Пятница, 12.08.2011, 22:51 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (MCH)
еще один вариант в желтых ячейках с проверкой на ошибку, включая сводный итог

TRIM - лишнее, но я не это имел ввиду wink
Без доп. ячеек, в одну, сразу smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (MCH)
еще один вариант в желтых ячейках с проверкой на ошибку, включая сводный итог

TRIM - лишнее, но я не это имел ввиду wink
Без доп. ячеек, в одну, сразу smile

Автор - Serge_007
Дата добавления - 12.08.2011 в 22:51
KuklP Дата: Суббота, 13.08.2011, 07:07 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Мож все же так проще?
Code
Public Function SumNum(r As Range) As String
     Dim a, i&, j&, aa(), tmp&
     a = r.Value: j = 1
     ReDim aa(1 To UBound(a, 2))
     For i = 1 To UBound(a, 2)
         If a(1, i) > 0 Then: tmp = tmp + a(1, i): Else: _
         If tmp > 0 Then aa(j) = tmp: tmp = 0: j = j + 1
     Next: If tmp > 0 Then aa(j) = tmp
     SumNum = Trim(Join(aa, " "))
End Function
К сообщению приложен файл: 1868822.xls (39.5 Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 13.08.2011, 07:12
 
Ответить
СообщениеМож все же так проще?
Code
Public Function SumNum(r As Range) As String
     Dim a, i&, j&, aa(), tmp&
     a = r.Value: j = 1
     ReDim aa(1 To UBound(a, 2))
     For i = 1 To UBound(a, 2)
         If a(1, i) > 0 Then: tmp = tmp + a(1, i): Else: _
         If tmp > 0 Then aa(j) = tmp: tmp = 0: j = j + 1
     Next: If tmp > 0 Then aa(j) = tmp
     SumNum = Trim(Join(aa, " "))
End Function

Автор - KuklP
Дата добавления - 13.08.2011 в 07:07
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!