补考结束了,现在出现了一个问题,收的补考费与人数对不起来,按说根本不用我管,但本着学习的态度,还是帮他们一把吧,现在需要解决的问题是如何统计各班补考人数?本来想着用countif函数进行统计,但如果用countif函数的话只能涉及一个条件而现在需要统计的两个条件下的人数(即班级、补考标记),没见过多条件应用的例子。先附上countif函数的16种常用用法:
COUNTIF函数的16种公式设置
1、返加包含值12的单元格数量
=COUNTIF(DATA,12)
2、返回包含负值的单元格数量
=COUNTIF(DATA,"<0")
3、返回不等于0的单元格数量
=COUNTIF(DATA,"<>0")
4、返回大于5的单元格数量
=COUNTIF(DATA,">5")
5、返回等于单元格A1中内容的单元格数量
=COUNTIF(DATA,A1)
6、返回大于单元格A1中内容的单元格数量
=COUNTIF(DATA,“>”&A1)
7、返回包含文本内容的单元格数量
=COUNTIF(DATA,“*”)
8、返回包含三个字符内容的单元格数量
=COUNITF(DATA,“???”)
9、返回包含单词"GOOD"(不分大小写)内容的单元格数量
=COUNTIF(DATA,“GOOD”)
10、返回在文本中任何位置包含单词"GOOD"字符内容的单元格数量
=COUNTIF(DATA,“*GOOD*”)
11、返回包含以单词"AB"(不分大小写)开头内容的单元格数量
=COUNTIF(DATA,“AB*”)
12、返回包含当前日期的单元格数量
=COUNTIF(DATA,TODAY())
13、返回大于平均值的单元格数量
=COUNTIF(DATA,">"&AVERAGE(DATA))
14、返回平均值上面超过三个标准误差的值的单元格数量
=COUNTIF(DATA,“>"&AVERAGE(DATA)+STDEV(DATA)*3)
15、返回包含值为或-3的单元格数量
=COUNTIF(DATA,3)+COUNIF(DATA,-3)
16、返回包含值;逻辑值为TRUE的单元格数量
=COUNTIF(DATA,TRUE)
源程序如下:
Sub 统计理科各班各科补考人数()
Dim i As Integer, j As Integer, MyRange As Range, k As Integer
Dim TotalR As Integer, bjh() As Double
Worksheets("补考名单加作弊标志理 (2)").Activate
TotalR = Range("A65536").End(xlUp).Row
For i = TotalR To 1 Step -1
If Application.WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(TotalR, 1)), Cells(i, 1)) > 1 Then
Range(Cells(i, 1), Cells(i, 1)).EntireRow.Delete
End If
Next i
TotalR = Range("A65536").End(xlUp).Row
ReDim bjh(TotalR)
For i = 1 To TotalR - 1
bjh(i) = Cells(i + 1, 1).Value
Next i
Worksheets("补考名单加作弊标志理").Activate
For i = 1 To TotalR - 1
k = 0
For j = 1 To 6
For Each MyRange In Range(Cells(2, j + 2), Cells(147, j + 2))
If MyRange.Offset(0, -j - 1).Value = bjh(i) And MyRange.Value = "F" Then
k = k + 1
End If
Next MyRange
Next j
Debug.Print bjh(i) & "班需补考科次为:" & k
Next i
End Sub
![菊子曰](https://i-blog.csdnimg.cn/blog_migrate/bcfc021cd9686f287c7a9998494cbb28.png)