领导布置了任务,要求每天统计当月的发展量,并且统计有多少业务员最多连续多少天发展为0的情况,统计的表格是这样的。
用几行简单的VBA语言就能解决这个问题
首先打开vba编辑窗口,点击开发工具——visual basic(如果没有这个菜单,点击文件——选项——自定义功能区——右边窗口勾上开发工具)弹出编辑窗口,点击左边vbaproject下的模块进入编辑界面
我们可以自定义一个函数count0,参数为需要统计的区域,思路为从统计的第一列起,依次统计相邻为0的个数,一直统计到最后一列,取其中为0次数最多的为函数返回值,代码如下:
Function count0(r As Range)
r1 = r.Rows.Count
If r1 > 1 Then
MsgBox ("该函数只能在一行中统计")
End If
Num = r.Columns.Count
Max = 0
max1 = 0
For i = 1 To Num
For k = i To Num
If r.Columns(k) = 0 Then '发现当前值为0,继续看相邻下一个
max1 = max1 + 1
Else
k = Num '当前不为0,结束
End If
Next k
If max1 > Max Then
Max = max1
End If
max1 = 0
Next i
count0 = Max
End Function
编写好函数之后,保存文件,注意在保存文件中选择excel启用宏的工具簿,在O列输入刚刚写好的函数=count0(b2:l2),将公式复制到下面几行,得出结果如下图。