Sub one Вставка уникальных значений столбца должность Сортировка по ал

 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
68
69
70
Sub one()
'
' Вставка уникальных значений столбца "должность"
' Сортировка по алфавиту
'
Range("D1:D71").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A75"), Unique:=True
Range("A76:A102").Sort Range("A76")
'
' Подсчёт среднего оклада для каждой должности
'
Cells(75, 3) = "Средняя з/п"
Cells(76, 3).FormulaR1C1 = "=AVERAGEIF(R1C4:R71C10,RC[-2],R1C10:R71C10)"
Range("C76").Select
Selection.AutoFill Destination:=Range("C76:C102"), Type:=xlFillDefault
Cells(75, 2) = "оклад"
Dim i As Integer
For i = 76 To 102
Cells(i, 2).FormulaR1C1 = "=ROUND(RC[+1],0)"
Next
'
'Вставка символа ">" в начало ячейки
'
Range("B76:B102") = [">"&b76:b102]
Columns(1).EntireColumn.AutoFit
Columns(2).EntireColumn.AutoFit
Columns(3).EntireColumn.AutoFit
End Sub
Sub two()
'
' Вставка списка тех сотрудников, у кого доклад больше среднего в его должности
'
Range("A1:M71").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A75:B102"), CopyToRange:=Range("A106"), Unique:=False
End Sub
Sub three()
'
' Подсчёт количества сотредников и детей сотрудников для каждой должности
'
Cells(75, 4) = "Количество сотрудников"
Cells(75, 5) = "Количество детей"
Range("D76").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(Database,RC[-3])"
Selection.AutoFill Destination:=Range("D76:D102"), Type:=xlFillDefault
Columns(4).EntireColumn.AutoFit
Columns(5).EntireColumn.AutoFit
Range("E76").Select
ActiveCell.FormulaR1C1 = "=SUMIF(R1C4:R71C11,RC[-4],R1C11:R71C11)"
Selection.AutoFill Destination:=Range("E76:E102"), Type:=xlFillDefault
End Sub
Sub four()
'
' "Средний возрст сотрудников каждого отдела"
'
Cells(1, 14) = "возраст"
Range("N2").Select
ActiveCell.FormulaR1C1 = "=ROUND(YEAR(TODAY()-RC[-6])-1900,0)"
Selection.AutoFill Destination:=Range("N2:N71"), Type:=xlFillDefault
Cells(75, 6) = "Средний возраст"
Range("F76").Select
ActiveCell.FormulaR1C1 = "=AVERAGEIF(R1C4:R71C14,RC[-5],R1C14:R71C14)"
Selection.AutoFill Destination:=Range("F76:F102"), Type:=xlFillDefault
Cells(75, 7) = "Средний возраст"
For i = 76 To 102
Cells(i, 7).FormulaR1C1 = "=ROUND(RC[-1],0)"
Next
Columns(6).EntireColumn.AutoFit
End Sub