Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

624

.pdf
Скачиваний:
0
Добавлен:
06.12.2022
Размер:
2.74 Mб
Скачать

За дан ие для са м ос т оя т ел ь но й работы. По данным таблицы «Сведения о состоянии пути ПЧ» создайте под автозапись круговую и кольцевую диаграммы и поместите их соответсвенно на листы с именами «круговая» и «кольцевая».

Контрольныевопросы

1.Понятие диаграммы, порядок ее построения.

2.Основные элементы диаграммы.

3.Какие значения откладываются по горизонтальной оси большинства диаграмм Excel — рядов данных или категорий?

4.Какой текст отображается по умолчанию в качестве названия диаграммы?

5.Способы представления диаграммы.

6.Сколько отдельных диаграмм может быть расположено на листе диаграмм?

7.Вчем состоит удобствоиспользования макроса, строящего диаграмму?

8.В каких случаях для построения диаграммы рациональнее использовать макрос?

9.Каким методом можно добавить лист диаграммы в рабочую книгу?

10.Каким методом в макросе задаются исходные данные для построения диаграммы?

11.Каким свойством определяется в макросе тип диаграммы?

12.Какими свойствами определяется внешний вид и содержание названия диаграммы?

13.Каким свойством задается заголовок оси?

14.Для чего используется объект Font?

15.Каким свойством определяется имя внедренной диаграммы?

16.Каким свойством определяется номер внедренной диаграммы?

2.4. Фильтры. Получение макросов автозаписью для фильтрации табличныхданных

Отфильтровать список — значит скрыть все строки за исключением тех, которые удовлетворяют заданным условиям отбора. Excel предоставляет две команды: Автофильтр, для простыхусловий, иРасширенныйфильтр, для болеесложных

5 1

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

Автофильтр используется следующим образом:

1.Поместить курсор в любую ячейку таблицы данных.

2.Выбрать команду Данные Фильтр Автофильтр. В

результате рядом с каждым названием поля появится кнопка

снаправленной вниз стрелкой (кнопка автофильтра).

3.Щелкнуть по стрелке рядом с названием поля, по значениям которого нужно отфильтровать данные. Excel отобразит список доступных фильтров:

(Все): отменяет действие предыдущего фильтра и отображает все записи;

(Первые 10…): выбирает десять наиболее часто встречаемых значений этого поля;

(Условие…): отбор значений по специально заданному условию;

конкретное значение: фильтр по этому значению;

(Пустые): определяет расположение строк, в которых столбец не имеет данных;

(Непустые): позволяет скрыть строки с пустыми ячейками в столбце.

4.Отменить действие автофильтра и отобразить все записи можно, повторно использовав команду Данные Фильтр Автофильтр.

При необходимости использовать для задания условия отбора только один столбец можно вывести кнопку автофильтра лишь для него одного. Для этого выделить ячейку заголовка столбца, который нужно использовать, нажать одновременно клавиши Shift, Ctrl и и выбрать команду Автофильтр.

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

Для задания более сложных условий отбора используется пользовательский автофильтр. С его помощью можно задать условия отбора с применением любых операторов сравнения. Для этого нужно раскрыть список автоотбора интересующего столбца ивыбрать в нем (Условие…).Появится окнодиалога,

5 2

подобное тому, что показано на рис. 23. В окне диалога

Пользовательский автофильтр можно ввести одно или два условия отбора и выбрать любой из операторов сравнения

Excel.

Рис. 23. Вид диалогового окна «Пользовательский автофильтр»

Маленькие поля с раскрывающимся списком в левой части этого окна диалога содержат операторы сравнения (=, >, < и т.д.), а большие поля с раскрывающимся списком позволяют выбрать значения, которые должны быть использованы в условиях отбора.

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

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

Excel отображает номера отфильтрованных строк синим цветом и выводит в строке состояния количество отобранных

5 3

строк и общее число записей в списке, напоминая тем самым, что на экран выведен отфильтрованный список.

Для применения фильтра в программе используется метод

AutoFilter.

SomeRange.AutoFilter(Field,Criteria1,Operator,Criteria2, VisibleDropDown)

SomeRange. Объект Range, идентифицирующий диапазон, к которому должен применяться фильтр. Объект может ссылаться на весь диапазон или на одну его ячейку (в таком случае Excel автоматически выделяет весь диапазон, содержащий данные).

Field. Необязательное числовое значение, указывающее поле, по которому выполняется фильтрация. Значение являетсяиндексом поля;крайнему левому полю соответствует индекс1.

Criteria1. Необязательный аргумент, определяющий критерий выполнения фильтрации.Если онопущен, будут отобраны все записи.

Operator. Необязательная константа, определяющая способ интерпретации критерия, заданного аргументом Criteria1 (и в некоторых случаях критерия, заданного аргументом

Criteria2).

