При работе с базами данных кроме вычислений, связанных с получением итоговых данных, часто возникает необходимость подведения промежуточных итогов (например, при формировании отчетов). Для реализации этой задачи используется команда Итоги… в меню Данные (метод Subtotal объекта Range). Эта команда позволяет кроме общего итога, охватывающего все данные, находящиеся в таблице, подвести и промежуточные итоги для отдельных групп записей. Промежуточные итоги автоматически включаются в список (базу) данных, основываясь на изменениях в определенных полях данных. До вызова метода данные должны быть структурированы и должным образом отсортированы.
Рассмотрим пример. В базе данных (таблице Excel) содержится информация о продажах (рис. 26).
Требуется получить отчет, который бы включал общее количество проданных товаров и сумму, на которую эти товары были проданы. Причем итоги должны быть подведены как для всех продавцов, так и для каждого продавца отдельно.
Для решения этой задачи необходимо упорядочить записи в таблице по столбцу, значения которого определяют принадлежность к группе (в данном случае – по столбцу «Продавец»). Затем выполняется команда Итоги… меню Данные. В диалоговом окне этой команды в поле «При каждом изменении в» указывается столбец, по которому группируются данные (данные должны быть отсортированы именно по этому столбцу); операция, которая должна выполняться при подведении итогов (в данном случае – суммирование); определяются столбцы, по которым подводятся итоги (в нашем примере – столбцы «Кол-во» и «Сумма»), и определяется способ расположания итоговых данных (в данном примере итоговые данные располагаются на одной странице, внизу, т.е. под исходными данными).
Для исполнения команды в программе на VBA следует переместить рамку выделения в базу и выполнить оператор
Selection.Subtotal _
GroupBy:=1, Function:=xlSum, _
TotalList:=Array(4, 5), Replace:=True, _
PageBreaks:=False, SummaryBelowData:=True
В результате выполнения команды данные группируются и таблица принимает вид, показанный на рис. 27.
Итоги могут быть также подведены и с помощью сводных таблиц, которые рассматривались выше.