Foxtable(狐表)用户栏目专家坐堂 → 三个给一个编号。大神们帮帮忙


  共有2072人关注过本帖树形打印复制链接

主题:三个给一个编号。大神们帮帮忙

帅哥哟,离线,有人找我吗?
nsgc889613
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:107 积分:1253 威望:0 精华:0 注册:2013/9/23 13:47:00
三个给一个编号。大神们帮帮忙  发帖心情 Post By:2017/3/3 16:04:00 [只看该作者]

用代码,如何实现像图中这样,同单位同一名字的人,每三个给于一个编码,不足三个的再给一个编号,像图中一样以此类推
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

图片点击可在新窗口打开查看此主题相关图片如下:qq.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/3 16:10:00 [只看该作者]

没看懂

 回到顶部
帅哥哟,离线,有人找我吗?
nsgc889613
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:107 积分:1253 威望:0 精华:0 注册:2013/9/23 13:47:00
  发帖心情 Post By:2017/3/3 16:19:00 [只看该作者]

同姓名的人,三个给一个相同的序号,张三同名是7个,头三个给一个编号1,二组三个给一个2,最后一个单独的给一个3,后面的李四给两个人,不足三个人,给个序号4,按这样的方法,给一个序号。到王二给够三个人给个5,省下的给个二个王二给个6
图片点击可在新窗口打开查看此主题相关图片如下:qqa.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/3 16:24:00 [只看该作者]

参考代码

 

Dim count As Integer = 1
Dim i As Integer = Format(1, "000")
Dim t As Table = Tables("汇总表")
t.Rows(0)("编号") = i
For j As Integer = 1 To t.rows.count-1
    Dim pr As Row = t.Rows(j-1)
    Dim cr As Row = t.Rows(j)
    If cr("单位") <> pr("单位") Then
        i += 1
        count = 1
    ElseIf cr("姓名") <> pr("姓名") Then
        count = 1
        i += 1
    Else
        count += 1
        If count > 3 Then
            count = 1
            i += 1
        End If
    End If
cr("编号") = Format(i, "000")
Next


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/3/3 16:38:00 [只看该作者]

Dim t As Table = Tables("汇总表")
Dim cnt As Integer = 1
t.Rows(0)("序号") = 1
For i As Integer = 1 To t.Rows.Count - 1
    If t.Rows(i)("单位") = t.Rows(i-1)("单位") AndAlso t.Rows(i)("姓名") = t.Rows(i-1)("姓名") Then
        cnt = cnt + 1
        If cnt > 3 Then
            cnt = 1
            t.Rows(i)("序号") = t.Rows(i-1)("序号") + 1
        Else
            t.Rows(i)("序号") = t.Rows(i-1)("序号")
        End If
    Else
        cnt = 1
        t.Rows(i)("序号") = t.Rows(i-1)("序号") + 1
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
nsgc889613
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:107 积分:1253 威望:0 精华:0 注册:2013/9/23 13:47:00
  发帖心情 Post By:2017/3/3 16:57:00 [只看该作者]

谢谢狐狸爸爸、有点色,就是这种效果。还有个问题 同单位同名的人,没有按排顺序排好,如何同名三个给一个编号,还有就是新增一个同名的人,这同名的人刚好这次分组不够三个人,让得继续按照不足三人的编号不变呢。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/3 17:10:00 [只看该作者]

加入排序就好了

 

Dim t As Table = Tables("汇总表")

t.sort = "单位,姓名"


 回到顶部
帅哥哟,离线,有人找我吗?
nsgc889613
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:107 积分:1253 威望:0 精华:0 注册:2013/9/23 13:47:00
  发帖心情 Post By:2017/3/3 17:30:00 [只看该作者]

谢谢


 回到顶部