Criteria2. Необязательный аргумент, определяющий второй критерий выполнения фильтрации.

VisibleDropDown. Необязательное значение True/False. Если это значение равно True (по умолчанию), Excel отображает на рабочем листе для полей, по которым производится фильтрация, кнопкисострелками, позволяющимипользователю вручную работать с фильтром. Если это значение равно False, кнопки не отображаются.

Например, следующий код определяет фильтр, после применения которого отбираются записи всех людей с фамилиями “Ковтун» и “Крылов»:

Selection.AutoFilter Fild:=24, Criteria1:= “Ковтун”, Criteria2:= “Крылов”, Operator:=xlOr

Команда Расширенный фильтр, в отличие от команды

Автофильтр, позволяет:

задатьусловия, соединенныелогическимоператоромИЛИ, для нескольких столбцов;

5 4

задать три или больше условия для конкретного столбца

сиспользованием, по крайней мере одного логического оператора ИЛИ;

задать вычисляемые условия.

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

ис помощью команды Автофильтр, но при этом копирование

ивставку придется выполнять самостоятельно, а команда

Расширенный фильтр делает это сама.

Команда Расширенный фильтр, в отличие от Автофильтр,

требует задания условий отбора строк в отдельном диапазоне рабочеголиста.Поскольку при фильтрациискрываются целые строки, диапазон условий лучше поместить выше или ниже списка. Если предполагается, что список со временем будет расширяться, то диапазон условий следует разместить выше списка.

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

Вдиапазон условий можно вводить любое количество условий.Excel интерпретирует ихвсоответствиисо следующими правилами:

• условия на одной строке считаются соединенными логическим оператором И;

• условия на разныхстроках считаются соединеннымилогическим оператором ИЛИ.

Цели работы:

• изучить способы и порядок фильтрации данных;

• закрепить навыки получения макросов автозаписью на примере использования различных видов фильтров.

5 5

Задание 1. Получите таблицу «Сведения о состоянии пути ПЧ» на листе Фильтр1 и отфильтруйте записи по условию отбора «Число негодных шпал превышает среднее значение».

Данныебудемфильтровать,используярасширенныйфильтр. По ря д ок р або т ы

1.Создайте новый лист Фильтр1.

2.Нажмите командную кнопку «Расчетная таблица», расположеннуюналисте«Отчеты».ВрезультатеналистеРасчетная таблица появится таблица «Сведения о состоянии пути ПЧ».

3.Включите автозапись (Сервис Макрос Начать запись), задайте макросу имя «ФильтрСреднее».

4.Выделите таблицу и ее название (блок A1 : N15), скопируйте выделенный блок в буфер обмена любым известным вам способом.

5.Перейдите на лист Фильтр1, активизируйте клетку A1, вставьте из буфера обмена выделенный блок. Появится такая же таблица, как и на листе «Расчетная таблица».

6.Создайте диапазон условий в блоке A17 : A18:

6.1.В ячейку A17 скопируйте содержимое ячейки K2 (“Число негодных шпал”).

6.2.В ячейку A18 запишите условие отбора: =“>” & K15 (K15 — формула среднего).

7. Выберите команду Данные Фильтр Расширенный фильтр, введите информацию в окне диалога «Расширенный

Рис. 24. Вид диалогового окна «Расширенный фильтр»

фильтр», нажмите кнопку ОК (рис. 24).

Результат представлен на рис. 25.

8.В ячейку D18 введите текст «Число негодныхшпалпревышает среднее значение» и назначьтеемуполужирный шрифт.

9.Остановите автозапись макроса.

5 6

Рис. 25. Результат фильтрации по среднему значению

Вы получите следующий текст:

Sub ФильтрСреднее() Range(“A1:N15”).Select Selection.Copy Sheets(“Фильтр1”).Select Range(“A1”).Select ActiveSheet.Paste Range(“K2”).Select Application.CutCopyMode = False Selection.Copy Range(“A17”).Select ActiveSheet.Paste Range(“A18”).Select Application.CutCopyMode = False

ActiveCell.FormulaR1C1 = “=””>”” & R[-3]C[10]” Range(“A2:N13”).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=_

Range(“A17:A18”), CopyToRange:=Range(“A20:N20”), Unique:=False Range(“D18”).Select

Selection.Font.Bold = True

ActiveCell.FormulaR1C1 = “Число негодных шпал превышает среднее”

End Sub

5 7

10. Внесите изменения в текст полученного макроса, позволяющие фильтровать таблицу с произвольным количеством строк. Изменения обозначены полужирным курсивом. Пояснения к командам сделаны вручную. Макрос будет иметь вид:

Sub ФильтрСреднее()

 

 

Расчет

