Страницы: 1
RSS
Подсчитать сумму строк при наличии объединенных ячеек
 
В столбце B необходимо подсчитать сумму строк А. Проблема в том, что в столбце B есть объединенные ячейки, к которым относятся несколько значений. Сделал начало для наглядности как должно выглядеть.
 
Решение с доп. столбцом. Основная формула такая:
=ЕСЛИ(И(B3="";B4<>"");СУММ(СМЕЩ(A3;;;ПОИСКПОЗ(9^9;$B$3:B3;1)-СУММ(СТРОКА())+1));ЕСЛИ(И(B3<>"";B4<>"");B3;""))
Формула массива.
Изменено: Bema - 25.04.2018 11:35:30
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Макросом
Код
Sub iSummaMergeCells()
Dim i As Long
Dim iLastRow As Long
Dim n As Integer
'выключаем некоторые параметры для увеличения скорости обработки файла
    With Application
      .ScreenUpdating = False             'отключение обновление экрана
      .Calculation = xlCalculationManual  'отключение пересчёт формул вручную
      .EnableEvents = False               'отключение событий
      .DisplayAlerts = False              'отключение предупреждающих сообщений
    End With
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 3 To iLastRow
    If Cells(i, "B").MergeCells Then
      n = Cells(i, "B").MergeArea.Count
      Cells(i, "B") = WorksheetFunction.Sum(Range(Cells(i, "A"), Cells(i + n - 1, "A")))
      i = i + n - 1
    Else
      Cells(i, "B") = Cells(i, "A")
    End If
  Next
    With Application
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
      .DisplayAlerts = True
    End With
End Sub
 
Функция пользователя
Код
Function SM(iRange As Range) As Single
SM = WorksheetFunction.Sum(iRange.Resize(iRange.Offset(, 1).MergeArea.Count))
End Function
Алексей М.
 
Для практики не применимо наверно,, но работает. Массивная, осталось только объединить нужные.
=SUM(A3:INDEX(A:A;ROW()-1+MATCH(1=1;NOT(ISBLANK(B4:B100));0)))
Часть сделал, остальное лень :-)
Изменено: БМВ - 25.04.2018 20:21:26
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Часть сделал, остальное лень :-)
Сказал БМВ, и лениво зевнул ;)
Вот что мне не понятно, почему формула в столбце В, часть из которой ссылается на столбец В, не вызывает циклическую ссылку. Поясните пожалуйста.  
Изменено: Bema - 25.04.2018 20:19:05
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
Bema написал:
циклопическую ссылку
не вызывает по тому что смотрит чуть ниже, формула в B3 смотрит что там от B4 и далее, соответвенно никакого зацикливания
По вопросам из тем форума, личку не читаю.
 
БМВ, не встречал такого решения. Круто 8) . Утащу в заначку.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
Bema написал:
не встречал такого решения
Сам не встречал :-) дарю, это был экспромт :-)
По вопросам из тем форума, личку не читаю.
 
Спасибо всем за отзывчивость. Воспользовался макросом пользователя "Kuzmich"
Страницы: 1
Наверх