一个有趣的统计 后续

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

上一篇统计的并非是真正的节假日的情况。

于是我又采用了一种方式,将所有假日标识出来,然后再统计,excel本身不能获得那些日子是节假日,只有通过手工填写标识。

还是先程序标识出所有的周末,这样修改起来更方便些:

Sub signWeekEnd()
'
    Dim i As Integer
    Dim visitdatestr As String
    Dim visitdate As Date
    Dim weekindex As Integer
    
    For i = 2 To 185
        visitdatestr = Range("A" & i).Value
        visitdate = DateValue(Left(visitdatestr, 4) & "-" & Mid(visitdatestr, 5, 2) & "-" & Right(visitdatestr, 2))
        weekindex = Weekday(visitdate, vbMonday)
        
        Select Case weekindex
            Case 6, 7
                Range("C" & i).Value = "Y"
            Case Else
                Range("C" & i).Value = "N"
        End Select
    Next
    
End Sub

 

然后手工再把放假的日期修改为Y,把调班的日期修改为N。接着就可以继续用代码了:

Sub statistic2()
'
    Dim i As Integer
    Dim holiday As String
    
    Dim visitCount As Integer
    Dim visitWeekendCount As Integer
    Dim visitNoWCount As Integer
    
    Dim visitPersonCount As Long
    Dim visitPersonWCount As Long
    Dim visitPersonNoWcount As Long
    
    visitCount = 0
    visitWeekendCount = 0
    visitPersonCount = 0
    visitPersonWCount = 0
    visitNoWCount = 0
    visitPersonNoWcount = 0
    
    Dim visitPersonCountPerDay As Integer
    
    
    For i = 3 To 185
        holiday = Range("C" & i).Value
        visitPersonCountPerDay = Range("B" & i).Value - Range("B" & (i - 1)).Value
        
        visitCount = visitCount + 1
        
        visitPersonCount = visitPersonCount + visitPersonCountPerDay
        
        
        Select Case holiday
            Case "Y"
                Range("A" & i).Interior.ColorIndex = 43
                visitWeekendCount = visitWeekendCount + 1
                visitPersonWCount = visitPersonWCount + visitPersonCountPerDay
            Case Else
                visitNoWCount = visitNoWCount + 1
                visitPersonNoWcount = visitPersonNoWcount + visitPersonCountPerDay
                
        End Select
    Next
    
    MsgBox ("记录总日期:" & visitCount & " 天,假日:" & visitWeekendCount & " 天,工作日:" & visitNoWCount & "天" & vbCrLf & _
    "平均访问人次:" & (visitPersonCount / visitCount) & vbCrLf & _
    "假日平均访问人次:" & (visitPersonWCount / visitWeekendCount) & vbCrLf & _
    "工作日平均访问人次:" & (visitPersonNoWcount / visitNoWCount))
    
End Sub

运行如下:

和之前的计算相差不是太大。

 

学习更多vb.net知识,请参看vb.net 教程 目录

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值