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

Есть таблица с сгрупированными(структурированными) данными. Групп много .Как посчитать среднее по каждой группе/подгруппе?
Просто использовать функцию: СРЗНАЧ неудобно, т.к. надо стать напротив каждой группы в нужной ячейке и потом указать диапазон данных, по которым это средне посчитать. Если групп много, то это занимает много времени.
В вложении два файла. Исходник и то, что требуется получить на выходе.

Excel 2007.

Спасибо!
Изменено: Alexey - 27.02.2021 15:29:39
 
Код
Sub iAverage()
Dim Rng As Range
  For Each Rng In Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row).SpecialCells(2, 1).Areas
    Rng.Cells(0, 2) = WorksheetFunction.Average(Rng)
    Rng.Cells(0, 2).NumberFormat = "#,##0.00"
  Next
End Sub

Результат в столбце D, чтобы не нарушать структуру
 
Kuzmich, спасибо огромное!!! Выручили)
Вы походу тут главный спец )

а решается ли данная задача с помощью стандартных функций экселя?
 
Решается, но неудобно. Для формул нет четкого определителя окнчания диапазона, кроме пустой ячейки в столбце Цена.
В отдельном столбце формула массива (вводится тремя клавишами):
=ЕСЛИ(И(C3="";C4>0);СРЗНАЧ(C4:ИНДЕКС(C4:$C$27;МИН(ЕСЛИ(C4:$C$27="";СТРОКА(C4:$C$27)))-СТРОКА(C3)));0)
 
Цитата
Alexey написал:  с помощью стандартных функций экселя?
в пределах одного листа - нет, но зато решается еще на этапе выгрузки , отчет в 1c может это .
По вопросам из тем форума, личку не читаю.
 
vikttur, спасибо, буду знать, а то ломал голову, есть ли в формулах этот чёткий определитель окончания диапазона )
 
Цитата
vikttur написал:
Решается, но неудобно.
а на вложении второго уровня не споткнётся?
По вопросам из тем форума, личку не читаю.
 
Нет, считает среднее только для низшего уровня
 
на всякий случай второй вариант,  с тем же дефектом.
=IF(C3="";AVERAGE(IF((ROW()<>ROW(C3:C$26))*(ROW()=LOOKUP(ROW(C3:C$26);IF(C3:C$26="";ROW(C3:C$26))));C3:$C$26));C3)
Изменено: БМВ - 27.02.2021 17:50:26
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал: решается еще на этапе выгрузки, отчет в 1c может это .
А как это сделать в 1С 8.3. "Печать прайс-листа".
Сейчас мне надо уйти на пару часов...  
 
Цитата
Alexey написал: А как это сделать в 1С 8.3. "Печать прайс-листа". Сейчас мне надо уйти на пару часов...
Нужна выгрузка из 1С, иначе не отпустят на пару часов! :)

Цитата
БМВ написал: вариант... с тем же дефектом
Э... Не умеешь продавать. Преимущество данной формулы - ИИ, встроенный в формулу, умеет оперелять уровни группировки и результат показывает только для одного, низшего уровня (чем исключает путаницу в данных)! :)
 
Цитата
vikttur написал:
умеет оперелять уровни группировки и результат показывает только для одного, низшего уровня!
ну это как споткнуться перед дверью и открыть её лбом, если она отрывается не на себя  :D
По вопросам из тем форума, личку не читаю.
 
Цитата
vikttur написал:
Нужна выгрузка из 1С, иначе не отпустят на пару часов!
Это понадобится на Вторник))) Хочу максимально автоматизировать)))
 
ВСЕМ СПАСИБО!!!!! Четко и по делу. Помогли решить проблему, буду знать.)  :)

P.S. А то на ином сайте 151 просмотрт и 0 ответов/советов!!!!!!!!
Изменено: Alexey - 28.02.2021 02:00:49
Страницы: 1
Наверх