Практическая работа.
Составление сводной ведомости оценок и ведомости
пропусков занятий.
Лист1.
1. Для
вычисления Среднего балла используйте функцию СРЗНАЧ.
2. Для
вычисления количества оценок используйте функцию СЧЁТЕСЛИ. (В качестве
критерия указывайте оценку, подсчёт которых производите).
3. Для
вычисления места в рейтинге используйте функцию РАНГ. ( В качестве числа
используйте ячейку, содержащую средний балл. В качестве ссылки диапазон ячеек
со средним баллом. Внимание: Имена ячеек в указанном диапазоне должны
быть заморожены).
4. Для
вычисления Максимального и Минимального значений используйте функцию МАКС и
МИН.
5. Постройте
график (Вставка – График), отображающий ваши оценки (предварительно
выделите строку со своими оценками). Введите название графика: «Оценки
курсанта ФИО». По горизонтальной оси должны располагаться названия
дисциплин (Конструктор – Выбрать данные – Подписи горизонтальной оси –
Изменить).
Подпишите
горизонтальную ось (Названия дисциплин) и вертикальную ось (Оценки).
Добавьте
подписи данных, основные и промежуточные линии сетки. (пункт меню Макет).
6. Постройте гистограмму, отображающую
средний балл каждого курсанта.
По горизонтальной
оси должны располагаться фамилии курсантов
Также, как и для
первого графика подпишите название гистограммы, подписи горизонтальной и
вертикальной оси, подписи данных, линии сетки.
Лист2.
1. Для
вычисления количества пропусков используйте Автосумму.
2. Место в
антирейтинге – функция РАНГ.
3. Процент
пропущенных занятий =количество пропущенных занятий*100/общее количество
занятий за указанный промежуток времени. (для каждого курсанта).
4. Общее
количество пропущенных занятий в процентах = общее количество пропущенных
занятий*100/всего занятий за указанный промежуток времени (для всех курсантов
группы).
5. Постройте
график, отражающий ваши пропуски занятий за указанный промежуток времени.
6. Постройте
гистограмму, отражающую количество пропусков занятий для всех курсантов группы.
Примечание:
график
и гистограмма должны быть оформлены, как и на первом листе (со всеми
подписями).
В настоящее время количество учебных заведений значительно возросло. Рынок коммерческого образования охватил практически все крупные и средние города. Организация учебного процесса требует автоматизации различных участков работы. Учет успеваемости, оплаты и распределения аудиторного фонда организуется с помощью разнообразных средств автоматизации. В этой статье мы рассмотрим несколько задач, связанных с разработкой автоматизированных рабочих книг, направленных на улучшение организации учебного процесса.
Учет успеваемости
Первая задача, которую мы рассмотрим, относится к учету успеваемости учащихся. Наша цель заключается в разработке удобного механизма выставления оценок и получения сводных отчетов по успеваемости. Книга будет представлять собой несколько листов, которые по функциональному назначению можно разделить на справочные и листы управления.
На рис. 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. С их помощью можно в считанные секунды преобразовать миллион строк данных в краткий отчет. Помимо быстрого подведения итогов, сводные таблицы позволяют буквально «на лету» изменять способ анализа путем перетаскивания полей из одной области отчета в другую.
Cводная таблица в Эксель – это также один из самых недооцененных инструментов. Большинство пользователей не подозревает, какие возможности находятся в их руках. Представим, что сводные таблицы еще не придумали. Вы работаете в компании, которая продает свою продукцию различным клиентам. Для простоты в ассортименте только 4 позиции. Продукцию регулярно покупает пара десятков клиентов, которые находятся в разных регионах. Каждая сделка заносится в базу данных и представляет отдельную строку.
Ваш директор дает указание сделать краткий отчет о продажах всех товаров по регионам (областям). Решить задачу можно следующим образом.
Вначале создадим макет таблицы, то есть шапку, состоящую из уникальных значений товаров и регионов. Сделаем копию столбца с товарами и удалим дубликаты. Затем с помощью специальной вставки транспонируем столбец в строку. Аналогично поступаем с областями, только без транспонирования. Получим шапку отчета.
Данную табличку нужно заполнить, т.е. просуммировать выручку по соответствующим товарам и регионам. Это нетрудно сделать с помощью функции СУММЕСЛИМН. Также добавим итоги. Получится сводный отчет о продажах в разрезе область-продукция.
Вы справились с заданием и показываете отчет директору. Посмотрев на таблицу, он генерирует сразу несколько замечательных идей.
— Можно ли отчет сделать не по выручке, а по прибыли?
— Можно ли товары показать по строкам, а регионы по столбцам?
— Можно ли такие таблицы делать для каждого менеджера в отдельности?
Даже если вы опытный пользователь Excel, на создание новых отчетов потребуется немало времени. Это уже не говоря о возможных ошибках. Однако если вы знаете, как сделать сводную таблицу в Эксель, то ответите: да, мне нужно 5 минут, возможно, меньше.
Рассмотрим, как создать сводную таблицу в Excel.
Открываем исходные данные. Сводную таблицу можно строить по обычному диапазону, но правильнее будет преобразовать его в таблицу Excel. Это сразу решит вопрос с автоматическим захватом новых данных. Выделяем любую ячейку и переходим во вкладку Вставить. Слева на ленте находятся две кнопки: Сводная таблица и Рекомендуемые сводные таблицы.
Если Вы не знаете, каким образом организовать имеющиеся данные, то можно воспользоваться командой Рекомендуемые сводные таблицы. Эксель на основании ваших данных покажет миниатюры возможных макетов.
Кликаете на подходящий вариант и сводная таблица готова. Остается ее только довести до ума, так как вряд ли стандартная заготовка полностью совпадет с вашими желаниями. Если же нужно построить сводную таблицу с нуля, или у вас старая версия программы, то нажимаете кнопку Сводная таблица. Появится окно, где нужно указать исходный диапазон (если активировать любую ячейку Таблицы Excel, то он определится сам) и место расположения будущей сводной таблицы (по умолчанию будет выбран новый лист).
Обычно ничего менять здесь не нужно. После нажатия Ок будет создан новый лист Excel с пустым макетом сводной таблицы.
Макет таблицы настраивается в панели Поля сводной таблицы, которая находится в правой части листа.
В верхней части панели находится перечень всех доступных полей, то есть столбцов в исходных данных. Если в макет нужно добавить новое поле, то можно поставить галку напротив – эксель сам определит, где должно быть размещено это поле. Однако угадывает далеко не всегда, поэтому лучше перетащить мышью в нужное место макета. Удаляют поля также: снимают флажок или перетаскивают назад.
Сводная таблица состоит из 4-х областей, которые находятся в нижней части панели: значения, строки, столбцы, фильтры. Рассмотрим подробней их назначение.
Область значений – это центральная часть сводной таблицы со значениями, которые получаются путем агрегирования выбранным способом исходных данных.
В большинстве случае агрегация происходит путем Суммирования. Если все данные в выбранном поле имеют числовой формат, то Excel назначит суммирование по умолчанию. Если в исходных данных есть хотя бы одна текстовая или пустая ячейка, то вместо суммы будет подсчитываться Количество ячеек. В нашем примере каждая ячейка – это сумма всех соответствующих товаров в соответствующем регионе.
В ячейках сводной таблицы можно использовать и другие способы вычисления. Их около 20 видов (среднее, минимальное значение, доля и т.д.). Изменить способ расчета можно несколькими способами. Самый простой, это нажать правой кнопкой мыши по любой ячейке нужного поля в самой сводной таблице и выбрать другой способ агрегирования.
Область строк – названия строк, которые расположены в крайнем левом столбце. Это все уникальные значения выбранного поля (столбца). В области строк может быть несколько полей, тогда таблица получается многоуровневой. Здесь обычно размещают качественные переменные типа названий продуктов, месяцев, регионов и т.д.
Область столбцов – аналогично строкам показывает уникальные значения выбранного поля, только по столбцам. Названия столбцов – это также обычно качественный признак. Например, годы и месяцы, группы товаров.
Область фильтра – используется, как ясно из названия, для фильтрации. Например, в самом отчете показаны продукты по регионам. Нужно ограничить сводную таблицу какой-то отраслью, определенным периодом или менеджером. Тогда в область фильтров помещают поле фильтрации и там уже в раскрывающемся списке выбирают нужное значение.
С помощью добавления и удаления полей в указанные области вы за считанные секунды сможете настроить любой срез ваших данных, какой пожелаете.
Посмотрим, как это работает в действии. Создадим пока такую же таблицу, как уже была создана с помощью функции СУММЕСЛИМН. Для этого перетащим в область Значения поле «Выручка», в область Строки перетащим поле «Область» (регион продаж), в Столбцы – «Товар».
В результате мы получаем настоящую сводную таблицу.
На ее построение потребовалось буквально 5-10 секунд.
Работа со сводными таблицами в Excel
Изменить существующую сводную таблицу также легко. Посмотрим, как пожелания директора легко воплощаются в реальность.
Заменим выручку на прибыль.
Товары и области меняются местами также перетягиванием мыши.
Для фильтрации сводных таблиц есть несколько инструментов. В данном случае просто поместим поле «Менеджер» в область фильтров.
На все про все ушло несколько секунд. Вот, как работать со сводными таблицами. Конечно, не все задачи столь тривиальные. Бывают и такие, что необходимо использовать более замысловатый способ агрегации, добавлять вычисляемые поля, условное форматирование и т.д. Но об этом в другой раз.
Источник данных сводной таблицы Excel
Для успешной работы со сводными таблицами исходные данные должны отвечать ряду требований. Обязательным условием является наличие названий над каждым полем (столбцом), по которым эти поля будут идентифицироваться. Теперь полезные советы.
1. Лучший формат для данных – это Таблица Excel. Она хороша тем, что у каждого поля есть наименование и при добавлении новых строк они автоматически включаются в сводную таблицу.
2. Избегайте повторения групп в виде столбцов. Например, все даты должны находиться в одном поле, а не разбиты по месяцам в отдельных столбцах.
3. Уберите пропуски и пустые ячейки иначе данная строка может выпасть из анализа.
4. Применяйте правильное форматирование к полям. Числа должны быть в числовом формате, даты должны быть датой. Иначе возникнут проблемы при группировке и математической обработке. Но здесь эксель вам поможет, т.к. сам неплохо определяет формат данных.
В целом требований немного, но их следует знать.
Обновление данных в сводной таблице Excel
Если внести изменения в источник (например, добавить новые строки), сводная таблица не изменится, пока вы ее не обновите через правую кнопку мыши
или
через команду во вкладке Данные – Обновить все.
Так сделано специально из-за того, что сводная таблица занимает много места в оперативной памяти. Чтобы расходовать ресурсы компьютера более экономно, работа идет не напрямую с источником, а с кэшем, где находится моментальный снимок исходных данных.
Зная, как делать сводные таблицы в Excel даже на таком базовом уровне, вы сможете в разы увеличить скорость и качество обработки больших массивов данных.
Ниже находится видеоурок о том, как в Excel создать простую сводную таблицу.
Скачать файл с примером.
Поделиться в социальных сетях:
#Руководства
- 13 май 2022
-
0
Как систематизировать тысячи строк и преобразовать их в наглядный отчёт за несколько минут? Разбираемся на примере с квартальными продажами автосалона
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Сводная таблица — инструмент для анализа данных в Excel. Она собирает информацию из обычных таблиц, обрабатывает её, группирует в блоки, проводит необходимые вычисления и показывает итог в виде наглядного отчёта. При этом все параметры этого отчёта пользователь может настроить под себя и свои потребности.
Разберёмся, для чего нужны сводные таблицы. На конкретном примере покажем, как их создать, настроить и использовать. В конце расскажем, можно ли делать сводные таблицы в «Google Таблицах».
Сводные таблицы удобно применять, когда нужно сформировать отчёт на основе большого объёма информации. Они суммируют значения, расположенные не по порядку, группируют данные из разных участков исходной таблицы в одном месте и сами проводят дополнительные расчёты.
Вид сводной таблицы можно настраивать под себя самостоятельно парой кликов мыши — менять расположение строк и столбцов, фильтровать итоги и переносить блоки отчёта с одного места в другое для лучшей наглядности.
Разберём на примере. Представьте небольшой автосалон, в котором работают три менеджера по продажам. В течение квартала данные об их продажах собирались в обычную таблицу: модель автомобиля, его характеристики, цена, дата продажи и ФИО продавца.
Скриншот: Skillbox Media
В конце квартала планируется выдача премий. Нужно проанализировать, кто принёс больше прибыли салону. Для этого нужно сгруппировать все проданные автомобили под каждым менеджером, рассчитать суммы продаж и определить итоговый процент продаж за квартал.
Разберёмся пошагово, как это сделать с помощью сводной таблицы.
Создаём сводную таблицу
Чтобы сводная таблица сработала корректно, важно соблюсти несколько требований к исходной:
- у каждого столбца исходной таблицы есть заголовок;
- в каждом столбце применяется только один формат — текст, число, дата;
- нет пустых ячеек и строк.
Теперь переходим во вкладку «Вставка» и нажимаем на кнопку «Сводная таблица».
Скриншот: Skillbox Media
Появляется диалоговое окно. В нём нужно заполнить два значения:
- диапазон исходной таблицы, чтобы сводная могла забрать оттуда все данные;
- лист, куда она перенесёт эти данные для дальнейшей обработки.
В нашем случае выделяем весь диапазон таблицы продаж вместе с шапкой. И выбираем «Новый лист» для размещения сводной таблицы — так будет проще перемещаться между исходными данными и сводным отчётом. Жмём «Ок».
Скриншот: Skillbox Media
Excel создал новый лист. Для удобства можно сразу переименовать его.
Слева на листе расположена область, где появится сводная таблица после настроек. Справа — панель «Поля сводной таблицы», в которые мы будем эти настройки вносить. В следующем шаге разберёмся, как пользоваться этой панелью.
Скриншот: Skillbox Media
Настраиваем сводную таблицу и получаем результат
В верхней части панели настроек находится блок с перечнем возможных полей сводной таблицы. Поля взяты из заголовков столбцов исходной таблицы: в нашем случае это «Марка, модель», «Цвет», «Год выпуска», «Объём», «Цена», «Дата продажи», «Продавец».
Нижняя часть панели настроек состоит из четырёх областей — «Значения», «Строки», «Столбцы» и «Фильтры». У каждой области своя функция:
- «Значения» — проводит вычисления на основе выбранных данных из исходной таблицы и относит результаты в сводную таблицу. По умолчанию Excel суммирует выбранные данные, но можно выбрать другие действия. Например, рассчитать среднее, показать минимум или максимум, перемножить.
Если данные выбранного поля в числовом формате, программа просуммирует их значения (например, рассчитает общую стоимость проданных автомобилей). Если формат данных текстовый — программа покажет количество ячеек (например, определит количество проданных авто).
- «Строки» и «Столбцы» — отвечают за визуальное расположение полей в сводной таблице. Если выбрать строки, то поля разместятся построчно. Если выбрать столбцы — поля разместятся по столбцам.
- «Фильтры» — отвечают за фильтрацию итоговых данных в сводной таблице. После построения сводной таблицы панель фильтров появляется отдельно от неё. В ней можно выбрать, какие данные нужно показать в сводной таблице, а какие — скрыть. Например, можно показывать продажи только одного из менеджеров или только за выбранный период.
Настроить сводную таблицу можно двумя способами:
- Поставить галочку напротив нужного поля — тогда Excel сам решит, где нужно разместить это значение в сводной таблице, и сразу заберёт его туда.
- Выбрать необходимые для сводной таблицы поля из перечня и перетянуть их в нужную область вручную.
Первый вариант не самый удачный: Excel редко ставит данные так, чтобы с ними было удобно работать, поэтому сводная таблица получается неинформативной. Остановимся на втором варианте — он предполагает индивидуальные настройки для каждого отчёта.
В случае с нашим примером нужно, чтобы сводная таблица отразила ФИО менеджеров по продаже, проданные автомобили и их цены. Остальные поля — технические характеристики авто и дату продажи — можно будет использовать для фильтрации.
Таблица получится наглядной, если фамилии менеджеров мы расположим построчно. Находим в верхней части панели поле «Продавец», зажимаем его мышкой и перетягиваем в область «Строки».
После этого в левой части листа появится первый блок сводной таблицы: фамилии менеджеров по продажам.
Скриншот: Skillbox
Теперь добавим модели автомобилей, которые эти менеджеры продали. По такому же принципу перетянем поле «Марка, модель» в область «Строки».
В левую часть листа добавился второй блок. При этом сводная таблица сама сгруппировала все автомобили по менеджерам, которые их продали.
Скриншот: Skillbox Media
Определяем, какая ещё информация понадобится для отчётности. В нашем случае — цены проданных автомобилей и их количество.
Чтобы сводная таблица самостоятельно суммировала эти значения, перетащим поля «Марка, модель» и «Цена» в область «Значения».
Скриншот: Skillbox Media
Теперь мы видим, какие автомобили продал каждый менеджер, сколько и по какой цене, — сводная таблица самостоятельно сгруппировала всю эту информацию. Более того, напротив фамилий менеджеров можно посмотреть, сколько всего автомобилей они продали за квартал и сколько денег принесли автосалону.
По такому же принципу можно добавлять другие поля в необходимые области и удалять их оттуда — любой срез информации настроится автоматически. В нашем примере внесённых данных в сводной таблице будет достаточно. Ниже рассмотрим, как настроить фильтры для неё.
Настраиваем фильтры сводной таблицы
Чтобы можно было фильтровать информацию сводной таблицы, нужно перенести требуемые поля в область «Фильтры».
В нашем примере перетянем туда все поля, не вошедшие в основной состав сводной таблицы: объём, дату продажи, год выпуска и цвет.
Скриншот: Skillbox Media
Для примера отфильтруем данные по году выпуска: настроим фильтр так, чтобы сводная таблица показала только проданные авто 2017 года.
В блоке фильтров нажмём на стрелку справа от поля «Год выпуска»:
Скриншот: Skillbox Media
В появившемся окне уберём галочку напротив параметра «Выделить все» и поставим её напротив параметра «2017». Закроем окно.
Скриншот: Skillbox Media
Теперь сводная таблица показывает только автомобили 2017 года выпуска, которые менеджеры продали за квартал. Чтобы снова показать таблицу в полном объёме, нужно в том же блоке очистить установленный фильтр.
Скриншот: Skillbox Media
Фильтры можно выбирать и удалять как удобно — в зависимости от того, какую информацию вы хотите увидеть в сводной таблице.
Проводим дополнительные вычисления
Сейчас в нашей сводной таблице все продажи менеджеров отображаются в рублях. Предположим, нам нужно понять, каков процент продаж каждого продавца в общем объёме. Можно рассчитать это вручную, а можно воспользоваться дополнениями сводных таблиц.
Кликнем правой кнопкой на любое значение цены в таблице. Выберем параметр «Дополнительные вычисления», затем «% от общей суммы».
Скриншот: Skillbox
Теперь вместо цен автомобилей в рублях отображаются проценты: какой процент каждый проданный автомобиль составил от общей суммы продаж всего автосалона за квартал. Проценты напротив фамилий менеджеров — их общий процент продаж в этом квартале.
Скриншот: Skillbox Media
Можно свернуть подробности с перечнями автомобилей, кликнув на знак – слева от фамилии менеджера. Тогда таблица станет короче, а данные, за которыми мы шли, — кто из менеджеров поработал лучше в этом квартале, — будут сразу перед глазами.
Скриншот: Skillbox Media
Чтобы снова раскрыть данные об автомобилях — нажимаем +.
Чтобы значения снова выражались в рублях — через правый клик мыши возвращаемся в «Дополнительные вычисления» и выбираем «Без вычислений».
Обновляем данные сводной таблицы
Предположим, в исходную таблицу внесли ещё две продажи последнего дня квартала.
Скриншот: Skillbox
В сводную таблицу эти данные самостоятельно не добавятся — изменился диапазон исходной таблицы. Поэтому нужно поменять первоначальные параметры.
Переходим на лист сводной таблицы. Во вкладке «Анализ сводной таблицы» нажимаем кнопку «Изменить источник данных».
Скриншот: Skillbox Media
Кнопка переносит нас на лист исходной таблицы, где нужно выбрать новый диапазон. Добавляем в него две новые строки и жмём «ОК».
Скриншот: Skillbox Media
После этого данные в сводной таблице меняются автоматически: у менеджера Трегубова М. вместо восьми продаж становится десять.
Скриншот: Skillbox Media
Когда в исходной таблице нужно изменить информацию в рамках текущего диапазона, данные в сводной таблице автоматически не изменятся. Нужно будет обновить их вручную.
Например, поменяем цены двух автомобилей в таблице с продажами.
Скриншот: Skillbox Media
Чтобы данные сводной таблицы тоже обновились, переходим на её лист и во вкладке «Анализ сводной таблицы» нажимаем кнопку «Обновить».
Теперь у менеджера Соколова П. изменились данные в столбце «Цена, руб.».
Скриншот: Skillbox Media
Как использовать сводные таблицы в «Google Таблицах»? Нужно перейти во вкладку «Вставка» и выбрать параметр «Создать сводную таблицу». Дальнейший ход действий такой же, как и в Excel: выбрать диапазон таблицы и лист, на котором её нужно построить; затем перейти на этот лист и в окне «Редактор сводной таблицы» указать все требуемые настройки. Результат примет такой вид:
Скриншот: Skillbox Media
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Содержание
- Лабораторная работа по теме: «Создание электронного журнала успеваемости в MS Excel»
- Как Сделать Таблицу Успеваемости в Excel • Умная таблица
- Таблица Эксель — Cоздание и настройка работы 2019
- Создание таблицы
Лабораторная работа по теме: «Создание электронного журнала успеваемости в MS Excel»
Лабораторная работа 7.
I. Создание электронного журнала успеваемости в MS Excel
Цель работы: создать таблицу для подсчета статистики успеваемости каждого ученика (студента). Для работы вам потребуется один документ с тремя рабочими листами. Обратите внимание, что в ходе выполнения заданий вы должны:
— отработать некоторые приемы работы с комбинированными, сложными функциями, массивами;
— научиться строить связанные графики.
Рекомендуем для заполнения формул использовать Мастер функций.
Задание 1. Заполнение Листа 1
Создать список учащихся (студентов) из десяти произвольных фамилий, включая свою. После выполнения действий п. 1-5 у вас должна получиться таблица, аналогичная приведенной на рисунке 1.
Рисунок 1. Список студентов группы
1. На Листе1 создайте надпись «Список студентов». Оформление выберите на свое усмотрение. Заполните строку 3 (шапку таблицы). Вместо графы «Телефон» можете вписать любой другой пункт, например, адрес электронной почты, адрес проживания и т.д.
2. Заполните столбец А (порядковый номер No ), с помощью команды автозаполнение. В графе «Факультет» укажите название своего факультета (если название длинное, можно вписать аббревиатуру), а в графе «Группа» — номер своей группы: 126 — цифра 1 – номер курса, цифра 2 – номер потока, цифра 6 – номер группы на потоке. Скопируйте данные на весь столбик E и F (10 позиций). Произвольными данными заполните столбец «Телефон».
3. В ячейках B 20: B 30 создайте список студентов (10 человек), причем, в одной ячейке, например, B 20, должны быть написаны и фамилия и имя. Отсортируйте полученный список по алфавиту (Данные – Сортировка).
4. Затем выполните разделение списка на два столбца. Для этого: Данные – Текст по столбцам. В диалоговом окне разделения текста оставьте формат данных с разделителем. На втором шаге поставьте галочку в поле «Пробел». На третьем шаге в поле «Поместить в» мышью выделите ячейки C 4: D 13 . Нажмите OK .
5. Заполните данные в столбце «Идентификатор студента». Для этого в ячейку B 4 введите формулу =СЦЕПИТЬ( F 4;»-«; A 4). В результате этих действий соединяются текстовые данные из ячейки «Номер группы» и «Порядковый номер». В качестве разделителя мы указали дефис. Вы можете выбрать свой символ разделителя, например, нижнее подчеркивание или «&» или др. Скопируйте формулу на весь список.
6. В ячейке H 4 вы снова совместите фамилию и имя студента используя формулу =СЦЕПИТЬ( C 4;» «; D 4). Обратите внимание, что в кавычках указан один пробел. Скопируйте формулу на весь список.
Задание 2. Заполнение Листа 2
1. В первой строке сделайте заголовок таблицы, например, «Таблица успеваемости студентов группы. ». Выделите несколько ячеек этой строчки и объедините их, нажав на кнопку. Выберите произвольный стиль оформления своего заголовка.
2. Заполните шапку таблицы. Цветовое и шрифтовое оформление выберите на ваш вкус. Заполните столбец « No п/п», используя функцию автозаполнения.
3. Заполните ячейки «дата проведения занятий» ( D 3 — H 3 . ):
— установите формат ячеек D 3 — H 3 — категория — «дата», формат «31 дек.99» (или свой формат)
— В ячейках D 3 и E 3 введите две даты с интервалом в одну неделю, например, D 3 — 01.09.13; E 3 — 07.09.13.
— с помощью команды автозаполнения заполните все остальные ячейки на любые ДВА месяца. В нашем примере указан только один месяц.
— измените формат всех этих ячеек ( D 3 — H 3): разверните текст на 90 градусов и установите выравнивание по середине и по горизонтали и по вертикали (Формат – Ячейка — Выравнивание)
— отформатируйте ширину столбцов: MS Excel : Формат – Столбец – Автоподбор ширины.
5. Вернитесь на Лист 2. В столбце “Идентификатор студента» создайте выпадающие списки с номером студента. Для этого:- выделите диапазон B 3 – B 12, затем: Данные – Проверка данных.
MS Excel 2010-2013: Тип данных – Список. В поле Источник введите выделенный диапазон идентификатора студентов с Листа 1. OK . Затем заполните поля на вкладках Сообщение для ввода и Сообщение об ошибке.
На вкладке Сообщение для ввода в поле Заголовок укажите свои фамилию и имя, а в поле Сообщение, например «Выберите данные из списка» или другое сообщение. Оставьте галочку в поле Отображать подсказку, если ячейка является текущей.
На вкладке Сообщение об ошибке в поле Заголовок укажите факультет и группу на потоке, например, ППФ21, а в поле Сообщение об ошибке наберите предупреждение о совершенной пользователем ошибке при выборе варианта ответа.
MS Excel 2003: обратите внимание, что данные для Источника должны быть на одном листе с выбранной ячейкой. Поэтому рекомендуется продублировать на листе 2 в любом свободном месте столбец с идентификаторами студентов. В более старших версиях MS Excel можно данные брать с разных листов.
После этого рядом со всеми выделенными ячейками появится кнопка выбора варианта.
7. В ячейке C3 должна появляться фамилия студента в соответсвии с его личным номером. Используйте формулу Поиск по вертикали: категория Ссылки и массивы –ВПР
В первом поле введите адрес ячейки B3 (Лист 2). Во втором поле укажите диапазон всей таблицы с Листа 1 (ячейки B4 — H13). В третьем поле диалогового окна функции укажите номер столбца из выделенного вами диапазона, откуда необходимо выбрать данные. В нашем примере мы должны поместить Фамилию и имя из столбца H. Порядковый номер этого столца в нашем выделении 7. Это число и нужно указать в поле Номер столбца.
Скопируйте формулу на весь необходимый диапазон, используя автозаполнение ячеек. 8. В ячейке L3 подсчитайте средний балл по тесту, выбрав функцию СРЗНАЧ и выделив диапазон числовых данных по тесту. В нашем примере =СРЗНАЧ(I3:K3) (категория Статистические) или =AVERAGE(I3:K3). Скопируйте формулу на весь необходимый диапазон, используя автозаполнение ячеек.
9. В ячейке L7 подсчитайте, сколько осталось написать тестов студенту, используя условие, что ячейки с результатами теста не должны содержать «0», «н», « »:
В категории Статистические находится функция <СЧЁТЕСЛИ()>, которая позволяет сосчитать число значений внутри диапазона, удовлетворяющих заданному критерию. Синтаксис данной функции: = СЧЁТЕСЛИ (диапазон;критерий) Где диапазон — это диапазон ячеек, в котором нужно сосчитать число значений, удовлетворяющих заданному критерию; критерий — критерий в форме числа, выражения или текста, который определяет, какие ячейки надо подсчитывать. Например: Функция = СЧЁТЕСЛИ (A1:A7;32) — подсчитывает число значений равных 32 в диапазоне ячеек A1-A7. В кавычки надо заключать текст (например, = СЧЁТЕСЛИ(A1:A7;»яблоки») — будут сосчитаны все ячейки, содержащие слово — яблоки).
10.Для подсчета суммарного балла используйте функцию автосуммирования по строке.
11. Рассчитайте ранг студента в общем списке.
Функция РАНГ() (RANK) категория Статистические вычисляет ранг значения в выборке (распределения участников по местам). Функция РАНГ() имеет три аргумента. Первый – число, место (ранг) которого определяется. Второй аргумент ссылка – диапазон, в котором происходит распределение по местам. В нашем примере это столбец с суммарно набранным баллом. Диапазон должен быть неизменным, следовательно, его нужно указать с помощью абсолютной адресаций. Третий аргумент — Порядок – указатель порядка сортировки. Если третий аргумент 0 или не указан, места распределяются по убыванию значений (т.е. чем больше – тем лучше, 1-е место – максимальное значение). Если же поставить 1, то места будут распределяться по возрастанию (т.е. чем меньше, тем лучше ).
Логическая функция условие: ЕСЛИ() (IF)
Для формирования условий в формулах используется функция ЕСЛИ(). Она имеет три аргумента. Первый аргумент тест – условие, второй аргумент тогда значение – действия которое совершается при выполнении условия, третий аргумент иначе значение – действия при не выполнении условия.Пусть, например, ячейка D5 содержит формулу «=ЕСЛИ (A1
11. Ниже таблицы в ячейки D13 — К13 введите предполагаемое максимальное количество баллов за каждый вид заданий. В ячейке N13 выполните автосуммирование этих максимумов. Решите для себя, при каких условиях студент получит зачет. Например, зачет получает если набрал не менее 75% от общего количества баллов и сдал все тесты. В нашем примере формула будет следующей:
В электронных таблицах возможно использование более сложных логических конструкций с использованием вложенных функций ЕСЛИ(), когда ЕСЛИ() используется в качестве аргумента другой функции ЕСЛИ(). Например, сложная функция =ЕСЛИ(A1
выполняет следующие действия: если значение в ячейке A1 меньше 100, то выводится текстовое значение «утро». В противном случае проверяется условие вложенной функции ЕСЛИ(). Если значение в ячейке A1 равно 100 выводится текстовое значение «вечер», иначе выводится значение из ячейки C1. Toт же результат может быть получен с помощью выражения:
При создании сложных логических конструкций, особенно с большим количеством вложенных функций ЕСЛИ(), нередко возникают ошибки, связанные с неправильным синтаксисом логического выражения. Если в ячейке, содержащей формулу, вызвать «Мастер функций», то будет показана структура формулы. Структура формулы помогает найти ошибки при большом количестве вложенных функций.
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 . Сформировать отчеты.
Источник
Как Сделать Таблицу Успеваемости в Excel • Умная таблица
Вы работаете с данными, которые требуется структурировать? Производите множество однообразных операций и хотели бы автоматизировать подсчёты? Возможно, только начали осваивать специальные программы? Электронные таблицы помогут вам. В этой статье мы расскажем, как создать таблицу в Экселе пошагово.
Эксель — это неформальное название программы Microsoft Excel, которое используется в русскоязычной профессиональной среде. Широкий набор функций и возможности программирования под свои узкие задачи делают Эксель универсальным.
Таблица Эксель — Cоздание и настройка работы 2019
- Однотипные сложные расчёты
- Автоматизация вычислений
- Наглядное представление данных в диаграммах
- Статистический анализ
- Подготовка таблиц и диаграмм к печати
- Создание отчётов
- Решение задач на оптимизацию
Сводные таблицы помогут вам формировать различные отчёты из одних и тех же данных. Функция может быть полезна бухгалтерам, интернет-маркетологам, коммерческим директорам, менеджерам по продажам, чтобы быстро группировать и анализировать данные по разным критериям.
Создание таблицы
Первый предусматривает вставку элемента при помощи выбора стандартного стиля, а второй способ позволяет создать сводку индивидуально, с выбором понравившегося стиля.
- Для начала надо выделить на листе место под будущую таблицу. Для этого выбираем необходимое количество ячеек. При этом они могут быть как заполненными, так и пустыми;
- Переходим на вкладку «Вставка» , выбираем раздел «Таблицы» и клацаем на пункт соответствующего названия;
Когда нет отметки возле этой строки, то в поле заголовка будут указаны стандартные значения. Чтобы исправить это, достаточно просто ввести необходимый текст.
Если нет надобности в отображении заголовков, то их без проблем получится отключить позже, уже в созданной таблице, поэтому волноваться не стоит.
Когда табличка уже появилась на листе Excel, то активируется иконка «Работа с таблицами» в которой есть пункт «Конструктор» .
Его инструменты позволяют изменять конфигурации таблицы и редактировать ее по требованиям пользователя.
Важно! Функционал в разных версиях Excel похожий, но в новых продуктах нет строки со звездочкой (*), которая в версии 2003 года выполняла функцию быстрого добавления строк и столбцов.
Источник