Рассмотрим игрушечный набор данных в форме
A B
ID values
1 5
1 4
1 3
2 2
2 1
2 2
3 8
3 9
3 7
Итак, есть три группы с идентификаторами: 1,2,3. Мне интересно вычислить среднее значение в каждой группе и получить такой результат.
A B
ID averaged
1 6
2 2.5
3 12
Так что количество групп (уникальный идентификатор) будет большим, а количество данных в каждой группе также большим. Есть ли эффективный способ вычисления? Спасибо
решение1
Как это работает:
Введите эту формулу массива (CSE) в ячейку
J11
:{=IFERROR(INDEX($H$11:$H$24, MATCH(0,COUNTIF($J$10:J10, $H$11:$H$24), 0)),"")}
Примечание.Закончите формулу сCtrl+Shift+Enterи залейте.
Формула в ячейке
K11
:=IFERROR(AVERAGEIF(H$11:H$24,$J11,I$11:I$24),"")
При необходимости измените ссылки на ячейки в формуле.
решение2
Использование сводной таблицы:
Введите идентификатор в строку, а значения в значение и измените на среднее:
Использование динамических формул массива (в настоящее время доступно только для участников программы Office 365 Insiders)
В D2 поместите:
=UNIQUE(A2:A10)
И в E2:
=AVERAGEIFS(B:B,A:A,D2#)
Excel автоматически выполнит сброс значений: