Учет успеваемости студентов excel

Библиографическое описание:

Зинова, О. В. Учет успеваемости студентов вуза средствами VBA в системе Excel / О. В. Зинова, Ю. Г. Щепотьева, Э. И. Валиева. — Текст : непосредственный // Актуальные вопросы технических наук : материалы III Междунар. науч. конф. (г. Пермь, апрель 2015 г.). — Пермь : Зебра, 2015. — С. 16-20. — URL: https://moluch.ru/conf/tech/archive/125/7729/ (дата обращения: 17.04.2023).

Приложения комплекта Microsoft Office используются повсеместно.

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

Многие задачи Microsoft Office позволяет выполнить и без программирования, однако одним из наиболее важных и полезных его свойств является возможность автоматизации процессов взаимодействия пользователя и приложений Microsoft Office, которая позволяет решать практически все современные бизнес-задачи: от создания простых документов до полной автоматизации документооборота с использованием систем управления базами данных. Это обстоятельство связано с тем, что все приложения Microsoft Office поддерживают язык программирования Visual Basic for Applications (VBA), совместимый с Visual Basic 6.

Указанные возможности Microsoft Office и языка VBA были использованы при создании приложения, которое позволяет автоматизировать выполнения наиболее трудоемких задач по анализу результатов сессий.

Данное приложение состоит из шести книг: общая книга, 1–5 курс (рис. 1).

 

Рис. 1. Структура приложения

Книги 1–5 курс («1 курс.xlsm» — «5 курс.xlsm»)5 предназначены для ввода и корректировки всей исходной информации по соответствующему курсу. Общая книга («общая.xlsm») используется для автоматизированной обработки введенной информации.

Рассмотрим состав и назначение всех книг приложения.

Каждая из книг 1–5 курс состоит из определенного количества листов в зависимости от количества групп на курсе.

На листах «1», «2» и т. д. (рис. 2) записывается информация о студентах и их оценках за время учебы в ВУЗе. Каждый лист предназначен для одной группы. В первой строке этих листов указывается номера курсов, во второй номера семестров (с 1-го по 10-й).

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

Рис. 2 Книга «1 курс»

После ввода всей исходной информации, т. е. после заполнения книг 1–5 курс, необходимо открыть «Общую книгу» (рис. 3).

Рис. 3 Общая книга

Данная книга состоит из шести листов: «титульный», «список задолжностей», «успеваемость по преподавателям «, «успеваемость по группам», «список отличников», «стипендия». На листе «титульный» расположены списки групп по курсам и кнопка «формирование отчетов». При нажатии на которую появляется форма (рис.4).

Рис. 4. Форма «учет успеваемости»

С помощью элементов управления, расположенных на этой форме пользователь может сформировать нужный ему список для выбранных групп. Листы «Список отличников» и «Список задолжников» предназначены для формирования соответствующих списков, на листах «успеваемость по преподавателям», «успеваемость по группам» выводиться соответствующая успеваемость (рис. 5). На лист «стипендия» выводиться список выбранных групп с размерами академической стипендии.

Рис. 5. Успеваемость по выбранным группам и преподавателям

Компонент listbox позволяет выбирать несколько групп. При выборе формирования отчета по преподавателю осуществляется переход на следующую форму(рис.6). Данная форма позволяет из списка преподавателей выбрать необходимых преподавателей.

Рис.6. Форма для выбора преподавателей

Рассмотрим процедуру, которая формирует список отличников. Для данной процедуры кроме передаваемой информации необходимы еще некоторые переменные:

—        динамический массив otlic(), в который будут записываться фамилии и инициалы отличников, а также курс и группа;

—        r — для подсчета оценок отличных от 5 и не сданных зачетов;

—        ii — для задания размерности динамического массива;

Первоначально ii=0.

Процедура ReDim Preserve otlic(ii,2) необходима для изменения размерности массива без потери записанных данных.

Сначала просматривается курс, записанный в номере группы первым.

k = ListBox1.List(ii)

k1 = Mid$(k, 1, 1) + «курс.xlsm»

k2 = Mid$(k, 2, 1)

Далее открываем книгу с названием курса: Workbooks.Open (ActiveWorkbook.Path & «» & k1)

Высчитываем, с какого столбца начинать проверку оценок: nn =4+Val(Mid$(k,1,1))*30 — q *15, где q — обозначает какую из сессий надо рассматривать (зимнюю — 2, летнюю — 1)

После этого переходим на лист Worksheets(k2).Activate.

Подсчитываем количество оценок, отличных от 5 и не сданных зачетов у каждого студента и если r=0, заносим фамилию и инициалы этого студента в массив otlic:

For t = 4 To Cells(1, 1) + 3

  r = 0

For jj = 4+Val(Mid$(k, 1, 1)) * 30 — q *15 4 + Val(Mid$(k, 1, 1)) * 30 — q *15 + 15

If (Cells(t, jj)<>5) And (Cells(t, jj)<>1) And (Cells(t, jj).Text <>»») Then r=r+1

 Next jj

 If r = 0 Then

           ii = ii + 1

         ReDim Preserve otlic(ii)

         otlic(ii,1) = Cells(k, 2) + » » + Cells(k, 3)

         otlic(ii,2) =k

      End If

Next t

В ячейке Cells(1, 1) подсчитывается количество студентов в данной группе.

