кількість пропусків.
Натиснути клавішу Створити. При цьому створиться звіт, в який будуть включені ті студенти, кількість пропусків занять яких перевищує вказану кількість а в кінці – зведений звіт відвідування. Якщо створюється звіт по відвідуванню більше ніж 2 місяці/групи, то автоматично буде створено і діаграму відвідування, що розміститься на окремому листі.
Створену діаграму при необхідності можна відкоректувати і роздрукувати. Не слід зберігати діаграму в файлі, оскільки це збільшує його розмір, а при створенні нового звіту дані в діаграмі будуть спотворені. Крім того, діаграму можна в будь-який момент створити заново.
Опис функцій Microsoft Excel,
використаних в роботі.
Функція ЕСЛИ
Повертає одне значення, якщо задана умова при обчисленні дає значення ИСТИНА, і друге значення, якщо ЛОЖЬ.
Функція ЕСЛИ використовується при перевірці умов для значень і формул.
Синтаксис
ЕСЛИ(логічний_вираз; значення_якщо_ИСТИНА; значення_якщо_ЛОЖЬ)
Логічний_вираз — це будь-яке значення або вираз, що приймає значення ИСТИНА чи ЛОЖЬ.
Значення_якщо_ИСТИНА — це значення, яке повертається, якщо логічний_вираз дорівнює ИСТИНА.
Значення_якщо_ЛОЖЬ — це значення, яке повертається, якщо логічний_вираз дорівнює ЛОЖЬ.
Функція ПРОСМОТР
Синтаксис
ПРОСМОТР(искомое_значение;просматриваемый_вектор; вектор_результатов)
Искомое_значение - це значення, яке ПРОСМОТР шукає в першому векторі. Искомое_значение може бути числом, текстом, логічним значенням, ім’ям чи ссилкою на значення.
Просматриваемый_вектор - це інтервал, що містить тільки один рядок або одну колонку. Значеннями в аргументі просматриваемый_вектор можуть бути текстами, числами чи логічними значеннями.
Важливо! Значення в аргументі просматриваемый_вектор повинні бути розміщені в порядку зростання ..., -2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА; в противному випадку функція ПРОСМОТР може повернути невірний результат. Тексти в нижньому і верхньому регістрі вважаються еквівалентними.
Вектор_результатов - це інтервал, що містить тільки один рядок або одну колонку. Він повинен бути такого самого розміру як і просматриваемый_вектор.
Якщо ПРОСМОТР не може знайти искомое_значение, то підходящим вважається найбільше значення в аргументі просматриваемый_вектор, яке менше, ніж искомое_значение.
Якщо искомое_значение менше, ніж найменше значення в аргументі просматриваемый_вектор, то функція ПРОСМОТР повертає значення помилки #Н/Д.
Функція СЧЁТЕСЛИ
Подсчитывает количество ячеек внутри диапазона, удовлетворяющих заданному критерию.
Синтаксис
СЧЁТЕСЛИ(диапазон;критерий)
Диапазон — це діапазон , в якому потрібно порахувати комірки.
Критерий — це критерій в формі числа, виразу чи тексту, який визначає, які комірки потрібно підрахувати.
Функція СУММ
Додає всі числа в інтервалі комірок.
Синтаксис
СУММ(число1;число2; ...)
Число1, число2, ... - це від 1 до 30 аргументів, для яких потрібно визначити підсумок чи суму.
Враховує числа, логічні значення і текстові представлення чисел, які безпосередньо введені в список аргументів.
Якщо аргумент являється масивом чи ссилкою, то тільки числа враховуються в масиві чи ссилці. Порожні комірки, логічні значення, тексти і значення помилок в масиві чи ссилці ігноруються.
Аргументи, які являються значеннями помилок чи текстами що не перетворюються в числа викликають помилку.
Функція СЧЁТЗ
Підраховує кількість не порожніх значень в списку аргументів. Функція СЧЁТЗ використовується для підрахунку кількості комірок з даними в інтервалі чи масиві.
Синтаксис
СЧЁТЗ(значение1; значение2; ...)
Значение1, значение2, ... – це від 1 до 30 аргументів, кількість яких потрібно підрахувати. В даному випадку значеннями вважається значення любого типу, включаючи порожній рядок (""), але не включаючи порожні комірки. Якщо аргументом є масив чи ссилка, то порожні комірки в масиві чи ссилці ігноруються.
Макрос клавіші “Ок” на листі “Списки”
Реакція програми на натиснення клавіші “Ok”:
Перегляд комірок в діапазоні С3:IV3 і виправлення в них номерів груп (контроль за їх довжиною)
Сортування списків студентів по номеру групи
Підбір ширини колонок із списками груп
Установка списку вибору номерів груп в ComboBox1 на листі «Ввід»
Private Sub CommandButton1_Click()
For Each w In Range("C3:IV3")
If w.Value <> "" Then
w.Value = Mid(w.Value, 1, 3)
If Len(w.Value) < 3 Then w.Value = String(3 - Len(w.Value), "0") + Mid(Str(w.Value), 2)
End If
Next
Range("C3:IV100").Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
Range("C3:IV3").Copy
Range("A4").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Лист1.ComboBox1.ListFillRange = "Списки!A4:A" + Mid(Str(Range("E1").Value + 3), 2)
Columns("C:IV").Columns.AutoFit
End Sub
Макрос клавіші “Вивести” на листі “Ввід”
Реакція програми на натиснення клавіші “Вивести”:
Перегляд назв всіх листів у книзі з метою встановлення наявності вибраного листа
В випадку відсутності вибраного листа виконується його автоматичне створення
Створення заголовка таблиці
Вибір кольору
Підбір ширини комірок
Запис формул в лист
Копіювання даних з заданого листа на лист “Ввід” і включення виводу списка студентів на листі
Відключення елементів вибору групи і місяця, відключення клавіші “Вивести”, включення клавіш “Очистити” і “Зберегти”
Private Sub CommandButton1_Click()
Found = False
Find = Range("A3").Value2 + "-" + Range("A2").Value2
For Each Wh In Worksheets
If Wh.Name = Find Then Found = True
Next
If Found = False Then
' СТВОРЕННЯ НОВОГО ЛИСТА
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Find
Sheets("Ввід").Activate
Sheets(Find).Rows("1:2").Font.Bold = True
'№ п/п
Sheets(Find).Range("A2").FormulaR1C1 = "№ п/п"
Sheets(Find).Columns("A:A").HorizontalAlignment = xlCenter
Sheets(Find).Range("A3").FormulaR1C1 = _
"=IF(OR(RC[1]="""",RC[1]=""ВСЬОГО""),"""",IF(R[-1]C=""№ п/п"",1,R[-1]C+1))"
Sheets(Find).Range("A3").AutoFill Destination:=Sheets(Find).Range("A3:A50"), Type:=xlFillDefault
Sheets(Find).Columns("A:A").ColumnWidth = 6
'прізвище
Sheets(Find).Range("B2").FormulaR1C1 = "Прізвище"
Sheets(Find).Columns("B:B").ColumnWidth = 15
Sheets(Find).Range("B3").FormulaR1C1 = _
"=IF(LOOKUP(""" + Лист1.Range("A2") + """,Списки!R3C3:R3C256, Списки!R[1]C[1]:R[1]C[254])=0,IF(AND(R[-1]C<>""ВСЬОГО"",R[-1]C<>""""),""ВСЬОГО"",""""),LOOKUP(""" + Лист1.Range("A2") + """,Списки!R3C3:R3C256,Списки!R[1]C[1]:R[1]C[254]))"
Sheets(Find).Range("B3").AutoFill Destination:=Sheets(Find).Range("B3:B50"), Type:=xlFillDefault
'дні
Sheets(Find).Range("C2").Value = "1"
Sheets(Find).Range("C2").AutoFill Destination:=Sheets(Find).Range("C2:AG2"), Type:= _
xlFillSeries
Sheets(Find).Columns("C:AG").ColumnWidth = 2
'назва місяця
Sheets(Find).Range("C1:AG1").Merge
Sheets(Find).Range("C1:AG1").HorizontalAlignment = xlCenter
Sheets(Find).Range("C1").Value = Лист1.Range("A4").Value
'група
Sheets(Find).Range("B1").Value = "Група № " + Range("A2").Value
'Колір
Sheets(Find).Range("A1:AI2,A:A").Interior.ColorIndex = 4
Sheets(Find).Range("A1:AI2,A:A").Interior.Pattern = xlSolid
'Всього
Sheets(Find).Range("AH1:AI2").HorizontalAlignment = xlCenter
Sheets(Find).Range("AH1:AI1").Merge
Sheets(Find).Range("AH1:AI1").FormulaR1C1 = "Всього"
Sheets(Find).Range("AH2").FormulaR1C1 = "Б"
Sheets(Find).Range("AI2").FormulaR1C1 = "П"
Sheets(Find).Range("AH3").FormulaR1C1 = "=IF(RC[-32]=""ВСЬОГО"",SUM(R[-1]C34:R3C),IF(RC[-33]="""","""",COUNTIF(RC[-31]:RC[-1],""Б"")))"
Sheets(Find).Range("AH3").AutoFill Destination:=Sheets(Find).Range("AH3:AH100"), Type:=xlFillDefault
Sheets(Find).Range("AI3").FormulaR1C1 = "=IF(RC[-33]=""ВСЬОГО"",SUM(R[-1]C35:R3C),IF(RC[-34]="""","""",COUNTIF(RC[-32]:RC[-2],""П"")))"
Sheets(Find).Range("AI3").AutoFill Destination:=Sheets(Find).Range("AI3:AI100"), Type:=xlFillDefault
' Sheets(Find).Visible = False
GoTo 1
Else
1: 'Копія даних відвідування
Лист1.Range("A5").Value = Find
Sheets(Find).Range("C3:AG100").Copy
Лист1.Range("E7").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Лист1.Range("E5").Select
Selection.Value = "Дані відвідування за " + Range("A4").Value + _
" місяць групи № " + Str(Range("A2").Value)
Лист1.ComboBox1.Enabled = False
Лист1.ComboBox2.Enabled = False
Лист1.CommandButton1.Enabled =