以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何设置同一时间段同1个为1次工作量,同1个在不同时间段出现,为第2次  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96594)

--  作者:suha_splendid
--  发布时间:2017/2/23 20:58:00
--  如何设置同一时间段同1个为1次工作量,同1个在不同时间段出现,为第2次

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:收费员工作量.table

计数列为想要的结果。这是一个个手动填制。

原始数据有上万个,怎么设置公式减少工作量。

目的就是计算,一个收费员的工作量。

感谢各位能够提供好简便方法!


--  作者:有点色
--  发布时间:2017/2/23 21:24:00
--  
Dim bjs As List(Of String) = DataTables("表A").GetValues("日期")
Dim idx As Integer = 0
For Each bj As String In bjs
    Dim drs As List(Of DataRow) = DataTables("表A").Select("[日期] = #" & bj & "#", "姓名 DESC")
    For n As Integer = 0 To drs.Count - 1 \'遍历所有行
        If n > 0 AndAlso drs(n)("姓名") = drs(n-1)("姓名") Then \'如果和上一行相同
            drs(n)("第四列") = drs(n-1)("第四列") \'
        Else
            idx += 1
            drs(n)("第四列") = idx \'设置排名
        End If
    Next
Next

--  作者:suha_splendid
--  发布时间:2017/2/24 9:30:00
--  

不好意思啊,设置了可是不是想要的结果,计数列才是所要的结果。同一姓名为一次工作量。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:收费员工作量.table


 


--  作者:有点色
--  发布时间:2017/2/24 9:43:00
--  
Dim t As Table = Tables("表A")
t.sort = "日期, 姓名"
t.Rows(0)("第四列") = 1
Dim count As Integer = 1
For i As Integer = 1 To t.Rows.count-1
    Dim pr As Row = t.Rows(i-1)
    Dim r As Row = t.Rows(i)
    If r("姓名") <> pr("姓名") OrElse cdate(r("日期")).Date <> cdate(pr("日期")).Date Then
        count += 1
    End If
    r("第四列") = count
Next

--  作者:suha_splendid
--  发布时间:2017/2/24 10:07:00
--  

可以了,非常感谢!