После проверки всего курса происходит закрытие книги с этим курсом: Workbooks(k1).Close

После проверки всех выбранных групп переходим на лист «Список отличников» и заполняем его элементами из массива otlic:

   For i = 1 To ii

     Cells(i + 1, 1) = otlic(i,1)

     Cells(i + 1, 2) = otlic(i,2)

   Next i

Таким образом, данное приложение позволяет:

—          составлять списки отличников и задолжников заданных групп за сессию;

—          распределять стипендии;

—          выводить успеваемости по группе, по преподавателю или итоговую успеваемость.

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

Разработанное приложение может быть использовано не только в деканате, но также и в других подразделениях ВУЗа.

Литература:

1.                  Берндт Г., Каинка Б. «Измерение, управление и регулирование с помощью макросов VBA в Word и Excel» 2008 г.

2.                  Л. Д. Слепцова Программирование на VBA в Microsoft Office 2010. — М.: Диалектика, Вильямс, 2010, 432с., самоучитель.

Основные термины (генерируются автоматически): VBA, группа, курс, лист, Общая книга, динамический массив, исходная информация, книга, преподаватель, список отличников.

Лабораторная
работа 7.

I.      Создание
электронного журнала успеваемости в MS Excel

Цель работы: создать
таблицу для подсчета статистики успеваемости  каждого ученика (студента). Для
работы вам потребуется один документ с тремя рабочими листами. Обратите внимание,
что в ходе выполнения заданий вы должны:

— отработать
некоторые приемы работы с комбинированными, сложными функциями, массивами;

— научиться
строить связанные графики.

Рекомендуем для
заполнения формул использовать Мастер функций.

Задание 1.
Заполнение Листа 1

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

Рисунок 1. Список студентов группы

1. На Листе1 создайте надпись
«Список студентов». Оформление выберите на свое усмотрение. Заполните строку 3
(шапку таблицы). Вместо графы «Телефон» можете вписать любой другой пункт,
например, адрес электронной почты, адрес проживания и т.д.

2. Заполните столбец А (порядковый номер
No), с
помощью команды автозаполнение. В графе «Факультет» укажите название своего
факультета (если название длинное, можно вписать аббревиатуру), а в графе
«Группа» — номер своей группы: 126 — цифра 1 – номер курса, цифра 2 – номер
потока, цифра 6 – номер группы на потоке. Скопируйте данные на весь столбик
E и F (10 позиций).
Произвольными данными заполните столбец «Телефон».

3. В ячейках B20:B30
создайте список студентов (10 человек), причем, в одной ячейке, например,
B20, должны
быть написаны и фамилия и имя. Отсортируйте полученный список по алфавиту
(Данные – Сортировка).

4. Затем выполните разделение
списка на два столбца. Для этого: ДанныеТекст по столбцам. В
диалоговом окне разделения текста оставьте формат данных с разделителем. На
втором шаге поставьте галочку в поле «Пробел». На третьем шаге в поле
«Поместить в» мышью выделите ячейки
C4:D13. Нажмите OK.

5. Заполните данные в столбце
«Идентификатор студента». Для этого в ячейку
B4 введите формулу
=СЦЕПИТЬ(
F4;»-«;A4). В
результате этих действий соединяются текстовые данные из ячейки «Номер группы»
и «Порядковый номер». В качестве разделителя мы указали дефис. Вы можете
выбрать свой символ разделителя, например, нижнее подчеркивание или «&» или
др. Скопируйте формулу на весь список.

6. В ячейке H4 вы снова
совместите фамилию и имя студента используя формулу =СЦЕПИТЬ(
C4;»
«;
D4).
Обратите внимание, что в кавычках указан
один пробел.
Скопируйте формулу на весь список.

Задание 2. Заполнение
Листа 2

1. В первой строке сделайте
заголовок таблицы, например, «Таблица успеваемости студентов группы…».
Выделите несколько ячеек этой строчки и объедините их, нажав на кнопку. Выберите произвольный стиль
оформления своего заголовка.

2. Заполните шапку таблицы.
Цветовое и шрифтовое оформление выберите на ваш вкус. Заполните столбец «
No п/п»,
используя функцию автозаполнения.

3. Заполните ячейки «дата
проведения занятий» (
D3 — H3 … ):

 — установите формат ячеек D3 — H3 —
категория — «дата», формат «31 дек.99» (или свой формат)

 — В ячейках D3 и E3 введите
две даты с интервалом в одну неделю, например,
D3 — 01.09.13; E3 —
07.09.13.

— с помощью команды автозаполнения
заполните все остальные ячейки на любые ДВА месяца. В нашем примере указан
только один месяц.

— измените формат всех этих ячеек (D3 — H3): разверните
текст на 90 градусов и установите выравнивание по середине и по горизонтали и
по вертикали (Формат – Ячейка — Выравнивание)

— отформатируйте ширину столбцов:  MS Excel: Формат
– Столбец – Автоподбор ширины.

5. Вернитесь на Лист 2. В столбце “Идентификатор
студента
» создайте выпадающие списки с номером студента. Для этого:-
выделите диапазон
B3 – B12, затем:
Данные – Проверка данных.

MS Excel 2010-2013: Тип
данных – Список. В поле Источник введите выделенный диапазон идентификатора
студентов с Листа 1.
OK. Затем
заполните поля на вкладках Сообщение для ввода и Сообщение об ошибке.

