Страницы: 1
RSS
Как посчитать итоговую сумму по клиенту одной формулой на весь лист
 
Добрый вечер.

Каждый день есть огромный файл, где нужно считать итоги по клиенту (ФИО уникально)  - формат как в файле. Может быть больше столбцов только.

Считаю итоги по каждому клиенту вручную формулой =сумм. Есть ли формула которая поможет разом заполнить по каждому клиенту итоги.

Подскажите, пожалуйста, как можно упростить. Пример во вложении.
 
Здравствуйте.
Вариант в файле и посмотрите здесь
 
Добрый вечер.

Спасибо Вам большое.
 
Макросом
Код
Sub iSumma()
Dim iLastRow As Long
Dim rng As Range
Dim Total As Double
  iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
  For Each rng In Range("B3:B" & iLastRow).SpecialCells(2, 1).Areas
    rng.Cells(0, 3) = WorksheetFunction.Sum(rng.Offset(, 2))
    Total = Total + rng.Cells(0, 3)
    rng.Cells(0, 3).Font.Bold = True
    rng.Cells(0, 3).Font.Size = 16
  Next
  Cells(iLastRow + 2, "C") = "Итого:"
  Cells(iLastRow + 2, "D") = Total
  Cells(iLastRow + 2, "D").NumberFormat = "#,##0.00"
  Cells(iLastRow + 2, "D").Font.Bold = True
  Cells(iLastRow + 2, "D").Font.Size = 16
End Sub
 
Спасибо. А как сделать в макросе, чтобы он на весь лист считал? тут считает только по количеству строк? а их бывает разное количество
Изменено: Kumar - 30.12.2019 23:33:49
 
Добрый зимний вечер !
Посмотрите, еще вариант обычной сводной, он как то более удобнее.
 
Kumar, а без цитирования никак? Вот зачем Вы процитировали код?
Запомните: кнопка цитирования не для ответа!
 
Цитата
тут считает только по количеству строк? а их бывает разное количество
Макрос это учитывает путем подсчета последней строки по столбцу В
Код
iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
 
Да, мне учится и учится. Но вот как не кручу макрос ставить на 50 строке итого и считает по 50 строку, а дальше ничего.
Макрос прекрасный, его возьму в работу.
 
Можно просто без итого, просто итог по каждому клиенту и не важно сколько строчек?
 
Цитата
считает по 50 строку, а дальше ничего
Покажите в примере, что не получается
 
До 50 строки идет. Ставит там итог и все. Как убрать итог и чтобы считал весь лист?
 
еще вариант массивной формулой и копипастом
вставить формулу, например, в E2. протянуть, скопировать диапазон с суммами и значениями и вставить в D2 только значения
Код
=ЕСЛИ(A2="";D2;СУММ($D3:ИНДЕКС($D$1:$D$99;ПОИСКПОЗ(1=1;$B3:$B$200="";)+СТРОКА()-1)))  
 
Цитата
До 50 строки идет
Так у вас там ИНН закончились, вот макрос и не считает дальше
Без строки Итого
Код
Sub iSumma()
Dim iLastRow As Long
Dim rng As Range
  iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
  For Each rng In Range("B3:B" & iLastRow).SpecialCells(2, 1).Areas
    rng.Cells(0, 3) = WorksheetFunction.Sum(rng.Offset(, 2))
     rng.Cells(0, 3).Font.Bold = True
    rng.Cells(0, 3).Font.Size = 16
  Next
End Sub
Страницы: 1
Наверх