VBA⾃定义函数--计数满⾜要求的单元格数量
同事要求帮忙,做⼀个计数需求,统计单元格内容中包含①、②、③⾄少有两个或者合格的数量。
单元格⾥内容有①②④⑤、①②④、①②③、合格等,如下图:
这个计数需求是可以⽤countif函数直接处理,但是同事说公式太长了,容易乱,于是想了想,⽤vba⾃定义⼀个函数解决,主要思路是通过instr依次查单元格内字符串中是否有①、②、③,然后相加起来是否⼤于1,如果是则计1,如此循环单元格;对于“合格”,直接使⽤判断语句,是计1,循环单元格;最终相加两者总数,得出结果,符合。
代码如下:
Function countacc(arr3 As Range)
Dim Lens As Variant
Dim count1 As Integer
Dim count2 As Integer
Dim c1 As Integer
Dim c2 As Integer
Dim c3 As Integer
count1 = 0
count2 = 0
'Dim arr3
'arr3 = Array("②④", "①②④", "②③④", "②③④", "②③④")
For Each Lens In arr3
find1 = InStr(Lens, "①")
If find1 Then
c1 = 1
Else
c1 = 0
End If
find2 = InStr(Lens, "②")
If find2 Then
c2 = 1
Else
c2 = 0
End If
find3 = InStr(Lens, "③")
If find3 Then
c3 = 1
Else
c3 = 0
End If
c = c1 + c2 + c3
If c > 1 Then
count1 = count1 + 1
countif函数求占比End If
Next
For Each Item In arr3
find4 = "合格"
If Item = find4 Then
count2 = count2 + 1
End If
Next
countacc = count1 + count2
End Function
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论