На вкладке Сообщение для
ввода в поле Заголовок укажите свои фамилию и имя, а в поле Сообщение,
например «Выберите данные из списка» или другое сообщение. Оставьте галочку в
поле Отображать подсказку, если ячейка является текущей.

На вкладке Сообщение об ошибке
в поле Заголовок укажите факультет и группу на потоке, например, ППФ21,
а в поле Сообщение об ошибке наберите предупреждение о совершенной
пользователем ошибке при выборе варианта ответа.

MS Excel 2003: обратите внимание,
что данные для Источника должны быть на одном листе с выбранной ячейкой.
Поэтому рекомендуется продублировать на листе 2 в любом свободном месте столбец
с идентификаторами студентов. В более старших версиях MS
Excel можно
данные брать с разных листов.

После этого рядом со всеми
выделенными ячейками появится кнопка выбора варианта.

7. В ячейке C3 должна появляться
фамилия студента в соответсвии с его личным номером. Используйте формулу Поиск
по вертикали
: категория Ссылки и массивыВПР

В первом поле введите адрес ячейки
B3 (Лист 2). Во втором поле укажите диапазон всей таблицы с Листа 1 (ячейки B4
— H13). В третьем поле диалогового окна функции укажите номер столбца из
выделенного вами диапазона, откуда необходимо выбрать данные. В нашем примере
мы должны поместить Фамилию и имя из столбца H. Порядковый номер этого
столца в нашем выделении 7. Это число и нужно указать в поле Номер столбца.

=ВПР(B3;Лист1!B$4:H$13;7)

Скопируйте формулу на весь необходимый
диапазон, используя автозаполнение ячеек. 8. В ячейке L3 подсчитайте
средний балл по тесту, выбрав функцию СРЗНАЧ и выделив диапазон числовых данных
по тесту. В нашем примере =СРЗНАЧ(I3:K3) (категория Статистические) или
=AVERAGE(I3:K3). Скопируйте формулу на весь необходимый диапазон, используя
автозаполнение ячеек.

9. В ячейке L7 подсчитайте,
сколько осталось написать тестов студенту, используя условие, что ячейки с
результатами теста не должны содержать «0», «н», « »:

=СЧЁТЕСЛИ(I3:K3;»»)+СЧЁТЕСЛИ(I3:K3;0)+СЧЁТЕСЛИ(I3:K3;»н»)

В
категории Статистические находится функция {СЧЁТЕСЛИ()}, которая
позволяет сосчитать число значений внутри диапазона, удовлетворяющих заданному
критерию. Синтаксис данной функции: = СЧЁТЕСЛИ (диапазон;критерий)
Где диапазон — это диапазон ячеек, в котором нужно сосчитать число значений,
удовлетворяющих заданному критерию; критерий — критерий в форме числа,
выражения или текста, который определяет, какие ячейки надо подсчитывать.
Например: Функция = СЧЁТЕСЛИ (A1:A7;32) — подсчитывает число значений
равных 32 в диапазоне ячеек A1-A7. В кавычки надо заключать текст (например,  =
СЧЁТЕСЛИ(A1:A7;»яблоки»)
— будут сосчитаны все ячейки, содержащие
слово — яблоки).

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

11. Рассчитайте ранг студента в
общем списке.

Функция
РАНГ() (RANK) категория Статистические вычисляет ранг значения в выборке
(распределения участников по местам). Функция РАНГ() имеет три аргумента.
Первый – число, место (ранг) которого определяется. Второй аргумент ссылка –
диапазон, в котором происходит распределение по местам. В нашем примере это
столбец с суммарно набранным баллом. Диапазон должен быть неизменным,
следовательно, его нужно указать с помощью абсолютной адресаций. Третий
аргумент — Порядок – указатель порядка сортировки. Если третий аргумент 0 или
не указан, места распределяются по убыванию значений (т.е. чем больше – тем
лучше, 1-е место – максимальное значение). Если же поставить 1, то места будут
распределяться по возрастанию (т.е. чем меньше, тем лучше
).

Логическая функция условие: ЕСЛИ()
(IF)

Для
формирования условий в формулах используется функция ЕСЛИ(). Она имеет три
аргумента. Первый аргумент тест – условие, второй аргумент тогда значение –
действия которое совершается при выполнении условия, третий аргумент иначе
значение – действия при не выполнении условия.Пусть, например, ячейка D5
содержит формулу «=ЕСЛИ (A1<100,С2*10,»н/у»)». Если
значение в ячейке A1 меньше 100, то D5 примет значение равное значению ячейки
C2, умноженному на 10. Если же значение в клетке A1 не меньше 100, то ячейка D5
примет текстовое значение — н/у.

11. Ниже таблицы в ячейки D13
К13 введите предполагаемое максимальное количество баллов за каждый
вид заданий. В ячейке N13 выполните автосуммирование этих максимумов. Решите
для себя, при каких условиях студент получит зачет. Например, зачет получает
если набрал не менее 75% от общего количества баллов и сдал все тесты. В нашем
примере формула будет следующей:

=ЕСЛИ(И(N3>=0,75*N$13;M3=0);»зачет»;»нет»).

