1
Задание №1 Создание
и заполнение таблицы Excel
данными и формулами.
Самойлов
Владимир Васильевич
1.
Создать в среде EXCEL электронную таблицу
Экзаменационная
Ведомость
и заполнить ее данными. Отформатировать
согласно образцу.
2.
Рассчитать количество полученных
оценок по видам и в целом, по следующему
алгоритму:
-
ввести
дополнительное количество столбцов,
по одному на каждый вид оценки
(5
столбцов); -
в
первые ячейки столбцов ввести
вспомогательные формулы с помощью
Мастера
функций;
например:
для столбца «5»
— =ЕСЛИ(D6=5;1;0)
для
столбца «неявки»
— =ЕСЛИ(D6=”н/я”;1;0)
-
скопировать
эти формулы во все остальные ячейки
дополнительных столбцов; -
под
таблицей (в выделенные ячейки) ввести
формулы подсчета суммарного количества
полученных оценок определенного вида
с помощью функции СУММ; -
подсчитать
общее количество (ИТОГО) всех полученных
оценок другим способом – Автосумма; -
сделать
дополнительные столбцы скрытыми; -
провести
коррекцию оценок и оценить полученные
результаты; -
переименовать
текущий лист на Экзамен1,
сохранить рабочую книгу под именем
Задание №1.
3.
Создать копию листа Экзамен1
и переименовать
его в Экзамен2.
Удалить подсчет суммарного количества
полученных оценок по видам. Применить
другой способ подсчета полученных
оценок с помощью функции СЧЕТЕСЛИ.
4. На новом листе Экзамен3
создать третий вариант Экзаменационной
ведомости. Провести коррекцию
оценок. Сохранить документ.
ВЕДОМОСТЬ |
||||
Группа |
||||
Минимальный |
||||
№ п/п |
Фамилия, |
Средний |
Количество |
Стипендия |
ИТОГО |
1.
На новом листе Стипендия
создать Ведомость
назначения на стипендию
и скопировать на нее список группы из
Экзаменационной
ведомости.
2. В отдельной
ячейке задать размер минимальной
стипендии – 1100 руб.
3.
Вычислить средний балл на основе трех
Экзаменационных
ведомостей по
каждому студенту:
например:
=СРЗНАЧ(‘Экзамен1′!D6;’Экзамен2′!D6;’Экзамен3’!D6)
4.
Подсчитать количество сданных каждым
студентом экзаменов с учетом неявок:
например:
=СЧЕТ(‘Экзамен1′!D6;’Экзамен2′!D6;’Экзамен3’!D6)
5.
Используя минимальное значение стипендии
и учитывая, что сданы
все 3 экзамена,
ввести формулы начисления стипендии
по условию:
-
если
средний балл равен 5
– выплачивается 50% надбавка к минимальной
стипендии; -
если
средний балл от 4
до 5
– выплачивается минимальная стипендия; -
если
средний балл меньше 4
– стипендия не выплачивается.
например:
=ЕСЛИ(И(C7=5;D7=3);$E$4*1,5;ЕСЛИ(И(C7>=4;D7=3);$E$4;0))
6.
Подсчитать сумму стипендиального фонда
для всей группы.
7.
Применить условное форматирование
Ведомости
(заливка ячеек и начертание шрифта)
для
трех столбцов: средний балл, количество
сданных экзаменов, стипендия.
8.
Скрыть формулы, установить защиту на
неизменяемые ячейки (снять защиту с
ячеек с фамилиями студентов и минимальным
размером стипендии), лист, книгу.
9.
Сохранить и защитить документ (установить
пароль на открытие документа).
10.
На новом листе рассчитать начисление
стипендии по следующему условию:
минимальная
стипендия выплачивается при сданных
экзаменах не ниже на «хорошо«
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Лабораторная
работа № 2
ФОРМАТ ЯЧЕЙКИ
Учет результатов экзаменационной сессии ведется с
использованием электронных ведомостей. Типовые ведомости создаются для групп и
содержат списки студентов (фамилия, имя, отчество, № зачетной книжки). При
вводе учетных данных выполняется проверка полноты заполнения ведомости,
правильности ввода оценок 2,3,4,5,н/я (неявка), вычисляется средний балл по
дисциплине.
Для назначения на стипендию вычисляется средний балл
по результатам сдачи экзаменов по каждому студенту. При этом, учитывая, что
сданы все экзамены, соблюдаются условия:
если средний балл не менее 4,5 выплачивается 50%
надбавка к минимальной стипендии;
если средний балл от 3 до 4,5 (включительно),
выплачивается минимальная стипендия;
если средний балл меньше 3, стипендия не
выплачивается.
Требуется подготовить ведомость назначения студентов на
стипендию по результатам экзаменационной сессии, в которой также подсчитывается
сумма стипендиального фонда для группы.
Создание зачетной ведомости по данному образцу.
Образец 1
ЭКЗАМЕНАЦИОННАЯ
ВЕДОМОСТЬ
Группа
№_____________ Дисциплина ___________________
Ф.И.О.
преподавателя___________________________________
Дата экзамена (зачета) «_____»____________________
200__г.
№ п/п |
Фамилия, имя, отчество |
№ зачетной книжки |
Оценка |
Подписьэкзаменатора |
«отлично»___________________________________
«хорошо»___________________________________
«удовлетворительно»_________________________
«неудовлетворительно»_______________________
«неявки»____________________________________
ИТОГО_____________________________________
Задание. 1. Загрузите табличный
процессор EXCEL. Для этого нажмите кнопку Пуск, выберите ПрограммыMicrosoft Excel.
2. Введите в указанные в таблице тексты заголовка и
шапки таблицы по следующей технологии:
·
Установите указатель мыши в ячейку, в которую будете
вводить текст, и щелкните левой клавишей мыши. Появится рамка.
·
Введите текст и нажмите клавишу ввода Enter.
·
Переметите указатель мыши в следующую ячейку и
щелкните левой клавишей мыши.
·
Введите текст и нажмите клавишу ввода Enter и т.д.
Технологическая таблица. Содержимое ячеек.
Адрес ячейки |
текст |
В1 |
ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ |
А3 |
Группа № |
С3 |
Дисциплина |
А7 |
№ п/п |
В4 |
Ф.И.О. преподавателя |
В5 |
Дата экзамена (зачета) |
В7 |
Фамилия, имя, отчество |
С7 |
№ зачетной книжки |
D7 |
оценка |
Е7 |
Подпись экзаменатора |
2. Отформатируйте ячейки А1: Е1;
·
Выделите блок ячеек и введите команду Формат
ячеек.
·
На вкладке Выравнивание выберите опции
·
Горизонтальное – центрировать по
выделению;
·
Вертикальное – по верхнему краю.
·
Выделите текст, нажмите кнопку
Ж
3. Отформатируйте шапку таблицы, применяя к каждой
ячейке следующую технологию:
·
установите указатель мыши в ячейку, например В7.
·
Вызовите контекстное меню и выберите команду Формат
ячеек.
·
На вкладке выравнивание задайте параметры:
·
Горизонтальное: обычное
·
Вертикальное: по верхнему краю
·
Переносить по
словам:
поставить флажок
·
Ориентация: горизонтальный текст (по
умолчанию)
·
Нажмите кнопку Ok.
·
одведите указатель мыши к
правой черте клетки с именем столбца, например, В, так, чтобы указатель мыши изменил свое изображение на двунаправленную стрелку.
·
нажмите левую кнопку мыши и, удерживая ее, увеличьте
ширину столбца так, чтобы достичь соответствия с образцом экзаменационной
ведомости.
·
Аналогичные действия проделайте с ячейками А7, С7, D7, E7.
4. Заполните ячейки столбцов В и С данными о студентах
учебной группы (20 строк). Отформатируйте данные.
5. Присвойте каждому студенту порядковый номер:
·
Введете в ячейку А8 число 1.
·
Установите указатель мыши в правый нижний угол
ячейки А8 так, чтобы указатель мыши
приобрел вид знака плюс и, нажав левую кнопку мыши, протяните курсор на нужное
количество строк.
6. Сохраните рабочую книгу
·
выполните команду Файл Сохранить как…
·
откройте свою папку
·
присвойте книге имя SESSION
·
нажмите кнопку Сохранить.
7. Заполните таблицу. Оценки поставьте цифрами. Не
забудьте Сохранить.
8. Сохраните созданную экзаменационную ведомость еще
раз на втором листе книги SESSION. Назовите ее
Сводная ведомость. Для этого
·
Выделите таблицу
·
Выполните
Правка/Копировать
·
Перейдите на второй лист. Для этого щелкните в левом
нижнем углу рабочего окна Лист2.
·
Выполните Правка/Вставить
·
В таблице очистите содержимое четвертого столбца Подпись
преподавателя. Для этого выделите его и нажмите Delete.
·
Создайте еще три столбца с оценками по другим
предметам учебного плана, впишите в «шапку» таблицы название дисциплины,
проставьте оценки.
Лабораторная
работа № 3
СОЗДАНИЕ
РАСЧЕТНОЙ ТАБЛИЦЫ
Задание.
1. Создайте в Сводной
ведомости (книга SESSION) столбец Средний балл
2. Рассчитайте средний балл каждого студента. Для
этого воспользуйтесь мастером функций.
§
Установите курсор в самую верхнюю незаполненную
ячейку Средний балл, т.е. для первого по ведомости студента.
§
Наберите в этой ячейки формулу для определения
среднего балла Для этого воспользуйтесь Мастером
функций. Для этого выполните Вставка/Функция
или значком f на
панели инструментов.
В окне Категории
выберите Статистические. Для этого
нажмите на кнопку стрелка-треугольник и из выпадающего списка выберите
Статистические. Затем прокрутите список функций и выберите из него СРЗНАЧ. Затем OК.
§
Выделите мышкой диапазон ячеек, среднее значение
которых нужно определить, и он автоматически заполнит поле в диалоговом окне
Мастера функций. Или введите его вручную, например С33:F33
§
Нажмите Enter. Получится результат.
§
Созданную формулу можно копировать и применить для
расчета среднего балла остальных студентов. Поместите указатель мыши в ячейку,
в которой записана формула, даже если в ней виден уже результат, а не сама
формула. В правом нижнем углу ячейки появится знак +. Зажмите левую клавишу мыши и не отпуская
протяните на нужное количество ячеек и отпустите.
Лабораторная
работа № 4
ИСПОЛЬЗОВАНИЕ
ЛОГИЧЕСКИХ ФУНКЦИЙ
Задание 1. Определите количество отличных, хороших,
удовлетворительных и неудовлетворительных оценок, полученных на экзамене.
Работа
выполняется с таблицей Экзаменационная ведомость, на листе 1, книга SESSION. Для решения задачи нужно включить в таблицу еще
четыре столбца. За Подписью преподавателя столбец назовите «5», следующий «4»,
затем «3» и «2». Создайте эти четыре столбца в таблице Экзаменационная
ведомость на листе 1.
В
столбец с именем «5» в верхнюю ячейку вводим формулу, смысл которой в следующем. Если содержимое какой-либо ячейки
содержащей оценку совпадает с 5, то в ячейке столбика «5» ставим 1, иначе 0,
т.е. если там 4, 3 или 2, то ставим 0. Затем находим сумму в столбце «5» это и
будет количество пятерок на экзамене по этому предмете. Результат нужно
поместить в ячейку, отведенную для размещения значения или количества отличных
оценок, т.е. рядом с ячейкой содержащей слово «отлично». Аналогично для всех
других оценок.
Поместите
указатель мыши в верхнюю свободную ячейку столбца F. Наберите =, затем Вставка/Функция или пиктограмма на
панели инструментов. В категории выберите Логические,
функцию ЕСЛИ.
=ЕСЛИ(D8=5;1;0)
Затем Enter.
Задание 2. На Листе 2 ниже Сводной
ведомости создайте Ведомость
назначения на стипендию по представленному образцу 2.
При создании ВЕДОМОСТИ
НАЗНАЧЕНИЯ НА СТИПЕНДИЮ используйте технологию выполнения операций,
описанную в Задании 1. Технология создания таблицы представлена в
Технологической таблице, которая расположена ниже образца 2.
Образец 2
ВЕДОМОСТЬ
НАЗНАЧЕНИЯ НА СТИПЕНДИЮ
Группа
№__________Минимальный размер стипендии_________
№ п/п |
Фамилия, имя, отчество |
Средний балл |
Стипендия |
Стипендиальный
фонд_________________
Технологическая
таблица
А31 |
ведомость назначения на стипендию |
А32 |
Группа № |
В32 |
Номер |
С32 |
Минимальный размер стипендии |
F32 |
400 |
А33 |
№ п/п |
В33 |
Фамилия,имя, отчество |
С33 |
Средний балл |
D33 |
Стипендия |
Копируйте
содержимое столбца ФИО и вставьте его в таблицу. Аналогично средний балл.
Заполняем
столбец Стипендия.
Если
студент имеет средний балл 4 или больше, то он получит стипендию.
Если
меньше 4, то – нет.
Теперь
представим это так: средний балл>= 4, то стипендия, иначе 0 .
Теперь
построим формулу назначения стипендии. Для этого используем логические функции.
Поместите указатель мыши в верхнюю свободную
ячейку этого столбца. Наберите =, затем Вставка/Функция или на
панели инструментов. В категории выберите Логические,
функцию ЕСЛИ.
=ЕСЛИ(D34>=C32; F32;0)
Затем Enter.
И так далее, для всех оставшихся строк таблицы.
Можно копировать формулу и протянуть по всем ячейкам столбца.
Посчитайте
стипендиальный фонд. Для этого просуммируйте содержимое столбца Стипендия, а результат поместите в
ячейку, отведенную вами для значения стипендиального фонда.
Лабораторная работа №2 по Excel.
Задание:
Создать экзаменационную ведомость,
заполнить и рассчитать количество
различных оценок.
1).
Введите
тексты заголовка и шапки таблицы по
следующей технологии:
Установите
указатель мыши в нужную ячейку, например
в В1,
щелкните левой кнопкой появится рамка.
Введите текст и нажмите клавишу Enter;
Содержимое ячеек:
В1—
ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ; А3-Группа
№; С3-Дисциплина;
А5-№
п/п; В5-Фамилия,
имя, отчество; С5-№
зачетной книжки; D5-оценка;
Е5-Подпись
экзаменатора (записи вводим полностью,
без всяких сокращений).
2)
Отформатируйте ячейки А1-Е1:
Выделите блок
ячеек А1–
Е1, щелкните
правой кнопкой мыши по выделению, для
вызова контекстного меню. В нем выберете
команду Формат
ячеек. На
вкладке Выравнивание
выберете
опции: по
горизонтали:
по центру выделения; по
вертикали:
по верхнему краю. На вкладыше Шрифт
нажмите
кнопку размер и выберете 14пт и сделайте
его полужирным.
3) Отформатируйте
шапку таблицы.
Выделите блок
ячеек А3:J5,
где располагается шапка таблицы. Нажмите
правую кнопку мыши на выделенном блоке
ячеек и выберите команду Формат
ячеек. На
вкладке Выравнивание
задайте
параметры: по
горизонтали:
по значению;
по вертикали:
по верхнему
краю; переносить
по словам:
поставить
флажок, нажмите кнопку OK.
4)Установите
нужную ширину столбцов.
Для этого установите
указатель мыши к правой черте клетки с
указателем имени столбца, например В,
так, чтобы указатель изменил свое
изображение на ↔. Нажмите левую кнопку
мыши и, удерживая ее, протащите мышь
так, чтобы добиться нужной ширины столбца
или строки. Проделайте тоже самое с
остальными столбцами А, С и т.д.
5) Заполните
ячейки столбца В данными о студентах
учебной группы, приблизительно 10-15
строк. (имя
отчество вводить только инициалы).
6)Присвойте
каждому студенту порядковый номер.
Введите в ячейку
А6
число 1. Установите курсор мыши в нижний
правый угол ячейки А6, так, чтобы он
приобрел изображение креста и, нажав
правую кнопку мыши, протяните курсор
на требуемое количество ячеек, отпустив
мышку выберите команду локального меню
Заполнить.
7)После
списка студентов в нижней части таблицы
введите в
ячейки столбцов А
текст итоговых строк:
Отлично,
Хорошо, Удовлетворительно,
Неудовлетворительно, Неявка, Итого.
Объедините
две соседние ячейки,
где расположены
итоговые надписи, покажем это на примере
объединения двух ячеек, где расположена
надпись Отлично. Выделите две ячейки:
ячейку Отлично и ячейку находящуюся
справа от нее. Нажмите правую клавишу
мыши на выделении и выберите команду
Формат ячеек.
На вкладке
Выравнивание
установите
флажок Объединение
ячеек и
нажмите кнопку Ok. Проведите аналогичные
действия с остальными итоговыми ячейками;
9) Заполните
номера зачеток.
Введите номер
первой зачетки – 34544. Поставьте курсор
мыши в нижний правый угол ячейки и
добейтесь появления креста, нажмите
правую кнопку мыши и не отпуская ее
протяните курсор на нужное количество
ячеек, которых требуется заполнить,
выберите в появившемся меню Прогрессия,
там в разделе
тип выберите арифметическая
прогрессия,
а шаг
равный 8.
10) Заполните
графу оценки вводя
следующие оценки 5, 4, 3, 2, неявка.
11)
Введите дополнительное кол-во столбцов,
для подсчета кол-ва оценок, на каждый
вид оценки, всего пять: в
ячейке F5 –
написать
ОТЛИЧНО, в
G5 – ХОРОШО,
в H5 –
УДОВЛЕТВ., в
I5 – НЕУДОВЛ.,
в J5 – НЕЯВКА.
12) В
каждую ячейку дополнительного столбца
ввести формулу,
Ее суть: например
если студент Снегирев получил 5, то в
ячейке F6 отображается 1, а в остальных
вспомогательных столбцах G-J, в данной
строке появится 0.
В ячейке F6
напишите =ЕСЛИ(D6=5;1;0);
в ячейке G6
=ЕСЛИ(D6=4;1;0);
в ячейке H6
=ЕСЛИ(D6=3;1;0);
в ячейке I6
=ЕСЛИ(D6=2;1;0);
в ячейке J6
=ЕСЛИ(D6=»неявка»;1;0);
13) Скопируйте
эти формулы во все остальные ячейки
дополнительных столбцов.
Для этого выделите
блок ячеек F6:J6.
Установите курсор в нижний угол
выделенного блока и после появления
черного крестика, нажав правую кнопку
мыши, перетащите ее до конца таблицы.
Выберете в контекстном меню команду
Заполнить
значения.
14)Определите
имена блоков ячеек по каждому
дополнительному столбцу.
Рассмотрим на
примере дополнительного столбца F.
Выделите все значения столбца F (только
числа, без названия столбцов). Выберите
команду Вставка,
Имя, Присвоить.
В диалоговом окне в строке Имя
введите слово ОТЛИЧНО и щелкните кнопкой
Добавить.
Проведите аналогичные действия с
остальными столбцами, создайте еще
несколько имен блоков ячеек: ХОРОШО,
УДОВЛЕТВОРИТЕЛЬНО, НЕУДОВЛЕТВОРИТЕЛЬНО,
НЕЯВКА.
15) Сделайте
столбец F-J
скрытым.
Выделите столбцы F-J
и выполните команду Формат,
Столбец, Скрыть.
16) Подсчет
кол-ва оценок.
Установите курсор
в ячейку ряда С, напротив ОТЛИЧНО.
Выполните команду Вставка,
Функция и
в появившемся окне выберите: Категория
Математические,
функция
Сумм. В следующем окне в строке
Число1
установите
курсор и выполните Вставка,
Имя, Вставить.
В появившемся окне выберете имя
Отлично.
Повторите аналогичные действия для
подсчета кол-ва других оценок в ячейках
С14-С17.
Подсчитайте кол-во
самостоятельно ИТОГО (количество
студентов явившихся на экзамен).
Составьте табель
успеваемости студентов по предметам
(высшая математика, физика, информатика,
физкультура, русский язык).
Подсчитайте
средний балл для каждого студента по
всем предметам.
Постройте диаграмму
успеваемости студентов (по средним
значениям).
(взять не менее
10 студентов).
7) Далее подсчитайте количество оценок 2, 3, 4, 5 и
общее количество оценок по каждой дисциплине. Для этого используйте
вспомогательные столбики: F (для пятерок), G (для четверок), H (для троек), I
(для двоек). Для каждого студента в ячейках этих столбиков будут находиться три
нуля и одна единица (в том столбике, который соответствует фактической оценке).
С помощью Мастер функций в ячейки F6:I6
введите формулы (рис. 8).
Ссылка |
Формула |
Ссылка |
Формула |
F6 |
Если |
H6 |
Если (D6 = 3; 1; 0) |
G6 |
Если |
I6 |
Если (D6 = 2; 1; 0) |
Рис. 8. Формулы в ячейках F6:I6
Далее скопируйте (используя мышь) эти формулы во все
остальные ячейки дополнительных столбиков. Определите имена блоков
ячеек по каждому дополнительному столбику. Например, для
столбика F это надо сделать так. Выделите все значения
дополнительного столбика (F6 – последняя ссылка). Затем введите команду
Вставка, Имя, Присвоить, в диалоговом окне в строке Имя наберите
слово «отлично» и щелкните по кнопке Добавить.
Затем выделите столбцы F – I и
сделайте их скрытыми (команда контекстного меню Формат, Скрыть).
Введите названия итогового количества полученных
оценок («отлично», «хорошо», «удовлетворительно»,
«неудовлетворительно») в столбец В. Введите в ячейки столбца С
формулы для подсчета суммарного количества оценок определенного вида. Например,
введите (с помощью Мастер функций и выделения имени блока ячеек
«отлично») формулу СУММ («отлично»). Для подсчета общего количества оценок,
полученных на данном экзамене, надо установить курсор в пустой ячейке,
находящейся под ячейками, где подсчитывались суммы по всем видам оценок,
щелкнуть по кнопке S, выделить
блок, где подсчитывались эти суммы и нажать клавишу ввода.
9) Сделайте две копии рабочего листа «Экзамен 1» с
именами «Экзамен 2» и «Экзамен 3». Это можно сделать, щелкнув по ярлыку
рабочего листа и используя далее контекстное меню. Заполните в ведомостях
названия дисциплин (ячейка D3) на экзаменационных листах: «Информатика»,
«Математика», «Физика». Измените оценки в ведомостях по математике и
физике произвольным образом. Рабочий лист с ведомостью по информатике будет
иметь вид, который изображен на рис. 9.
Выполните команду Сервис, Параметры,
вкладка Вид, установите флажок Формулы. Результат должен иметь
вид, изображенный на рис. 10. Снимите флажок Формулы.
Рис.9. Вид экзаменационной ведомости
(флажок Формулы сброшен)
Рис. 10. Вид экзаменационной ведомости
(флажок Формулы установлен)
10) Составьте ведомость назначения на стипендию. Пусть
минимальная стипендия равна 200 р. Стипендия начисляется студентам, сдавшим все
экзамены, так:
если средний балл по результатам сессии более 4,66,
выплачивается 50%-ная надбавка к минимальной стипендии;
если средний балл по результатам сессии более 4,3, но
менее либо равен 4,66, выплачивается минимальная стипендия.
Создайте лист Стипендия, на который из столбцов А и В
листа Экзамен1 скопируйте фамилии и порядковые номера студентов.
В ячейку D2 введите минимальный размер
стипендии. В ячейки C4, D4 введите заголовки «Средний балл», «Стипендия». С
помощью Мастера функций(и щелкая в процессе диалога по ярлычкам
листов и нужным ячейкам) введите в ячейку С5 формулу (для вычисления среднего
балла для первого студента по списку):
=Срзнач(Экзамен1!D6; Экзамен2!D6;
Экзамен3!D6).
Скопируйте формулу по всем ячейкам столбца С.
По ранее описанной методике введите расчетные
формулы в столбец D. Например, в
ячейке D5 должна появиться формула:
=Если(С5>4,66;$D$2*1,5; Если(C5>4,33;$D$2;0)).
В режиме отображения значений ведомость должна иметь
вид, изображенный на рис. 11.
Рис. 11. Таблица «Стипендия» в режиме отображения
значений
В режиме отображения формул экзаменационная ведомость
должна иметь вид, изображенный на рис. 12, 13.
11) По трем
экзаменационным ведомостям постройте столбчатую диаграмму, отражающую
результаты сессии. При этом ряды выбираются по результатам трех
экзаменов, а категориями являются номера студентов. По оси абсцисс укажите
Ф.И.О. Улучшите внешний вид диаграммы в соответствии с
возможностями программы.
Рис. 12. Таблица «Стипендия» в режиме
отображения формул (столбцы А – С)
Рис. 13. Таблица «Стипендия» в режиме отображения
формул (столбец D)
9.4. Подбор параметра
Существует ряд математических пакетов, с помощью
которых можно решать сложные математические задачи, например, широко
используемый пакет Mathcad. Некоторые задачи можно решить и в Excel.
Однако следует отметить, что в отличие от большинства современных математических
пакетов, позволяющих находить решение в символьном виде, т. е. в виде
аналитического выражения, в Excel можно получить только численное решение.
Например, при решении задачи дифференцирования
какой-либо функции в Excel можно получить числовое значение производной в
некоторой точке, но не формулу.
С помощью команды Сервис, Подбор параметраможно
легко решить уравнение с одним неизвестным. Для поиска решения эта команда
использует метод итераций. Сначала берется начальное значение в изменяемой
ячейке, содержащей параметр. Если начальное значение не дает требуемого
значения в целевой ячейке, то делается шаг итерационного процесса и находится
новое значение изменяемой ячейки. Если и это значение не устраивает, делается
еще шаг. Этот процесс продолжается до тех пор, пока не будет найдено нужное
значение (при условии, что решение задачи существует и оно может быть найдено
методом итераций).
По умолчанию команда Подборпараметра
прекращает вычисления, когда выполняется 100 итераций или при получении
результата, который находится в пределах 0,001 от заданного целевого значения.
Для изменения этих установок надо выполнить команду Сервис, Параметры.
На вкладке Вычислениянадо изменить значения полей Предельноечислоитерацийи Относительнаяпогрешность. Если задача имеет несколько решений, то
будет найдено одно из них.
При решении уравнений нужно знать начальное
приближение. В Excel его легко получить, построив таблицу значений функции
и определив, при каких значениях аргумента функция меняет знак.
В настоящее время количество учебных заведений значительно возросло. Рынок коммерческого образования охватил практически все крупные и средние города. Организация учебного процесса требует автоматизации различных участков работы. Учет успеваемости, оплаты и распределения аудиторного фонда организуется с помощью разнообразных средств автоматизации. В этой статье мы рассмотрим несколько задач, связанных с разработкой автоматизированных рабочих книг, направленных на улучшение организации учебного процесса.
Учет успеваемости
Первая задача, которую мы рассмотрим, относится к учету успеваемости учащихся. Наша цель заключается в разработке удобного механизма выставления оценок и получения сводных отчетов по успеваемости. Книга будет представлять собой несколько листов, которые по функциональному назначению можно разделить на справочные и листы управления.
На рис. 5.1 показан «основной» справочный лист, содержащий перечень дисциплин, входящих в различные учебные планы. В столбце G указывается название плана, а в столбце В — название дисциплины. Каждая дисциплина в определенном учебном плане имеет свой уникальный номер, для которого отведен столбец А.
Рис. 5.1. Лист с информацией об учебных планах
Также на листе указывается семестр, когда дисциплина проводится, форма отчетности (экзамен, зачет или курсовая работа), общее и аудиторное количество учебных часов.
Рис. 5.2. Лист со справочной информацией
В процессе работы список названий учебных планов будет требоваться достаточно часто, поэтому оформим его на отдельном листе, предназначенном для справочных данных (рис. 5.2).
Информация об успеваемости будет храниться на листе Учащиеся (рис. 5.3). Вообще, можно для каждого учащегося ввести уникальный код, который позволит идентифицировать конкретного учащегося, даже если у двух и более человек фамилия и инициалы совпадают. Мы этого не сделали, так как у каждого учащегося имеется реквизит План, значение которого позволит идентифицировать учащихся при совпадении фамилии и инициалов, если они обучаются на разных специальностях. В случае же, если фамилия и инициалы совпадают у студентов одной специальности, то в столбец Учащийся на рис. 5.3 можно добавить уточняющую информацию. Начиная с третьего столбца располагаются столбцы для оценок (Оценка 1 для первой дисциплины учебного плана, Оценка 2 — для второй, и т. д.). Таким образом, комбинация данных с листов Планы и Учащиеся позволяет получить оценки конкретного студента или слушателя.
Рис. 5.3. Организация листа Учащиеся
Механизм ввода оценок
Таким образом, мы рассмотрели основную справочную информацию в книге. Теперь перейдем к разработке первого из листов управления, который назовем Оценки учащегося (рис. 5.4). Его назначение заключается в предоставлении сотруднику возможности просмотра и ввода оценок конкретного учащегося.
На рассматриваемом листе два поля со списком — для отражения перечня учебных планов и наших учащихся (располагаются ниже соответствующих подписей). Для первого поля со списком установим значение свойства Name — Plan, а для второго — Student. Выделенная оттенком ячейка А8 будет заполняться программно номером строки, где на листе Учащиеся располагается информация по указанному студенту.
Этот номер строки будет использоваться далее в программных процедурах.
Справа от полей со списками разместим две кнопки — Заполнить список учащихся (Name — SpStud) и Вывести информацию об оценках (Name — Osenki). В правой части листа разместим текстовое окно для ввода кодового слова (Name — Pass) и кнопку (Name — OK) для записи информации на лист Учащиеся.
Для повышения защищенности запись информации на лист Учащиеся будет производиться только в случае ввода определенного кодового слова в текстовом окне Pass.
Таким образом, функциональность листа Оценки учащегося определена, и теперь требуется ее реализовать. Для работы с листом поле со списком Plan должно быть предварительно заполнено. Это лучше всего выполнить при открытии книги. В листинге 5.1 приведена необходимая процедура Workbook_Open.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
' Листинг 5.1. Процедура, выполняемая при открытии книги Private Sub Workbook_Open() N = 0 While Worksheets("Справочник").Cells(N + 1, 1).Value <> "" N = N + 1 Wend Worksheets("Оценки учащегося").Plan.Clear Worksheets("Оценки учащегося").Student.Clear For i = 1 To N a = Worksheets("Справочник").Cells(i, 1).Value Worksheets("Оценки учащегося").Plan.AddItem a Next Worksheets("Оценки учащегося").Range("A8").Value = "" End Sub |
Рис. 5.4. Организация просмотра и ввода оценок учащихся
Содержимое ячейки A8 очищается, и она будет использоваться дальнейшими процедурами для отражения номера строки листа Учащиеся, где располагается информация по интересующему нас учащемуся.
Первое действие пользователя заключается в том, что он должен выбрать интересующий его учебный план и далее щелчком на кнопке Заполнить список учащихся внести в нижнее поле со списком тех учащихся, которые обучаются по данному плану. Необходимая для этого процедура приведена в листинге 5.2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
' Листинг 5.2. Процедура обработки щелчка на кнопке Заполнить список учащихся Private Sub SpStud_Click() N = 0 While Worksheets("Учащиеся").Cells(N + 1, 1).Value <> "" N = N + 1 Wend Student.Clear For i = 1 To N If CStr(Worksheets("Учащиеся").Cells(i + 1, 2).Value) = _ CStr(Plan.Text) Then a = Worksheets("Учащиеся").Cells(i + 1, 1).Value Student.AddItem a End If Next End Sub |
Следующее действие пользователя заключается в том, что он должен выбрать учащегося в поле со списком Student. В этом случае процедура обработки щелчка на списке учащихся (листинг 5.3) вносит в ячейку А8 рассматриваемого листа номер строки на листе Учащиеся, где расположена информация по интересующему нас человеку.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
' Листинг 5.3. Процедура обработки щелчка на списке учащихся Private Sub Student_Click() N = 0 While Worksheets("Учащиеся").Cells(N + 2, 1).Value <> "" N = N + 1 Wend For i = 1 To N If CStr(Worksheets("Учащиеся").Cells(i + 1, 2).Value) = _ CStr(Plan.Text) And CStr(Worksheets("Учащиеся").Cells(i + 1, _ 1).Value) = CStr(Student.Text) Then Cells(8, 1).Value = i + 1 Exit For End If Next End Sub |
Теперь от пользователя требуется щелчком на кнопке Вывести информацию об оценках отобразить дисциплины, которые имеются в учебном плане, по которому учащийся обучается, а также вывести оценки (разумеется, если они имеются). В листинге 5.4 показана процедура, которая выполняет данное действие, а на рис. 5.5 продемонстрирован результат вывода имеющихся оценок в базе данных по одному из учащихся.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
' Листинг 5.4. Процедура обработки щелчка на кнопке Osenki Private Sub Osenki_Click() ' Предварительная очистка области на экране Range("A11:E200").Value = "" If Student.Text = "" Then MsgBox ("не выбран учащийся") Exit Sub End If ' Подсчет дисциплин на листе Планы N = 0 While Worksheets("Планы").Cells(N + 2, 1).Value <> "" N = N + 1 Wend Num = 11 ' Номер строки на листе, с которой начинается вывод информации For i = 1 To N ' Цикл по числу дисциплин на листе Планы a = Worksheets("Планы").Cells(i + 1, 7).Value If CStr(a) = CStrPlan.Text) Then ' Если дисциплина из выбранного учебного плана b = CInt(Worksheets("Планы").Cells(i + 1, 1).Value) ' Запись номера дисциплины Cells(Num, 1).Value = b ' Запись названия дисциплины и ее параметров Cells(Num, 2).Value = Worksheets("Планы").Cells(i + 1, 2).Value Cells(Num, 3).Value = Worksheets("Планы").Cells(i + 1, 3).Value Cells(Num, 4).Value = Worksheets("Планы").Cells(i + 1, 4).Value ' Извлечение оценки по дисциплине с листа Учащиеся osenka = Worksheets("Учащиеся").Cells(Cells(8, 1).Value, b + 2).Value ' Запись оценки Cells(Num, 5).Value = osenka ' Увеличение счетчика выводимых строк на листе Num = Num + 1 End If Next End Sub |
Таким образом, мы обеспечили вывод информации на лист Оценки учащегося с листа Учащиеся. Следующий шаг — обеспечить возможность обратного действия (с листа Оценки учащегося информация должна записываться на лист Учащиеся). Для этого мы уже разместили на листе кнопку Запись и текстовое окно для указания кодового слова при записи. В этом случае информация будет зафиксирована на листе Учащиеся только при определенном пароле. Процедура, которая обеспечивает данное действие, представлена в листинге 5.5.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
' Листинг 5.5. Процедура для записи информации в базу данных Private Sub OK_Click() ' Проверка пароля и выбора учащегося If Pass.Text = "csm" And Cells(8, 1) <> "" Then ' Извлекаем номер строки, в которую будем производить запись информации NumStud = Cells(8, 1).Value ' Подсчет числа дисциплин выбранного учебного плана N = 0 While Cells(N + 11, 1).Value <> "" N = N + 1 Wend For i = 1 To N ' Вычисляем номер столбца на листе Учащиеся, где находится оценка a = 2 + Cells(i + 10, 1).Value ' Запись оценки Worksheets("Учащиеся").Cells(NumStud, a).Value = Cells(i + 10, 5).Value Next MsgBox ("Информация записана") Else MsgBox ("Информация не записана") End If End Sub |
Рис. 5.5. Отображение успеваемости на листе Оценки учащегося
Ввод новых учащихся
Понятно, что в рассматриваемой автоматизированной книге требуется постоянное пополнение списка учащихся. В принципе, добавление можно выполнить прямо на листе Учащиеся, однако для удобства мы создадим еще один лист, Ввод учащихся, который показан на рис. 5.6. Здесь два элемента управления: поле со списком Plan и кнопка ОК. Пользователь (сотрудник учебного заведения) вводит в ячейку C3 фамилию учащегося, выбирает из списка учебных планов учебный план и затем щелчком на кнопке фиксирует информацию на листе Учащиеся.
Рис. 5.6. Лист для ввода новых студентов
Рассмотрим технические шаги для реализации описанного «функционала». Первое, что нам потребуется сделать, — обеспечить заполнение поля со списком Plan. Это мы выполним при открытии книги. Поэтому сделаем добавление (листинг 5.6) в уже встречавшейся в этой статье процедуре Workbook_Open.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
' Листинг 5.6. Измененная процедура Workbook_Open (вариант 2) Private Sub Workbook_Open() N = 0 While Worksheets("Справочник").Cells(N + 1, 1).Value <> "" N = N + 1 Wend Worksheets("Оценки учащегося").Plan.Clear Worksheets("Оценки учащегося").Student.Clear Worksheets("Ввод учащихся").Plan.Clear For i = 1 To N a = Worksheets("Справочник").Cells(i, 1).Value Worksheets("Оценки учащегося").Plan.AddItem a Worksheets("Ввод учащихся").Plan.AddItem a Next Worksheets("Оценки учащегося").Range("A8").Value = "" End Sub |
Рис. 5.7. Результат ввода нового учащегося
Вторая процедура, которая нам понадобится, связана с записью введенной информации на лист Учащиеся. Это действие (формирование новой строки с данными) выполняется с помощью процедуры, связанной со щелчком на кнопке Запись (она приведена в листинге 5.7). Для имеющихся данных результат ввода продемонстрирован на рис. 5.7.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
' Листинг 5.7. Процедура обработки щелчка на кнопке Запись Private Sub OK_Click() ' Проверка указания учебного плана If Plan.Text = "" Then MsgBox ("Не указан поток") Exit Sub End If ' Подсчет уже имеющихся записей на листе Учащиеся N = 0 While Worksheets("Учащиеся").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' Внесение фамилии Worksheets("Учащиеся").Cells(N + 2, 1).Value = Cells(3, 3).Value ' Внесение названия учебного плана Worksheets("Учащиеся").Cells(N + 2, 2).Value = Plan.Text MsgBox ("Данные введены") ' Очистка ячейки с фамилией Range("C3").Value = "" End Sub |
Лист Ведомость
Понятно, что наиболее важный функциональный компонент связан с организацией электронной ведомости — сотруднику учебного заведения должна быть предоставлена удобная возможность ввода оценок в базу данных. На рис. 5.8 такой лист показан. Здесь размещено два поля со списком. Одно поле со списком (Name — Plan) располагается в левой верхней части листа, а другое (Name — Disp) находится в правой части листа и предназначено для дисциплин. Также на листе присутствуют три кнопки. По нажатию кнопки Заполнить дисциплины (Name — ComD) после выбора плана (в поле со списком Plan) производится заполнение поля со списком Disp дисциплинами, относящимися к выбранному учебному плану. После указания необходимой дисциплины, сотрудник учебного заведения с помощью щелчка на кнопке Заполнить ведомость (Name — ComV) формирует ведомость с фамилиями учащихся и оценками (если они имеются).
Рис. 5.8. Организация листа Ведомость
В правой нижней части листа Ведомость расположена кнопка Запись (Name — OK) для внесения информации на лист Учащиеся. Как и ранее, для повышения защищенности на листе размещено текстовое окно (Name — Pass). Первое действие в плане программных конструкций связано с еще одним изменением процедуры Workbook_Open. Она теперь должна обеспечивать еще и заполнение поля со списком Plan на листе Ведомость. В листинге 5.8 представлен необходимый вариант рассматриваемой процедуры.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
' Листинг 5.8. Измененная процедура Workbook_Open (вариант 3) Private Sub Workbook_Open() N = 0 While Worksheets("Справочник").Cells(N + 1, 1).Value <> "" N = N + 1 Wend Worksheets("Оценки учащегося").Plan.Clear Worksheets("Оценки учащегося").Student.Clear Worksheets("Ввод учащихся").Plan.Clear Worksheets("Ведомость").Plan.Clear For i = 1 To N a = Worksheets("Справочник").Cells(i, 1).Value Worksheets("Оценки учащегося").Plan.AddItem a Worksheets("Ввод учащихся").Plan.AddItem a Worksheets("Ведомость").Plan. AddItem a Next Worksheets("Оценки учащегося").Range("A8").Value = "" End Sub |
При переходе на лист Ведомость от пользователя после выбора плана требуется щелкнуть на кнопке Заполнить дисциплины. На листинге 5.9 приведена процедура, которую необходимо написать для обработки щелчка на данной кнопке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
' Листинг 5.9. Процедура обработки щелчка на кнопке Заполнить дисциплины Private Sub ComD_Click() Disp.Clear ' Подсчет числа дисциплин на листе Планы N = 0 While Worksheets("Планы").Cells(N + 2, 1).Value N = N + 1 Wend For i = 1 To N b = Worksheets("Планы").Cells(i + 1, 7).Value If CStr(b) = CStr(Plan.Text) Then ' Если название учебного плана совпадает с указанным Disp.AddItem Worksheets("Планы").Cells(i + 1, 2).Value End If Next End Sub |
Теперь щелчок на конкретном элементе в поле со списком Disp позволяет нам определиться, с какой дисциплиной мы собираемся работать. Процедура, представленная в листинге 5.10, позволяет заполнить данными шестую строку листа, которая информирует пользователя о реквизитах дисциплины, с которой мы собираемся работать.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
' Листинг 5.10. Процедура обработки щелчка на поле со списком Disp Private Sub Disp_Click() N = 0 While Worksheets("План").Cells(N + 2, 1).Value <> "" N = N + 1 Wend For i = 1 To N If Plan.Text = Worksheets("План").Cells(i + 1, 7).Value And _ Disp.Text = Worksheets("План").Cells(i + 1, 2).Value Then ' Извлечение номера дисциплины kod = Worksheets("План").Cells(i + 1, 1).Value Exit For End If Next ' Отражение параметров дисциплины в шестой строке листа Range("A6").Value = Worksheets("План").Cells(i + 1, 2).Value Range("B6").Value = Worksheets("План").Cells(i + 1, 4).Value Range("C6").Value = Worksheets("План").Cells(i + 1, 3).Value Range("D6").Value = kod End Sub |
Рис. 5.9. Результат выбора плана и дисциплины
В качестве примера на рис. 5.9 показан результат выбора дисциплины Рисунок и живопись по плану 6ИВУ. Далее сотруднику учебного заведения необходимо щелчком на кнопке Заполнить ведомость внести информацию об учащихся и их оценках в определенную область листа. Для этого нам потребуется процедура, представленная в листинге 5.11.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
' Листинг 5.11. Процедура заполнения ведомости Private Sub ComV_Click() ' В ячейке D6 предварительно мы записали код (номер) дисциплины NomerDisp = Cells(6, 4).Value ' Выход, если не указана дисциплина If NomerDisp = "" Then MsgBox ("Не указана дисциплина") Exit Sub End If ' Очистка области вывода Range("A10:B200") = "" ' Подсчет числа учащихся N = 0 While Worksheets("Учащиеся").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' В следующей переменной мы организуем счетчик фамилий на дан- ном листе NumStud = 0 For i = 1 To N If СStr(Worksheets("Учащиеся").Cells(i + 1, 2).Value) = _ CStr(Plan.Text) Then ' Внесение фамилии Cells(NumStud + 10, 1).Value = _ Worksheets("Учащиеся").Cells(i + 1, 1).Value ' В 100-й столбец записываем номер строки, которая отводится для учащегося Cells(NumStud + 10, 100).Value = i + 1 NumStud = NumStud + 1 End If Next ' Цикл по числу отобранных фамилий For j = 1 To NumStud ' Извлечение номера строки очередного учащегося IndStud = Cells(j + 9, 100).Value ' Извлечение оценки учащегося Osenka = Worksheets("Учащиеся").Cells(IndStud,2 + CInt (NomerDisp)).Value ' Отражение оценки Cells(j + 9, 2).Value = Osenka Next End Sub |
Единственный момент, который следует в ней отметить, связан с сотым столбцом. Его назначение чисто техническое. В данный столбец программно записываются номера строк листа Учащиеся, из которых извлекается информация.
На рис. 5.10 показан результат щелчка на кнопке Заполнить ведомость. Сотрудник теперь может внести необходимые оценки с печатного документа (реальной экзаменационной ведомости). И теперь эти данные необходимо записать на лист Учащиеся. Поэтому перейдем к следующему программному фрагменту, относящемуся к данному листу, — записи информации в базу оценок. Для этого предназначена кнопка Запись, а также соседнее текстовое окно. Процедура, представленная в листинге 5.12, обеспечивает внесение введенных оценок при правильном пароле в текстовом окне.
Рис. 5.10. Извлеченная информация по группе учащихся
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
' Листинг 5.12. Процедура записи информации на лист Учащиеся Private Sub OK_Click() If Pass.Text = "csm" Then ' Подсчет числа фамилий, внесенных на данный лист N = 0 While Cells(N + 10, 1) <> "" N = N + 1 Wend ' В данную ячейку мы предварительно записали номер дисциплины NomerDisp = Cells(6, 4).Value For j = 1 To N ' Получение номера строки с информацией по студенту IndStud = Cells(j + 9, 100).Value ' Получение информацию об оценке с текущего листа Osenka = Cells(j + 9, 2).Value ' Внесение оценки на лист Учащиеся Worksheets("Учащиеся").Cells(IndStud, 2 + NomerDisp).Value = Osenka Next MsgBox ("Информация внесена") Else MsgBox ("Информация не внесена") End If End Sub |
Если теперь после записи оценок повторно извлечь данные, то мы должны получить ту же информацию.
Лист Печатная форма
Кроме электронной ведомости, в реальной работе требуется и печатный вариант для преподавателей во время проведения экзамена или зачета.
На рис. 5.11 представлена эта печатная форма. В ней присутствует традиционная заголовочная часть, а также таблица для внесения оценок. Для автоматического заполнения печатной формы на листе Ведомость следует расположить кнопку Печать (рис. 5.12), и само заполнение производится по щелчку на кнопке.
Более конкретно можно пояснить, что на листе Печатная форма информация с первой по одиннадцатую строки фиксирована (за исключением ячеек, выделенных оттенком). Остальной фрагмент листа формируется программно, исходя из данных, присутствующих на листе Ведомость.
Фактически печатный вариант ведомости является основным и в ряде ситуаций единственным.
Рис. 5.11. Печатная форма экзаменационной ведомости
В листинге 5.13 приведена процедура заполнения печатной формы ведомости.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
' Листинг 5.13. Процедура, выполняемая по щелчку на кнопке Печать Private Sub Prn_Click() ' Заполнение шапки документа Worksheets("Печатная форма").Cells(3, 6) = Plan.Text Worksheets("Печатная форма").Cells(7, 8) = Cells(4, 6) Worksheets("Печатная форма").Cells(3, 5) = Cells(6, 2) Worksheets("Печатная форма").Cells(7, 8) = Cells(6, 3) Worksheets("Печатная форма").Cells(4, 3) = Disp.Text ' Очистка табличной области Worksheets("Печатная форма").Range("A12:M200") = "" ' Удаление границ With Worksheets("Печатная форма").Range("A12:M200") .Borders.LineStyle = xlNone End With ' Подсчет числа студентов в группе N = 0 While Cells(10 + N, 1).Cells <> "" N = N + 1 Wend ' Заполнение печатной формы For i = 1 To N ' Внесение порядкового номера Worksheets("Печатная форма").Cells(i + 11, 1) = i ' Внесение фамилии Worksheets("Печатная форма").Cells(i + 11, 2) = Cells(i + 9, 1) ' Оформление границ ячеек For j = 1 To 8 With Worksheets("Печатная форма").Cells(i + 11, j) .Borders.LineStyle = xlContinuous End With Next Next Worksheets("Печатная форма").Cells(i + 11, 1) = _ " Число студентов на экзамене (зачете) _______________" Worksheets("Печатная форма").Cells(i + 12, 1) = _ " Из них получивших отлично _______________" Worksheets("Печатная форма").Cells(i + 13, 2) = _ " получивших хорошо _______________" Worksheets("Печатная форма").Cells(i + 14, 2) = _ "получивших удовлетворительно _______________" Worksheets("Печатная форма").Cells(i + 15, 2) = _ "получивших неудовлетворительно _______________" Worksheets("Печатная форма").Cells(i + 16, 2) = _ " Число студентов, не явившихся на экзамен (зачет) _________" Worksheets("Печатная форма").Cells(i + 17, 1) = _ "Число студентов, не допущенных к экзамену (зачету) _________" Worksheets("Печатная форма").Cells(i + 19, 4) = "Декан факультета _______________ Ю.В.Воронков " Worksheets("Печатная форма").Activate End Sub |
Рис. 5.12. Добавление кнопки Печать на лист Ведомость
Сводная ведомость
Рассмотрим разработку важного сводного отчета, который называется сводная ведомость. Заполненный вариант этого отчета (для варианта имеющихся в базе учащихся и их оценок) представлен на рис. 5.13. На листе Сводная ведомость три элемента управления: два поля со списком и одна кнопка. Поле со списком (Name — Sem), расположенное рядом с подписью Семестр, предназначено для указания семестра, за который мы собираемся получить сводную ведомость. Другое поле со списком (Name — Plan), расположенное рядом с подписью План, предназначено для указания учебного плана. Кнопка на листе (Name — OK) позволяет заполнить сводную таблицу фамилиями учащихся и их оценками. В листинге 5.14 приведена необходимая техническая процедура, выполняемая при активизации листа и заполняющая поля со списками (семестрыи учебные планы).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
' Листинг 5.14. Процедура, выполняемая при активизации листа Private Sub Worksheet_Activate() Sem.Clear ' При указании числа семестров мы ограничились пятью For i = 1 To 5 Sem.AddItem i Next Plan.Clear N = 0 While Worksheets("Справочник").Cells(N + 1, 1).Value <> "" N = N + 1 Wend For i = 1 To N a = Worksheets("Справочник").Cells(i, 1).Value Plan.AddItem a Next End Sub |
Рис. 5.13. Сводная ведомость
Основное функциональное действие связано со щелчком на кнопке Заполнить таблицу. Для заполнения сводной таблицы просматривается содержание учебных планов, перечень учащихся и их оценки. В листинге 5.15 приведена процедура заполнения сводной таблицы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
' Листинг 5.15. Процедура обработки щелчка на кнопке Заполнить таблицу Private Sub OK_Click() If IsNumeric(Sem.Text) = False Then MsgBox ("Не выбран семестр") Exit Sub End If Semestr = CInt(Sem.Text) ' Очистка области заголовков столбцов Range("B7:Z9") = "" ' Очистка основной области Range("A10:Z200") = "" ' Подсчет общего числа дисциплин N = 0 While Worksheets("Планы").Cells(N + 2, 1).Value <> "" N = N + 1 Wend 'Заполнение дисциплин, попавших в указанный семестр Nom = 2 ' Номер столбца, с которого начинается заполнение ColsDisp = 0 ' Счетчик количества дисциплин For i = 1 To N SemNum = CInt(Worksheets("Планы").Cells(i + 1, 3).Value) If CStr(Worksheets("Планы").Cells(i + 1, 7).Value) = CStr (Plan.Text) And SemNum = Semestr Then ' Внесение названия очередной дисциплины в сводную таблицу Cells(7, Nom).Value = Worksheets("Планы").Cells(i + 1, 2).Value ' Внесение номера семестра Cells(8, Nom).Value = Sem ' Внесение формы отчетности Cells(9, Nom).Value = Worksheets("Планы").Cells(i + 1, 4).Value ' Фиксирование в 200-й строке номера дисциплины Cells(200, Nom).Value = Worksheets("Планы").Cells(i + 1, 1).Value Nom = Nom + 1 ColsDisp = ColsDisp + 1 End If Next ' Подсчет числа студентов Nstud = 0 While Worksheets("Учащиеся").Cells(Nstud + 2, 1).Value <> "" Nstud = Nstud + 1 Wend Num = 0 For i = 1 To Nstud If Worksheets("Учащиеся").Cells(i + 1, 2).Value = Plan Then ' Извлечение очередной фамилии студента, обучающегося по указанному плану a = Worksheets("Учащиеся").Cells(i + 1, 1).Value ' Запись фамилии учащегося в первый столбец Cells(Num + 10, 1).Value = a ' Фиксирование в 100-м столбце номера строки учащегося Cells(Num + 10, 100).Value = i + 1 Num = Num + 1 End If Next ' Внесение оценок For j = 1 To Nstud If CStr(Worksheets("Учащиеся").Cells(j + 1, 2).Value) = CStr (Plan) Then ' Извлечение номера строки студента IndStud = Cells(j + 9, 100).Value For ld = 1 To ColsDisp NumDisp = Cells(200, ld + 1).Value ' Извлечение и фиксирование оценок Osenka = Worksheets("Учащиеся").Cells(IndStud, 2 + NumDisp).Value Cells(j + 9, ld + 1).Value = Osenka Next End If Next End Sub |
Таким образом, мы получили удобный механизм просмотра оценок в определенном интервале семестров. Фактически основные функциональные действия мы рассмотрели. Однако для повышения сервиса работы сделаем еще несколько дополнений в рассматриваемой разработке.
Лист Коррекция
Рассмотренный ранее лист План в процессе работы будет требовать внесения изменений. Эти изменения будут касаться и названия дисциплин, и номера семестра,и числа часов. Однако при этом необходимо обеспечить защиту от изменений кода (порядковый номер) дисциплины.
Это связано с имеющимися оценками по данной дисциплине. И если мы изменим код дисциплины, оценки уже будут относиться к другой дисциплине.
Для удобства коррекции планов мы создадим дополнительный лист, который назовем Коррекция (рис. 5.14). Фактически он будет представлять некий «браузер» для учебных планов.
Рис. 5.14. Лист коррекции учебных планов
Сотрудник, работающий с программой, выбирает интересующий его план в поле со списком. После этого щелчком на кнопке Заполнить рассматриваемый лист заполняется информацией. При этом далее мы обеспечим автоматическую сортировку дисциплин по семестрам. Для заполнения |поля со списком мы воспользуемся процедурой, автоматически выполняемой при активизации листа (листинг 5.16).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
' Листинг 5.16. Процедура Worksheet_Activate Private Sub Worksheet_Activate() Plan.Clear ' Подсчет различных учебных планов N = 0 While Worksheets("Справочник").Cells(N + 1, 1).Value <> "" N = N + 1 Wend ' Заполнение поля со списком For i = 1 To N a = Worksheets("Справочник").Cells(i, 1).Value Plan.AddItem a Next End Sub |
Если в процессе работы сотрудник меняет семестры дисциплин (наиболее частое изменение), то для сортировки можно воспользоваться кнопкой Сортировка по семестрам. В этом случае вы получите пересортированный учебный план прямо на этом листе. Кнопка Внести изменения в план позволяет перенести измененную информацию на лист Планы. Конечно, последовательное нажатие кнопки Внести изменения в план и затем Заполнить позволит получить на листе Коррекция аналогичный результат. Однако по времени этот вариант будет чуть дольше.
Теперь приведем «ключевую» в функциональном плане процедуру (листинг 5.17), которая позволяет заполнять лист информацией.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
' Листинг 5.17. Процедура обработки щелчка на кнопке Заполнить Private Sub OK_Click() If Plan.ListIndex = -1 Then MsgBox ("Не указан поток") Exit Sub End If Range("a11:f200").Value = "" ' Очистка области вывода ' Устранение заливки в области вывода Range("a11:f200").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ColorIndex = 0 End With N = 0 While Worksheets("Планы").Cells(N + 2, 1).Value <> "" N = N + 1 Wend Num = 11 ' Номер строки, с которой начинается вывод информации For i = 1 To N a = Worksheets("Планы").Cells(i + 1, 7).Value ' Если дисциплина соответствует выбранному учебному плану If CStr(a) = CStr(Plan.Text) Then b = Worksheets("Планы").Cells(i + 1, 1).Value ' Код дисциплины ' Перенос на лист параметров дисциплины Cells(num, 1).Value = b Cells(num, 2).Value = Worksheets("Планы").Cells(i + 1, 2).Value Cells(num, 3).Value = Worksheets("Планы").Cells(i + 1, 3).Value Cells(num, 4).Value = Worksheets("Планы").Cells(i + 1, 4).Value Cells(num, 5).Value = Worksheets("Планы").Cells(i + 1, 5).Value Cells(num, 6).Value = Worksheets("Планы").Cells(i + 1, 6).Value num = num + 1 End If Next ' Сортировка по семестрам Range("A11:F110").Select Selection.Sort Key1:=Range("C11"), Order1:=xlAscending, _ Key2:=Range("B11"), Order2:=xlAscending, Key3:=Range("D11"), _ Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, _ MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3: = xlSortNormal N = 0 While Cells(N + 11, 1).Value <> "" N = N + 1 Wend ' Расцветка дисциплин различных семестров For i = 1 To N semestr = Cells(i + 10, 3).Value If semestr Mod 2 = 0 Then Range(Cells(i + 10,1), Cells(i + 10,6)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ColorIndex = 35 End With End If If semestr Mod 2 = 1 Then Range(Cells(i + 10,1), Cells(i + 10,6)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ColorIndex = 40 End With End If Next Range("A1").Select End Sub |
Как уже говорилось, в процессе работы с листом Коррекция может понадобиться процедура, осуществляющая сортировку дисциплин прямо на этом листе. Приведем процедуру (листинг 5.18), выполняющую обыкновенную сортировку но семестрам.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
' Листинг 5.18. Процедура обработки щелчка на кнопке Сортировка по семестрам Private Sub SortSem_Click() Range("A11:F110").Select Selection.Sort Key1:=Range("C11"), Order1:=xlAscending, _ Key2:=Range("B11"), Order2:=xlAscending, Key3:=Range("D11"), _ Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, _ MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3: = xlSortNormal N = 0 While Cells(N + 11, 1).Value <> "" N = N + 1 Wend ' Расцветка дисциплин различных семестров For i = 1 To N semestr = Cells(i + 10, 3).Value If semestr Mod 2 = 0 Then Range(Cells(i + 10,1), Cells(i + 10,6)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ColorIndex = 35 End With End If If semestr Mod 2 = 1 Then Range(Cells(i + 10,1), Cells(i + 10,6)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ColorIndex = 40 End With End If Next Range("A1").Select End Sub |
Не рассмотренной осталась кнопка, обеспечивающая внесение изменений в учебный план. В листинге 5.19 приведена необходимая процедура. Из названия процедуры видно, что для значения свойства Name рассматриваемой кнопки выбрано IzmPlan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
' Листинг 5.19. Процедура обработки щелчка на кнопке Внести изменения в план Private Sub IzmPlan_Click() ' Подсчет дисциплин в листе План N = 0 While Worksheets("Планы").Cells(N + 2, 1).Value <> "" N = N + 1 Wend ' Подсчет дисциплин на данном листе L = 0 While Cells(L + 11, 1).Value <> "" L = L + 1 Wend PlanCorr = Plan.Text For i = 1 To L kod = CInt(Cells(10 + i, 1).Value) ' Код дисциплины на данном листе For j = 1 To N ' Код дисциплины учебного плана kodplan = CInt(Worksheets("Планы").Cells(j + 1, 1).Value) If kodplan = kod And PlanCorr = _ CStr(Worksheets("Планы").Cells(j + 1, 7).Value) Then Worksheets("Планы").Cells(j + 1, 2).Value = Cells(10 + i, 2).Value Worksheets("Планы").Cells(j + 1, 3).Value = Cells(10 + i, 3).Value Worksheets("Планы").Cells(j + 1, 4).Value = Cells(10 + i, 4).Value Worksheets("Планы").Cells(j + 1, 5).Value = Cells(10 + i, 5).Value Worksheets("Планы").Cells(j + 1, 6).Value = Cells(10 + i, 6).Value End If Next Next End Sub |
Практическое занятие по выполнению работы в MS Excel
ЗАДАЧА. Создать таблицу, содержащую
информацию об успеваемости 10 студентов группы в экзаменационную сессию (4
экзамена).
Определить: средний бал для каждого
студента; максимальную оценку, полученную каждым студентом; средний балл для
группы по каждому предмету; процент набранных баллов от максимально возможных;
определить у каждого студента количество предметов, по которым оценка ниже «4»
баллов.
Построить гистограмму средних
баллов по предметам у всей группы.
Ход выполнения работы:
В сроке 1 наберем «Шапку» таблицы (см. Фото на обороте).
Заполним ячейки фамилиями студентов (произвольно). Оценки по предметам
выставляются произвольно.
Столбец «Средний балл» (ячейка G2) рассчитывается по формуле =СРЗНАЧ(C2:F2).
Формула из ячейки G2 копируется в другие ячейки данного столбца напротив фамилий других
студентов, т.е. производные от этой формулы должны быть в ячейках
столбца «Средний балл».
Столбец «Максимальная оценка» (ячейка Н2) содержит
формулу =МАКС(C2:F2). Формула из ячейки Н2 копируется в другие
ячейки данного столбца напротив фамилий других студентов, т.е. производные
от этой формулы должны быть в ячейках столбца «Максимальная оценка».
Столбец «% от максимально возможных» (ячейка I2) рассчитывается по формуле =G2/5. (Примечание!
«5» это максимальная оценка, которую может получить студент). Формат ячейки – процентный.
Формула из ячейки I2 копируется в другие ячейки данного столбца напротив фамилий других
студентов, т.е. производные от этой формулы должны быть в ячейках
столбца «% от максимально возможных».
По строке «Средний балл по предмету» (ячейка С12)
содержит формулу =СРЗНАЧ(C2:C11). Формула из ячейки С12
копируется в другие ячейки этой строки «Средний балл по предмету» напротив
наименования предметов.
По столбцу «Количество предметов, по которым оценки
«3» и ниже» (ячейка J2) рассчитывается по формуле =СЧЁТЕСЛИ(C2:F2;»<4″).
Формула из ячейки J2 копируется в другие ячейки данного столбца напротив фамилий других
студентов, т.е. производные от этой формулы должны быть в ячейках
столбца «Количество предметов, по которым оценки «3» и ниже». Пояснение
формулы: данная ячейка отражает, какое количество оценок по всем
предметам «3» и ниже получил каждый студент.
! Формулы должны «работать», т.е. при
изменении значений (оценок) в ячейках таблицы должны меняться определяемые
показатели.
Построение гистограммы.
Выделяется диапазон ячеек С12:F12. Переходим на закладку Вставка и
выбираем Вставка диаграммы – гистограмма. Корректируем
гистограмму применяя элементы меню: Экспресс-макет, Выбрать данные, Стили
диаграмм, Изменить тип диаграмм и другие инструменты.
Итог работы с таблицей: