Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка для срс по Excel.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
488.45 Кб
Скачать

3. Сводные диаграммы

Для наиболее эффективного анализа данных Microsoft Excel 2003 предоставляет такое средство, как сводные диаграммы. Сводные диаграммы можно строить на основе уже существующих сводных таблиц, а также на основе исходных таблиц. Во втором случае сводная таблица строится параллельно с диаграммой. При создании поля страницы появляется возможность визуально оценивать величины данных, перелистывая страницы. После того как диаграмма уже построена, ее можно перестраивать, перетаскивая поля, аналогично тому, как это делается в сводных таблицах. Можно задавать различные виды диаграмм.

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

Сводная диаграмма связана со сводной таблицей. Она будет автоматически изменяться при обновлении сводной таблицы. Если изменить структуру сводной таблицы, то изменится и структура диаграммы, и наоборот.

Чтобы построить сводную диаграмму на основе списка или таблицы:

1. Раскройте рабочий лист с исходной таблицей и выберите команду Данные/Сводная таблица.

2. В первом диалоговом окне Мастер сводных, таблиц и диаграмм — шаг 1 из 3 установите переключатель сводная диаграмма (со сводной таблицей).

3. Нажмите кнопку Далее.

4. На следующем шаге укажите диапазон данных, и далее все действия такие же, как и для построения сводной таблицы.

В результате этих действий откроется рабочий лист с разметкой для диаграммы.

Перетащите поля с панели инструментов Сводные таблицы в подходящие области сводной диаграммы. Теперь диаграмма построена. Причем вместе со сводной диаграммой Мастер сводных таблиц и диаграмм построил сводную таблицу и разместил ее на отдельном рабочем листе. Структура этой сводной таблицы полностью соответствует структуре сводной диаграммы. Если, например, в диаграмме поменять какие-либо поля местами, то они поменяются местами и в сводной таблице.

Вопросы и задания для самоконтроля

  1. Назовите элементы сводных таблиц.

  2. Для каких целей прменяются сводные таблицы?

  3. Назовите порядок действий, которые нужно выполнить для создания сводной таблицы.

  4. Назовите порядок действий, которые нужно выполнить для создания сводной диаграммы.

  5. Какие типы источников данных для сводной таблицы Вы знаете?

  6. Какие варианты размещения готовой сводной таблицы Вам известны?

  7. Можно ли изменить структуру сводной таблицы, изменив структуру диаграммы?

СРС № 25

Макрорекордер Теоретический материал

1. Изменение макроса.

Рассмотрим пример макроса написанного в редакторе VBA, а затем внесем изменения в написанный макрос.

Sub макрос()

' макрос Макрос

' Макрос записан 21.03.2006 (User)

ActiveSheet.Unprotect

Range("E7").Select

Selection.EntireRow.Insert

Range("F6").Select

Selection.Copy

Range("F7").Select

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Любая процедура начинается с ключевого слова Sub (от subroutine — процедура), а заканчивается словами End Sub. В первой строке макроса указан заголовок процедуры.

Весь текст в строке, расположенный справа от знака апострофа ('), является комментарием и игнорируется при выполнении программы.

Оператор ActiveSheet.Unprotect снимает защиту с активного рабочего листа. В данном случае ActiveSheet представляет собой объект типа Worksheet ("рабочий лист"), а Unprotect — метод, выполняющий снятие защиты с объекта. Точка между именем объекта и названием метода означает, что метод "принадлежит" данному объекту.

В следующей строке для объекта Range("E7"), представляющего диапазон, состоящий из единственной ячейки Е7, используется метод Select, т. е. в результате действия данного оператора ячейка Е7 станет выделенной (и активной).

Далее, оператор Selection.EntireRow.Insert по отношению к текущему выделенному объекту (т. е. ячейке E7) производит вставку (целой) строки.

В следующих четырех строках опять выделяется ячейка, на сей раз F6 (оператор Range("F6").Select), ее содержимое копируется в буфер обмена (selection.Сору) и затем вставляется в ячейку F7 (операторы Range ("F7").Select и ActiveSheet.Paste).

Следующий оператор; Application.CutCopyMode = False отменяет режим копирования, а именно свойству CutCopyMode объекта Application присваивает значе­ние False ("ложь").

Наконец, последний из выполняемых операторов нашего макроса ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True устанавливает защиту активного рабочего листа, хотя и без пароля (с пустым паролем). Перечисляемые параметры указывают, что защита рабочего листа устанавливается в отношении объектов (DrawingObjects), содержимого (contents) и сценариев (Scenarios).

Редактирование макроса начнем с последнего оператора. У метода Protect есть параметр Password ("пароль"), и задать значение этого параметра (равное 1) можно так: ActiveSheet.Protect Password := "1". Значение пароля нужно заключать в кавычки, поскольку пароль всегда считается текстовым (строковым) выражением, а в соответствии с правилами VBA такие выражения должны заключаться в кавычки. Аналогичным образом можно задать параметр и для метода unprotect (тогда пароль не надо будет вводить вручную каждый раз в начале работы макроса) ActiveSheet.Unprotect("1")

Для уверенности, что данный макрос всегда будет применяться к нужному рабочему листу ("Лист1") и рабочей книге ("Ex35_l.xls"), вставим в самое начало макроса оператор, активизирующий указанный лист указанной рабочей книги Workbooks("Ex35_l.xls").Worksheets("Лист!").Activate.

В начало макроса вставим операторы, определяющие адрес строки с итоговыми суммами, и затем в качестве параметров оператора Range постараемся задать адреса, отсчитанные относительно найденного.

Приведем сразу окончательный текст и дадим к нему некоторые пояснения:

Sub макрос()

Workbooks("Ex35_l.xls").Worksheets("Лист1").Activate

For i = 1 То 10000

If Mid(Range("E" & Trim(Str(i))).Formula, 1, 1) = "=" Then

Exit For

End If

Next

ActiveSheet.Unprotect("l")

Range("E" & Trim(Str(i - 1))).Select

Selection.EntireRow.Insert

Range("F" & Trim(Str(i - 2))) .Select

Selection.Copy

Range("F" & Trim(Str(i - 1))).Select

ActiveSheet.Paste

Application.CutCopyMode = False

ActiveSheet.Protect Password := "1", DrawingОbjects:=True, Contents:=True, Scenarios:=True

End Sub

Занимающий строки с 3-й по 7-ю приведенной выше подпрограммы цикл позволяет определить адрес ячейки столбца Е с итоговой суммой (поскольку в этом столбце расположена только одна формула, то ищется просто ячейка, содержимое которой начинается со знака "=")

Основную смысловую нагрузку, как нетрудно заметить, несет вторая строка этого цикла. Здесь конструкция Trim(Str(i)) преобразовывает число i в соответствующую текстовую строку (точнее, это делает функция str(i), а функция Trim лишь убирает лишний пробел) — например, при i=i будем иметь "1", при i=2 получим "2" и т. д. Таким образом, в качестве диапазона мы будем получать последовательно El, E2 и т. д. Далее, свойство Formula объекта Range показывает нам содержимое (в данном случае — одной ячейки), причем если в ячейке находится формула, она показывается в виде текстовой строки. Первый символ этой строки мы и сравниваем с "=" и в случае совпадения прерываем перебор (выходим из цикла по оператору Exit For) — при этом текущее значение переменной i как раз и будет равно номеру строки, в которой находится формула итоговой суммы.