В
электронных таблицах возможно использование более сложных логических
конструкций с использованием вложенных функций ЕСЛИ(), когда ЕСЛИ()
используется в качестве аргумента другой функции ЕСЛИ(). Например, сложная
функция =ЕСЛИ(A1<100,»утро»,ЕСЛИ(A1=100,»вечер»,C1))

выполняет
следующие действия: если значение в ячейке A1 меньше 100, то выводится
текстовое значение «утро». В противном случае проверяется условие
вложенной функции ЕСЛИ(). Если значение в ячейке A1 равно 100 выводится
текстовое значение «вечер», иначе выводится значение из ячейки C1. Toт
же результат может быть получен с помощью выражения:

=ЕСЛИ(A1<>100,ЕСЛИ(A1<100,»утро»,C1),»вечер»).

При
создании сложных логических конструкций, особенно с большим количеством
вложенных функций ЕСЛИ(), нередко возникают ошибки, связанные с неправильным
синтаксисом логического выражения. Если в ячейке, содержащей формулу, вызвать
«Мастер функций», то будет показана структура формулы. Структура
формулы помогает найти ошибки при большом количестве вложенных функций.

12. Выполните условное
форматирование столбцов «Тесты» и «Зачет», которое позволит в автоматическом
режиме изменять цвет ячейки в зависимости от задаваемого правила. Например,
если тест написан на 0 баллов, ячейка приобретает красный оттенок. Для этого
создайте свои правила:
MS Excel 2003: Формат
– Условное форматирование – Условие
.

MS Excel 2010-2013: Главная –
Условное форматирование – Правила выделения ячеек.

 

Задание 3. Подсчет
статистики данных

12. Подсчитайте частоту появления результатов
по тестам (0, 1, 2, 3), используя функцию ЧАСТОТА (категория Статистические)
.

Функция ЧАСТОТА()(категория
Статистические) служит для подсчета количества значений в массиве
данных, соответствующих определенному классу. Функцией ЧАСТОТА() можно воспользоваться,
например, для подсчета количества учащихся получивших — 5; 4; 3 и 2.

Ниже своей таблицы создайте
фрагмент, аналогичный нижеприведенному:

В нашем примере первый столбик занимает позиции H17
H20. Это так называемый Массив интервалов(Классы).

1) выделить весь диапазон ячеек, в
которых будет располагаться результат подсчёта частот, т.е. I17 — I20.

2) Не снимая выделения вызвать
вставку функции Частота.

3) В поле Массив данных (Классы)
указать диапазон всех ячеек, содержащих результаты тестирования. В поле Массив
интервалов (Классы) ввести диапазон, содержащий возможные варианты оценки
тестирования в нашем случае H17 — H20.

4) нажать сочетание клавиш
Ctrl+Shift+Enter, чтобы вывелся массив чисел. Если этого не сделать, то будет
выведен только один первый результат.

5) Добавьте условное форматирование
к этому диапазону, выбрав опцию «Гистограмма»

Задание 4.
Построение графика успеваемости

Постройте график успеваемости по
столбцу БАЛЛ. Выделите столбец Фамилия и, удерживая клавишу Ctrl, столбец
Балл. Вызовите мастер диаграмм и заполните ВСЕ вкладки и поля
диалогового окна. Диаграмма должна быть ПОЛНОСТЬЮ оформлена (название
диаграммы, подписи под осями, размерность осей и т.д.).

Задание 5.
Заполнение листа 3

На Листе 3 сделайте свой вариант оформления
шапки таблицы, например, похожий на приведенный ниже:

5.1. Объедините ячейки С1-W1,
выровняйте содержимое ячейки по середине.

5.2. Объедините ячейки X1 и X2, Y1
и Y2. Введите в X — «средняя оценка», в Y — «итоговая
оценка», разверните текст на 90 градусов, выровняйте по середине.

5.3. Разделите фамилию и имя в разные
столбцы. Для этого выделите столбец B, далее Данные – Текст по столбцам.
Заполните все поля диалогового окна.

5.4. Оформите таблицу, произвольным
образом выбирая цвета ячеек, обрамление и т.д.

II. Создание
электронного журнала успеваемости в проекте «SmileS.Школьная карта»

1.    Запустите
браузер, наберите в строке адреса https://www.shkolnaya-karta.ru/
и кликните ссылку Демо-версия. Зарегистрируйтесь на данном сайте, указав адрес
своей электронной почты.

2.    Открыв
полученное письмо перейдите по ссылке, выбрав одну из ролей (учитель, директор
и т.д.), ознакомьтесь с возможностями проекта.

3.    Оформите
электронный журнал экспортируя данные с сайта в
MS Word и MS Excel. Сформировать
отчеты.

