Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Порядок выполнения курсовой работы Exce-new2012...doc
Скачиваний:
1
Добавлен:
18.08.2019
Размер:
3.75 Mб
Скачать

П ромежуточные итоги

После выполнения фильтрации, как правило, необходимо получить итоговые значения, например, общее количество товара и сумму. Для этого выделяем первую пустую ячейку в нужном столбце (например, для суммирования количества - F51, а для сумм - G51) и нажимаем на значок автосуммы (на ленте Главная/Редактирование). В указанных ячейках появляются функции =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;F11:F50), =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;G11:G50).

Вычисляемые значения меняются в зависимости от выбранного критерия. Когда все фильтры сняты, в этих ячейках отображается общая сумма по выбранным полям.

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ возвращает промежуточный итог в список или базу данных. Синтаксис: ПРОМЕЖУТОЧНЫЕ.ИТОГИ(номер_функции;ссылка1;ссылка2;...)

Номер_функции — число от 1 до 11 (с включением скрытых значений) или от 101 до 111 (с исключением скрытых значений), которое указывает, какую функцию использовать при вычислении итогов внутри списка.

Номер_функции (с включением скрытых значений)

Номер_функции (с исключением скрытых значений)

Функция

1

101

СРЗНАЧ

2

102

СЧЁТ

3

103

СЧЁТЗ

4

104

МАКС

5

105

МИН

6

106

ПРОИЗВЕД

7

107

СТАНДОТКЛОН

8

108

СТАНДОТКЛОНП

9

109

СУММ

10

110

ДИСП

11

111

ДИСПР

Ссылка1; cсылка2 — от 1 до 254 интервалов или ссылок, для которых подводятся промежуточные итоги.

Отмена фильтрации

Для отмены фильтрации выполняются следующие действия:

  1. Установить курсор в произвольную ячейку рабочего листа, например I40. Выбрать команду Сервис/Макрос/Начать запись (Разработчик/Записать макрос). Ввести имя макроса - фильтр_отмена

  2. Выделить ячейки A2:H3 и нажать клавишу Delete.

  3. Установить курсор в ячейку A1, затем в ячейку A10 и выполнить команду Данные/Фильтр/Расширенный фильтр. В появившемся окне ввести два диапазона данных: исходный диапазон – ячейки A10:G40 (вся исходная таблица) и диапазон условий – ячейки А1:H2 (в MS Office 2007 вместо указанной последовательности действий установить курсор в ячейку А10 и выполнить команду Данные/Сортировка и фильтр/Очистить).

  4. Нажать ОК. В результате все скрытые данные отобразятся в таблице

  5. Выбрать команду Сервис/Макрос/Остановить запись

Модулю, в котором записаны все программы для работы с листом «расширенный фильтр» задаем имя «№3_расширенный_фильтр».

Во все макросы, кроме макроса «фильтр_отмена», для отмены действия предыдущей фильтрации данных добавляем после названия строку

Call фильтр_отмена

Полный текст полученного модуля:

Sub фильтр_наименование()

Call фильтр_отмена

Range("E2").Select

ActiveCell.FormulaR1C1 = InputBox("введите наименование фрукта")

Range("A10:G40").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Range("A1:H2"), Unique:=False

Range("A1").Select

End Sub

Sub фильтр_фио()

Call фильтр_отмена

Range("D2").Select

ActiveCell.FormulaR1C1 = InputBox("введите ФИО первого продавца")

Range("D3").Select

ActiveCell.FormulaR1C1 = InputBox("введите ФИО второго продавца")

Range("A10:G40").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Range("A1:H3"), Unique:=False

Range("A1").Select

End Sub

Sub фильтр_колво()

Call фильтр_отмена

Range("F2").Select

ActiveCell.FormulaR1C1 = InputBox("введите знак >= и наименьшее значение количества")

Range("G2").Select

ActiveCell.FormulaR1C1 = InputBox("введите знак <= и наибольшее значение количества")

Range("A10:G40").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Range("A1:H2"), Unique:=False

Range("A1").Select

End Sub

Sub фильтр_дата_фио()

Call фильтр_отмена

Range("C2").Select

ActiveCell.FormulaR1C1 = InputBox("введите дату продажи")

Range("D2").Select

ActiveCell.FormulaR1C1 = InputBox("введите ФИО продавца")

Range("A10:G40").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Range("A1:H2"), Unique:=False

Range("A1").Select

End Sub

Sub фильтр_отмена()

Range("A2:H3").Select

Selection.ClearContents

Range("A1").Select

Range("A10:G40").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

Range("A1:H2"), Unique:=False

End Sub

В MS Office 2007 этот макрос выглядит так:

Sub фильтр_отмена()

' фильтр_отмена Макрос

Range("A2:H3").Select

Selection.ClearContents

Range("A10").Select

ActiveSheet.ShowAllData

End Sub