‘Обращение к макросу, формирующему расчетную таблицу

Sheets(“Фильтр1”).Cells.Clear Очистка ячеек листа “Фильтр1”

Range(“A1:N” & n + 2).Select

Выделение блока для копирования

Selection.Copy

 

Копирование в буфер обмена

Sheets(“Фильтр1”).Select

Активизация листа “Фильтр1”

Range(“A1”).Select

 

Активизация ячейки A1

ActiveSheet.Paste

 

Вставка из буфера обмена

Range(“K2”).Select

 

 

Selection.Copy

Копирование названия графы в буфер обмена

Range(“A” & n + 4).Select ‘Выделение первой ячейки диапазона условий Диапазон условий будетвсегда расположен на 1строку ниже исходной

таблицы

 

 

 

ActiveSheet.Paste

Вставка названия графы из буфера обмена

Range(“A” & n + 5).Select

Выделение ячейки для условия отбора

Application.CutCopyMode = False

 

ActiveCell.FormulaR1C1 = “=””>”” & R[-3]C[10

Условие отбора

Range(“A2:N” & n).AdvancedFilter Action:=xlFilterCopy, CriteriaRange _ := Range(“A” & n + 4 & “:A” & n + 5), CopyToRange:=Range(“A” & n + 7 & _

“:N” & n + 7), Unique:=False

Формирование параметров расширен-

ного фильтра

 

Range(“D” & n+5).Select

Текст условия фильтрации всегда бу-

дет в одной строке с условием отбора

Selection.Font.Bold = True

Назначение полужирного шрифта

ActiveCell.FormulaR1C1=“Число негодных шпал превышает среднее значение”

End Sub

11. Поместите отредактированный макрос в модуль «Отчеты», гденаходятся всеранееполученныемакросы, ипроверьте его работу. Для этого на листе Отчеты создайте командную кнопку «Фильтр по среднему», свяжите с макросом «ФильтрСреднее» и нажмите ее для выполнения макроса. На экране вы увидите таблицу, приведенную на рис. 25.

Задание 2. Получите таблицу «Сведения о состоянии пути ПЧ» на листе Фильтр2 и отфильтруйте записи по условию отбора «Число дефектных рельсов попадает в диапазон от 10

до 20».

Данные будем фильтровать, используя автофильтр.

5 8

По ря д ок р або т ы

1.Создайте новый лист Фильтр2.

2.Нажмите командную кнопку «Расчетная таблица», расположенную на листе Отчеты. В результате на листе Расчет-

ная таблицапоявится таблицаСведенияосостояниипутиПЧ.

3.Включите автозапись (Сервис Макрос Начать запись), задайте макросу имя «ФильтрДиапазон».

4.Выделите таблицу и ее название (блок A1 : N15), скопируйте выделенный блок в буфер обмена любым известным вам способом.

5.Перейдите на лист Фильтр2, активизируйте ячейку A1, вставьте из буфера обмена выделенный блок. Появится такая же таблица, как и на листе Расчетная таблица.

6.Выделите графу «Число дефектных рельсов в км» вместе

сзаголовком (блок E2 : E13), наберите команду Данные Фильтр Автофильтр. Справа в заголовке столбца появится кнопка со стрелкой, нажмите ее и в появившемся списке выберитестроку (Условие…).ВдиалоговомокнеПользовательский автофильтр наберите условие, как показано на рис. 26.

7.Нажмите кнопку ОК. На экран будет выведена таблица

сотфильтрованными строками (рис. 27).

8.Активизируйте ячейку A20, задайте полужирный шрифт и введите текст «Число дефектных рельсов попадает в диапазон от 10 до 20».

9.Остановите автозапись.

Рис. 26. Вид диалогового окна «Пользовательский автофильтр»

5 9

Рис. 27. Результат фильтрации на принадлежность диапазону

Вы получите следующий текст:

Sub ФильтрДиапазон() Range(“E2:E13”).Select Selection.AutoFilter

Selection.AutoFilter Field:=1, Criteria1:=”>=10", Operator:=xlAnd, _ Criteria2:=”<=20"

Range(“A20”).Select Selection.Font.Bold = True ActiveCell.FormulaR1C1 = _

“Число дефектных рельсов попадает в диапазон от 10 до 20” Range(“A19”).Select

End Sub

10. Внесите изменения в текст полученного макроса, позволяющие фильтровать таблицу с произвольным количеством строк. Макрос будет иметь вид:

Sub ФильтрДиапазон()

 

Расчет

Обращение к макросу, формирующему расчетную таблицу

Sheets(“Фильтр2”).Cells.Clear

Очистка клеток листа Фильтр2

Range(“A1:N” & n + 2).Select

Выделение блока для копирования

Selection.Copy

Копирование в буфер обмена

6 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]