Инструкция
1
С подсчетом успеваемости учителя-предметники имеют дело в результате анализа проведенной контрольной работы или по итогам четверти, года. А классный руководитель подсчитывает успеваемость класса в целом, по всем учебным дисциплинам. Также учителю необходимо прослеживать динамику успеваемости. Классному руководителю, для того чтобы просчитать успеваемость каждого ученика, необходимо сложить сумму «4» и «5» по всем учебным дисциплинам и поделить на количество этих предметов.
2
Если вам нужно просчитать успеваемость по предмету, то складывайте количество учеников, получивших «4» и «5» по данному предмету и делите на общее количество детей, окончивших без «двоек».
3
Если учитель хочет воспользоваться информационными технологиями, что очень удобно, следует обратить внимание на использование автосуммы. Вам необходимо составить таблицу с оценками для школьников, рассчитать средний балл по каждому предмету: — в столбец А введите данные (фамилии, имена) детей, обучающихся в вашем классе. Отведите ячейку А1 для заголовка и щелкните левой кнопкой мыши по этой ячейке. Введите «Фамилия» в ячейки А2, А3 и др. Вводите следующие данные учеников;
— в строке 1 столбцов B, C, и D введите название учебных дисциплин. Выставьте оценки;
— в конце таблицы заполните строку «Средний балл» ;
— в ячейку B7 введите, используя значок Автосуммы, следующую формулу =СУММ (В2:В6). Поделите все на количество учеников в классе;
— просчитайте по этой же формуле данные в ячейках C7 и D7;
— создайте диаграмму успеваемости учащихся;
— выведите средний балл при помощи круговой диаграммы. По диаграммам хорошо проследить динамику успеваемости.

Построить гистограмму средних баллов студентов за сессию.

Построение любой диаграммы начинается с выделения с помощью мыши ячеек, содержащих исходные данные для диаграммы.

Выделение ячеек с исходными данными. Исходные данные для гистограммы средних баллов – это фамилии студентов (ячейки А3:А15) и значения соответствующих средних баллов (ячейкиF3:F15). Данные ячейки образуют несмежные области таблицы. Для того, чтобы выделить эти несмежные области, сначала проведите мышью по ячейкам А3:А15,затемнажмите клавишу Ctrl и, удерживая ее, проведите по ячейкам F3:F15.Должен получиться результат как на рисунке 4.

Вызов Мастера диаграмм. Найдите на панели инстpументов кнопку (Мастер диаграмм) и щелкните на ней мышью. Откpоется окно диалога Мастеpа диагpамм (рис.5).

Мастер автоматически предлагает тип диагpаммы «Гистограмма». Нажмите кнопку «Далее» для перехода к следующему шагу.

Рис.4. Таблица с выделенными исходными данными для построения гистограммы

Рис.5. Окно Мастера диаграмм

Появится окно, представленное на рис.6. Если исходные данные были выделены правильно, у вас получится такая же диаграмма.

Рис.6. Предварительный вид диаграммы

Нажмите кнопку «Далее» для перехода к следующему шагу.

В появившемся окне найдите поле «Название диаграммы» и введите в него текст «Средние баллы студентов группы ЮР-91».

В поле «Ось Х» введите текст «Средний балл».

Щелкните мышью по полю «Ряд 1» и нажмите клавишу Del (Delete)для удаления этой надписи с поля диаграммы.

Диаграмма приобрела законченный вид. Нажмите кнопку «ГОТОВО». Должна получиться диаграмма, подобная изображенной на рис.7.

Рис. 7. Гистограмма средних баллов студентов

Поделиться:

Воспользуйтесь поиском по сайту:

studopedia.org — Студопедия.Орг — 2014-2023 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с) .

Источник

5. Построение диаграммы успеваемости студентов

5.1. Постройте диаграмму типа Гистограмма по листу первого экзамена, где рядом данных будет столбик оценок студентов за экзамен, подписи оси Х – столбик фамилий и инициалов студентов, имя ряда – наименование дисциплины.

5.2. Добавьте в диаграмму еще два ряда данных – столбцы оценок за второй и третий экзамены. Дайте новым рядам данных соответствующие имена. Дайте название диаграмме и осям.

5.3. Измените цветовое оформление диаграммы по своему вкусу.

5.4. Переместите диаграмму на отдельный лист.

6. Проверка работы

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

6.2. Проверьте работу формул среднего балла и количества сданных экзаменов, изменяя оценки студентов за экзамены. Проверьте вариант трех неявок для одного студента. Объясните возникший эффект.

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

6.4. В блоке расчета среднего балла студентов измените формат ячеек, уменьшив количество знаков после запятой до 0. Убедитесь, что формулы работают с подлинными значениями данных и не зависят от вида вывода на экран, в частности от количества выводимых на экран десятичных знаков. Верните настройку 1 знак после запятой.

6.5. Сохраните файл Итоговая_работа.

Содержание

I. ТЕХНОЛОГИЯ РАБОТЫ В EXCEL с.4

1. Назначение электронных таблиц Excel,

запуск приложения с.4

2. Элементы окна программы Excel с.5

3. Устройство рабочей книги с.7

4. Внесение и редактирование данных,

перемещение, копирование, удаление ячеек с.10

5. Формат ячейки с.14

6. Блоки ячеек и операции с ними с.18

7. Построение формул с.20

8. Использование в формулах встроенных

функций Excel с.22

9. Абсолютные и относительные ссылки,

копирование и перемещение формул с.26

10. Использование в формулах ссылок

на другие листы с.31

11. Логическая функция ЕСЛИ с.33

II. СОЗДАНИЕ И ФОРМАТИРОВАНИЕ

ДИАГРАММ В EXCEL с.38

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

2. Ряды исходных данных, легенда с.41

3. Параметры диаграммы с.44

4. Размещение диаграммы с.46

5. Форматирование области диаграммы, области

построения, рядов данных, осей

и др. элементов с.47

6. Задания повышенной сложности с.48

III. ИТОГОВАЯ РАБОТА ПО EXCEL с.50

