Сторінка
8
5. Функція СЧЁТЗ
Підраховує кількість не порожніх значень в списку аргументів. Функція СЧЁТЗ використовується для підрахунку кількості комірок з даними в інтервалі чи масиві.
Синтаксис
СЧЁТЗ(значение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
Макрос клавіші “Вивести” на листі “Ввід”
Реакція програми на натиснення клавіші “Вивести”:
· Перегляд назв всіх листів у книзі з метою встановлення наявності вибраного листа
· В випадку відсутності вибраного листа виконується його автоматичне створення
o Створення заголовка таблиці
o Вибір кольору
o Підбір ширини комірок
o Запис формул в лист
· Копіювання даних з заданого листа на лист “Ввід” і включення виводу списка студентів на листі
· Відключення елементів вибору групи і місяця, відключення клавіші “Вивести”, включення клавіш “Очистити” і “Зберегти”
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 = "П"