- •Диаграммы и графики
- •Создание диаграммы
- •Типы диаграмм
- •Исходные данные
- •Параметры диаграммы
- •Элементы диаграмм
- •Редактирование диаграммы
- •Интерактивная диаграмма
- •Прогнозирование с использованием линий тренда
- •Автоматизация работы в Excel при помощи макросов
- •Visual Basic for Application
- •Концепция VBA
- •Работа с объектами
- •Объекты Excel.
- •Формы и элементы управления.
- •Интерфейс среды Visual Basic for Application
- •Запуск и отладка программ на VBA
- •Язык Бейсик
- •Отличия Бейсика от Паскаля
- •Идентификаторы, переменные, массивы
- •Операции, выражения, операторы
- •Операторы ветвлений
- •Конструкция If . . . Then
- •Конструкция If . . . Then . . . Else
- •Циклы
- •Конструкция For . . . Next.
- •Конструкция Do...Loop
- •Примеры расчетов на VBA
- •Нахождение минимального элемента массива.
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Литература
4.7.2Нахождение количества элементов массива, удовлетворяющих некоторому условию
Известны результаты экзамена по информатике одной группы студентов. Определить, сколько студентов сдали экзамен на 4 и 5.
Ячейки перебираются, начиная с текущей до пустой. После просмотра всего набора минимальный элемент записывается в ячейке под текущей.
Текст программы:
Sub Primer()
Dim i, p As Integer
Dim n, row, col As Integer n = ActiveCell
row = ActiveCell.row col = ActiveCell.Column p = 0
i = 0
Do While ActiveSheet.Cells(row, col + i) <> ""
If (ActiveSheet.Cells(row, col + i) = 4) Or (ActiveSheet.Cells(row, col + i) = 5) Then p = p + 1
End If i = i + 1 Loop
ActiveSheet.Cells(row + 1, col) = p End Sub
5 Задание к лабораторной работе
Диаграммы и графики
В данном разделе потребуется создать таблицу по данным, соответствующим варианту. На ее основе создать диаграмму на отдельном листе. Используя интерактивную диаграмму, подтянуть маркер последнего значения второго ряда до заданной величины. Для первого ряда добавить линию тренда и сделать прогноз на 1 период вперед. Также потребуется настроить шкалу оси значений и цвет линии тренда (любой кроме черного).
На новом листе создать диаграмму заданного типа из библиотеки диаграмм (организационная диаграмма) на произвольную, выбранную вами, тематику. Число элементов диаграммы (прямоугольников, кругов, ступеней пирамиды и т.д.) должно быть не менее 5. Число уровней в организационной диаграмме должны быть не менее 3. Корневой элемент должен иметь цвет заливки, отличный от остальных.
3.1.1. Создайте таблицу по Объемам продаж 2 товаров по периодам (Поле “Сумма нарастающим итогом” должна вычисляться по формуле).
Горшки |
Лопаты |
Дата |
Цена |
Кол-во |
Сумма |
Дата |
Цена |
Кол-во |
Сумма |
|
|
|
|
нарастающим |
|
|
|
|
нарастающим |
|
|
|
итогом |
|
|
|
|
итогом |
01.01.2004 |
500,00р. |
10 |
5 000,00р. |
01.01.2004 |
200,00р. |
|
30 |
6 000,00р. |
02.01.2004 |
500,00р. |
11 |
10 500,00р. |
02.01.2004 |
200,00р. |
30 |
12 000,00р. |
|
03.01.2004 |
500,00р. |
12 |
16 500,00р. |
03.01.2004 |
200,00р. |
30 |
18 000,00р. |
|
04.01.2004 |
500,00р. |
20 |
26 500,00р. |
04.01.2004 |
200,00р. |
40 |
26 000,00р. |
|
05.01.2004 |
550,00р. |
15 |
34 750,00р. |
05.01.2004 |
200,00р. |
45 |
35 000,00р. |
|
06.01.2004 |
550,00р. |
15 |
43 000,00р. |
06.01.2004 |
200,00р. |
45 |
44 000,00р. |
|
07.01.2004 |
550,00р. |
20 |
54 000,00р. |
07.01.2004 |
200,00р. |
40 |
52 000,00р. |
|
Создайте графики зависимостей поля “Сумма нарастающим итогом” от поля “Дата” по обоим товарам.
Используя интерактивную диаграмму, подберите такое значение поля “Количество” для товара “Лопаты” на 07.01.2004, чтобы общая сумма проданных лопат была равна общей сумме проданных горшков (54 000,00р.).
Используя линию тренда (тренд линейный) сделайте прогноз на 1 период вперед по продаже горшков.
3.1.2. Создайте таблицу вычисления n-го члена и суммы первых n членов для 2 арифметических прогрессий: An и Bn.
n |
An |
Sn |
n |
|
Bn |
S'n |
1 |
9 |
9 |
1 |
|
1 |
1 |
2 |
12 |
21 |
2 |
|
10 |
11 |
3 |
15 |
36 |
3 |
|
19 |
30 |
4 |
18 |
54 |
4 |
|
28 |
58 |
5 |
21 |
75 |
5 |
|
37 |
95 |
|
|
|
|
|
|
|
A1 |
9 |
|
|
B1 |
|
1 |
d |
3 |
|
|
e |
|
9 |
Формулы расчета An , Sn , Bn и S’n: An=A1+d*(n-1)
Sn= (A1 +An)*n/2
Bn=B1+e*(n-1) S’n= (B1 +Bn)*n/2
На основе данной таблицы создайте графики зависимостей Sn от n и S’n от n. Используя интерактивную диаграмму, подберите такое значение e, чтобы при n=5 S’n было равно Sn (S’5 = S5 = 75).
Используя линию тренда (тренд полиномиальный, степень 2) сделайте прогноз на 1 период вперед по ряду Sn.
3.1.3. Создайте таблицу вычисления n-го члена и суммы первых n членов для 2 геометрических прогрессий: An и Bn.
n |
An |
Sn |
n |
Bn |
S'n |
1 |
9 |
9 |
1 |
1 |
1 |
2 |
18 |
27 |
2 |
4 |
5 |
3 |
36 |
63 |
3 |
16 |
21 |
4 |
72 |
135 |
4 |
64 |
85 |
5 |
144 |
279 |
5 |
256 |
341 |
A1 |
9 |
B1 |
1 |
q |
2 |
r |
4 |
Формулы расчета An , Sn , Bn и S’n: |
|
|
|
An=A1*q^(n-1) |
|
|
|
Sn= A1 *(q^n-1)/(q-1) |
|
|
|
Bn=B1*r^(n-1) |
|
|
|
S’n= B1 *(r^n-1)/(r-1) |
|
|
|
На основе данной таблицы создайте графики зависимостей Sn от n и S’n от n. Используя интерактивную диаграмму, подберите такое значение B1, чтобы при n=5 S’n было равно Sn (S’5 = S5).
Используя линию тренда (тренд экспоненциальный) сделайте прогноз на 1 период вперед по ряду Sn.
3.1.4. Создайте таблицу уровня успеваемости по четвертям 2 учеников (Поле “Общий средний балл” вычисляется по формуле).
|
Петров |
|
|
Сидоров |
|
Четверти |
Средний |
Общий |
Четверти |
Средний |
Общий |
|
балл по |
средний |
|
балл по |
средний |
|
четвертям |
балл |
|
четвертям |
балл |
1 |
3,20 |
3,20 |
1 |
4,20 |
4,20 |
2 |
4,30 |
3,75 |
2 |
4,40 |
4,30 |
3 |
3,70 |
3,73 |
3 |
4,70 |
4,43 |
4 |
4,80 |
4,00 |
4 |
4,50 |
4,45 |
Создайте графики зависимостей поля “ Общий средний балл ” от поля “Четверти” по обоим ученикам.
Используя интерактивную диаграмму, подберите такое значение поля “Средний балл по четвертям” для ученика Сидорова на последнюю четверть, чтобы общий средний балл был равен 4,5.
Используя линию тренда (тренд линейный) сделайте прогноз на 1 период вперед для Петрова.
|
|
3.1.5. Создайте таблицу по деятельности 2 предприятий по |
|
|
|||||||||
|
|
|
периодам (Поле “Доход нарастающим итогом” должно |
|
|
||||||||
|
|
|
вычисляться по формуле). |
|
|
|
|
|
|
|
|||
|
|
Предприятие "A" |
|
|
|
Предприятие "B" |
|
|
|||||
Дата |
|
Выручка |
|
Издержки |
|
Доход |
Дата |
Выручка |
|
|
Издержки |
|
Доход |
|
|
|
|
|
|
нарастающим |
|
|
|
|
|
|
нарастающ |
|
|
|
|
|
|
итогом |
|
|
|
|
|
|
м итогом |
|
|
100 000,00р. |
|
90 000,00р. |
|
10 000,00р. |
|
200 |
|
|
200 000,00р. |
|
0,00р |
01.01.2004 |
|
|
|
01.01.2004 |
000,00р. |
|
|
||||||
|
|
150 000,00р. |
|
100 000,00р. |
|
60 000,00р. |
|
220 |
|
|
200 000,00р. |
|
20 000,00р |
02.01.2004 |
|
|
|
02.01.2004 |
000,00р. |
|
|
||||||
|
|
152 000,00р. |
|
110 000,00р. |
|
102 000,00р. |
|
180 |
|
|
200 000,00р. |
|
0,00р |
03.01.2004 |
|
|
|
03.01.2004 |
000,00р. |
|
|
||||||
|
|
135 000,00р. |
|
120 000,00р. |
|
117 000,00р. |
|
170 |
|
|
200 000,00р. |
|
-30 000,00р |
04.01.2004 |
|
|
|
04.01.2004 |
000,00р. |
|
|
||||||
|
|
170 000,00р. |
|
110 000,00р. |
|
177 000,00р. |
|
180 |
|
|
200 000,00р. |
|
-50 000,00р |
05.01.2004 |
|
|
|
05.01.2004 |
000,00р. |
|
|
||||||
|
|
180 000,00р. |
|
115 000,00р. |
|
242 000,00р. |
|
190 |
|
|
200 000,00р. |
|
-60 000,00р |
06.01.2004 |
|
|
|
06.01.2004 |
000,00р. |
|
|
||||||
|
|
190 000,00р. |
|
110 000,00р. |
|
322 000,00р. |
|
200 |
|
|
200 000,00р. |
|
-60 000,00р |
07.01.2004 |
|
|
|
07.01.2004 |
000,00р. |
|
|
||||||
Создайте графики зависимостей поля “Доход нарастающим итогом” от поля “Дата” по обоим товарам.
Используя интерактивную диаграмму, подберите такое значение поля “Выручка” для предприятия “B” на 07.01.2004, чтобы Доход нарастающим итогом на эту же дату равнялся 0.
Используя линию тренда (тренд линейный) сделайте прогноз на 1 период вперед по предприятию “A”.
Макросы и VBA
В данном задании потребуется на основе бланка документа, созданного на предыдущей лабораторной работе по MS Excel при выполнении задания 2, создать шаблон. В шаблоне должен использоваться макрос, который при щелчке по листу бланка, будет вызывать форму для ввода данных в некоторые ячейки. Такие ячейки на бланке должны быть выделены особым цветом, а текст в ячейках - курсивом.
При выполнении задания потребуется выполнить следующие действия:
1.Выделите особым цветом и измените шрифт на курсив в тех ячейках, данные в которые будут заноситься с помощью макроса (таких ячеек должно быть 5-10).
2.В редакторе VBA создайте форму для ввода данных по этим полям
3.Создайте макрос, запрашивающий в диалоговом окне данные по бланку. При этом по умолчанию поля формы должны быть заполнены значениями соответствующих ячеек, а после закрытия формы в ячейки должны быть введены данные из формы.
4.Создайте автофигуру “Прямоугольник”, растяните ее до таких размеров, чтобы он покрывал собой все ячейки, данные в которые будут заноситься с помощью макроса. Используя “Формат” измените прозрачность до 100%, а границу уберите. Назначьте автофигуре созданный вами макрос.
На рисунке 37 показан пример шаблона “Расходной накладной” в стадии разработки. В примере автофигура “прямоугольник” занимает часть экрана, а прозрачность установлена на 60%. При выполнении задания “прямоугольник” должен покрывать собой все ячейки, заполняемые в диалоговой форме (выделены салатовым цветом) или весь бланк. Прозрачность “прямоугольника” должна быть 100%, т.е. он должен быть не видим. При щелчке по любой из соответствующих ячеек должна появляться диалоговая форма, запрашивающая данные.
Автофигура “Прямоугольник”
Диалоговая форма
Рисунок 19