1. Начало работы с.50

2. Построение экзаменационной ведомости с.51

3. Листы Экзамен_2, Экзамен_3 и

4. Ведомость назначения на стипендию с.55

5. Построение диаграммы успеваемости студентов с.59

6. Проверка работы с.60

Электронные таблицы Excel: Практическое пособие / авт.-сост. Е. А. Разумовская СПб: СПб юрид. ин-т (филиал) Академии Генеральной прокуратуры РФ, 2009. 62 с.

Источник

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

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

Указания для выполнения. Создайте в Microsoft Excel таблицу результатов успеваемости класса по предложенному образцу (см. рисунок ниже) с использованием расчетных формул.

Порядок выполнения.

Запустите Microsoft Excel. В созданной вновь книге введите данные согласно образцу ( по столбцам «фамилия», «имя», 1, 2, …12, «контрольная»). Данные в строку «среднее» и столбцы «среднее», «тематическая», «сдал/не сдал» не вводите. Отформатируйте таблицу согласно образцу. Измените направление текста в названии столбцов O, P, Q, R. Используя функцию СРЗНАЧ ( ) заполните ячейки строки 10 «среднее» средними значениями по столбцам от С до N. Образец формулы для вычисления в столбце С виден в строке формул на рисунке. В каждом столбце, соответственно будет меняться имя столбца. С помощью этой же функции записать формулы для вычисления в столбце Р «среднее». Используя функцию округления, заполните столбец Q «тематическая». Используя функцию ЕСЛИ, заполните столбец R «сдал/не сдал».

П.5. Вычисление среднего значения.

Выделите ячейку, в которую должны вставить формулу (например, С10). Далее в меню Вставка щелкните Функция – откроется окно Мастер функций. (Можно щелкнуть на значке fx слева от строки формул). В шаге первом выберите функцию СРЗНАЧ из списка. Если в списке такая функция отсутствует, в окне категория выбирите «Полный алфавитный перечень» и найдите ниже в списке. После ОК, откроется окно шага 2.

В поле «Число1» введите адреса ячеек, по значению которых вычисляется среднее значение.

Примечание: в строке формул автоматически появилась функция вычисления среднего значения данных в ячейках интервала с С3 по С9. Выглядит она таким образом

Эту формулу можно набирать непосредственно в ячейке С10, не используя мастер функций. Результат будет такой же.

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

Выбор формата данных в ячейках.

Выделите те ячейки в таблице, в которых вам необходимо, чтобы число (результат вычислений) имело 2 знака после запятой. Это те ячейки, в которые были вставлены формулы. (По умолчанию для всех ячеек в рабочем листе используется Общий формат.)

Выберите в меню Формат – Ячейки (или правой клавишей мыши щелкнуть на ячейке – в контекстном меню выбрать Формат ячеек..).

Перейдите на вкладку Число. В списке Числовые форматы выберите Числовой. В поле Число десятичных знаков, которое необходимо отображать после запятой (в нашем примере 2).

Не забудьте нажать ОК.

Копирование формул в другие ячейки.

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

1. выделите ячейку с веденной в нее формулой. 2. подведите курсор к правому нижнему углу ячейки, он примет вид + . 3. Нажмите левую кнопку мыши, не отпуская ее, переместите указатель до конца диапазона ячеек, в которые вы хотите скопировать формулу. Так как в формуле использовались относительные ссылки, сама программа автоматически изменит адреса ячеек (посмотрите в строку формул, выделив любую ячейку диапазона, и убедитесь.) 4. Аналогичным способом скопируйте формулы в столбцах O, P, Q, R и строке 10.

Функция ОКРУГЛ округляет число до заданного кол-ва десятичных разрядов. В нашем задании ее нужно применить в столбце Q (ТематическаяВыделите первую ячейку в столбце (Q Запустите мастер функций. 3. Выберите функцию ОКРУГЛ. 4. В самой таблице щелкните на ячейку конца диапазона (Р 4), и в диалоговом окне в ячейке Число появится выбранный вами адрес ячейки, а в следующее поле Количество цифр введите 0. Не забудьте ОК.

Логическая функция ЕСЛИ

Функция ЕСЛИ устанавливает одно значение, если заданное условие истинно, и другое — если оно ложно. Например, в нашем задании в столбце R, если тематическая оценка больше 3, то ученик считается сдавшим тему, если нет, то несдавшим.

1. В ячейки диапазона R4: R10 введите формулу =ЕСЛИ(Q4>3;»Сдал»;»Не сдал»), меняя индекс строки в формуле, т. е Q5, Q6 …Q10. Можно использовать Копирование, Автозаполнение.

Источник

Электронные таблицы для подведения итогов успеваемости

Электронные таблицы для подведения итогов успеваемости

Большинство обязанностей распределяется в школе между несколькими завучами так, чтобы не происходило дублирования одних и тех же управленческих функций и оставалось время для аналитической работы. При этом остается целый ряд задач, занимающих много времени, но не являющихся чисто управленческими. К таким задачам можно отнести: учет успеваемости по классам, по предмету или у отдельных педагогов; подведение итогов за год; результаты экзаменов; а также выявление динамики этих числовых показателей успешности работы образовательного учреждения. Всю это работу удобно проводить с помощью компьютера, ведь здесь главное – быстро и правильно провести расчеты, часто требуется строить диаграммы для сравнения по годам, по предметам и т.д. Замечательно, если в Вашей школе установлена и действует одна из компьютерных систем информатизации образовательного пространства, например, программы от фирмы 1С. В этом случае материалы, подобные предложенным в этой статье, уже имеются в Вашем распоряжении. К сожалению, пока еще во многих школах нет специального программного обеспечения. Учителя и администрация придумывают удобные способы обработки и оформления числовых данных посредством офисных программ, а некоторые ведут обычные записи в тетрадях, проводят вычисления с помощью калькулятора.

Используя свой многолетний опыт работы с компьютером, на основе программ Microsoft Office я составила целый ряд различных удобных “заготовок”, в значительной мере упрощающих и ускоряющих подготовку школьной документации, основанной на расчетных таблицах. Так, в приложении Microsoft Excel я решаю многие задачи: составляю школьное расписание, вношу в него изменения по необходимости, готовлю итоговые отчеты по успеваемости (по классам, по предметам, по результатам экзаменов), оформляю все календарные планы своей работы, делаю различные таблицы для удобного отображения результатов внутришкольного контроля. Благодаря широким возможностям электронных таблиц в значительной мере экономится время, упрощается проверка данных, улучшается качество оформления документов для печати, появляется возможность быстро решать проблемы, которые “вручную” решать сложно и долго.

Предлагаю коллегам воспользоваться готовыми таблицами для подведения итогов экзаменов — файл Приложение1.xls. Надеюсь, коллегам пригодятся также мои рекомендации к этим таблицам.

Рекомендации по использованию таблиц и этапы работы с ними

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

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

Чтобы не пришлось восстанавливать формулы, не очищайте содержимое ячеек с формулами в списках классов (они выделены светло-коричневым цветом) и в итоговых таблицах.

1. Листы: Списки 9 классов, Списки 11 классов. Вводим списки учащихся по классам – выполняем это перед составлением расписания экзаменов: лучше списки скопировать из школьной базы данных учащихся, но можно набрать вручную.

На этом же этапе вводим в итоговые таблицы фамилии учителей, преподающих в 9-11 классах – листы: итоги 9 кл, итоги 11 кл.

2. Указываем для каждого учащегося выбранные им экзамены на основании списков, сданных классными руководителями. (См. список 9а класса)

Код 1 в ячейке означает выбор данного экзамена. По обязательным экзаменам у всех учащихся коды = 1.

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

Количество экзаменов по каждому учащемуся – справа в столбце “всего”.

Количество учащихся в классе и в школе, которые должны сдавать данный экзамен (строка “всего”)

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

3. На основании приказа о допуске к экзаменам указать количество допущенных к экзаменам учащихся – на листах итоги 9 кл, итоги 11 кл. (один раз вводим, затем копируем во все таблички по предметам).

4. Вносим экзаменационные отметки и даты проведения экзаменов – из экзаменационных протоколов. В результате заполнятся по формулам ячейки, выделенные цветной заливкой.

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

В целом контрольные цифры на листах со списками показывают:

  1. По каждому учащемуся – количество отметок соответствует выбору экзаменов (так как письменный экзамен по русскому языку оценивается двумя отметками, то у 9-х классов всего должно быть 5 отметок в сессии, а у 11-х классов – 6 отметок)
  2. Общее количество отметок по классу — соответствует числу учеников, умноженному на ту же норму (5 или 6).
  3. Если учащийся сдает экзамены в щадящем режиме, то норма для него отличается. Я выделяю соответствующую строку в списке желтым цветом, добавляю примечание, например, “индив. обучение” и при контроле учитываю разницу.

5. Подготовка к печати.

  1. Листы со списками на печать не выводим – они нужны для контроля, но при необходимости можно их распечатать для классных руководителей. Тогда выбираем из таблицы диапазон с одним классом и предметами, не выводя на печать столбцы контроля (команды Файл – Печать – Выделенный диапазон)
  2. Так как учащиеся выбирают экзамены, то в таблицах с итогами есть пустые строки, их при печати нужно скрыть.
  3. Итоговые таблицы по предметам выводим на печать выборочно — выделить нужную таблицу или несколько таблиц, напечатать диапазон. Не забываем просмотреть перед печатью, настроить поля.

6. При желании можно напечатать диаграммы – сравнить результаты по классам или по предметам. Я привожу (на листе Диаграммы) несколько примеров диаграмм на основе имеющихся таблиц.

Поведение итогов успеваемости за год

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

1) Копируем листы: Списки 9 кл, Итоги 9 кл. Переименовываем листы на 8 кл.

2) Выполняем автоматическую замену на новых листах: Правка – Найти, указываем 9 – Заменить, указываем 8. При этом во всех данных, заголовках и формулах получаем 8 вместо 9.

3) Далее нужно на листах Списки 8 кл и Итоги 8 кл. заменить названия некоторых предметов, изучаемых в 9 классе, на предметы 8 класса.

4) Остается ввести списки 8-х классов и их отметки.

Источник

Adblock
detector

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

Учет успеваемости

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

На рис. 5.1 показан «основной» справочный лист, содержащий перечень дисциплин, входящих в различные учебные планы. В столбце G указывается название плана, а в столбце В — название дисциплины. Каждая дисциплина в определенном учебном плане имеет свой уникальный номер, для которого отведен столбец А.

Рис. 5.1. Лист с информацией об учебных планах

Рис. 5.1. Лист с информацией об учебных планах

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

Рис. 5.2. Лист со справочной информацией

Рис. 5.2. Лист со справочной информацией

В процессе работы список названий учебных планов будет требоваться достаточно часто, поэтому оформим его на отдельном листе, предназначенном для справочных данных (рис. 5.2).

Информация об успеваемости будет храниться на листе Учащиеся (рис. 5.3). Вообще, можно для каждого учащегося ввести уникальный код, который позволит идентифицировать конкретного учащегося, даже если у двух и более человек фамилия и инициалы совпадают. Мы этого не сделали, так как у каждого учащегося имеется реквизит План, значение которого позволит идентифицировать учащихся при совпадении фамилии и инициалов, если они обучаются на разных специальностях. В случае же, если фамилия и инициалы совпадают у студентов одной специальности, то в столбец Учащийся на рис. 5.3 можно добавить уточняющую информацию. Начиная с третьего столбца располагаются столбцы для оценок (Оценка 1 для первой дисциплины учебного плана, Оценка 2 — для второй, и т. д.). Таким образом, комбинация данных с листов Планы и Учащиеся позволяет получить оценки конкретного студента или слушателя.

Рис. 5.3. Организация листа Учащиеся

Рис. 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. Организация просмотра и ввода оценок учащихся

Рис. 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.5. Отображение успеваемости на листе Оценки учащегося

Ввод новых учащихся

Понятно, что в рассматриваемой автоматизированной книге требуется постоянное пополнение списка учащихся. В принципе, добавление можно выполнить прямо на листе Учащиеся, однако для удобства мы создадим еще один лист, Ввод учащихся, который показан на рис. 5.6. Здесь два элемента управления: поле со списком Plan и кнопка ОК. Пользователь (сотрудник учебного заведения) вводит в ячейку C3 фамилию учащегося, выбирает из списка учебных планов учебный план и затем щелчком на кнопке фиксирует информацию на листе Учащиеся.

Рис. 5.6. Лист для ввода новых студентов

Рис. 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). Для имеющихся данных результат ввода продемонстрирован на рис. 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. Организация листа Ведомость

Рис. 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. Результат выбора плана и дисциплины

В качестве примера на рис. 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. Извлеченная информация по группе учащихся

Рис. 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.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.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.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.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

Практическая работа

1. Создать таблицу ведомости успеваемости студентов, в которой рассчитать средний балл каждого студента, в том числе округлённый до десятых и целых чисел, средний балл по каждому предмету, количество студентов, имеющих оценки 5, 4 и 3 по каждому предмету. Определить ранг студента в группе.

№ п/п

ФИО

Соц.психология

Политология

Математика

История

Инж.графика

Тех.механика

Средний балл студента

Средний балл (округл.до десятых)

Средний балл (округл.до целых)

Ранг студента

Багдасарян М.Б.

3

3

3

2

2

3

Гурбанов В.Ф.

3

4

3

4

3

4

Давлатов Б.А.

4

4

4

4

4

4

Звягинцев П.А.

4

5

4

4

4

4

Каменев А.В.

3

3

3

5

3

3

Корягин Н.Е.

3

3

3

4

3

3

Лосев П.В.

4

4

4

5

3

4

Назимов И.И.

4

5

4

5

5

4

Орлов Р.А.

4

4

4

4

3

4

Пешков Н.Ю.

4

4

4

5

4

3

Средний балл по предмету 

Кол-во «5» по предмету 

Кол-во «4» по предмету 

Кол-во «3» по предмету 

Для вычислений использовать функции:

  • СРЗНАЧиз категории Статистические;

  • СЧЁТЕСЛИ из категории Статистические для вычисления количества оценок по предмету;

  • ОКРУГЛТ из категории Математические для округления значения среднего балла;

  • РАНГ из категории Статистические.

Постройте гистограмму по столбцу Средний балл (округл.до десятых).

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

2. Завод выпускает бетонные строительные блоки марки A, B, C, D. Известны характеристики блоков: марка, длина (м), ширина (м), высота (м) и удельный вес бетона, из которого изготовлен блок (кг/м3). На завод поступил заказ, содержащий марки требуемых блоков и количество блоков каждой марки. Составить таблицу заказа и определить, сколько вагонов потребуется для отправки блоков заказчику. Блоки разной марки не могут находиться в одном вагоне. Грузоподъемность одного вагона 60 тонн. Таблицы должны иметь вид;

Характеристики блоков

Марка

Длина, м

Ширина, м

Высота, м

Уд.вес кг/м3

Вес 1 блока, кг

А

0,5

0,3

0,3

200

В

0,4

0,2

0,2

220

С

0,3

0,2

0,3

320

D

0,35

0,2

0,15

180

Заказы

Марка

Кол-во

Вес блоков, т

Кол-во вагонов

А

25000

В

10000

С

15000

D

24000

Всего вагонов

Для вычисления количества вагонов использовать функцию ОКРУГЛВВЕРХ из категории Математические.

Понравилась статья? Поделить с друзьями:
  • Файл excel занят мной
  • Учет транспортного средства в excel
  • Файл excel занимает много места
  • Учет только рабочих дней excel
  • Файл excel закрывается сам