以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 三个给一个编号。大神们帮帮忙 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96988) |
||||
-- 作者:nsgc889613 -- 发布时间:2017/3/3 16:04:00 -- 三个给一个编号。大神们帮帮忙 用代码,如何实现像图中这样,同单位同一名字的人,每三个给于一个编码,不足三个的再给一个编号,像图中一样以此类推
此主题相关图片如下:qq.png |
||||
-- 作者:狐狸爸爸 -- 发布时间:2017/3/3 16:10:00 -- 没看懂 |
||||
-- 作者:nsgc889613 -- 发布时间:2017/3/3 16:19:00 -- 同姓名的人,三个给一个相同的序号,张三同名是7个,头三个给一个编号1,二组三个给一个2,最后一个单独的给一个3,后面的李四给两个人,不足三个人,给个序号4,按这样的方法,给一个序号。到王二给够三个人给个5,省下的给个二个王二给个6 此主题相关图片如下:qqa.png |
||||
-- 作者:有点色 -- 发布时间:2017/3/3 16:24:00 -- 参考代码
Dim count As Integer = 1 |
||||
-- 作者:狐狸爸爸 -- 发布时间: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 -- 发布时间:2017/3/3 16:57:00 -- 谢谢狐狸爸爸、有点色,就是这种效果。还有个问题 同单位同名的人,没有按排顺序排好,如何同名三个给一个编号,还有就是新增一个同名的人,这同名的人刚好这次分组不够三个人,让得继续按照不足三人的编号不变呢。 |
||||
-- 作者:有点色 -- 发布时间:2017/3/3 17:10:00 -- 加入排序就好了
Dim t As Table = Tables("汇总表") t.sort = "单位,姓名" |
||||
-- 作者:nsgc889613 -- 发布时间:2017/3/3 17:30:00 -- 谢谢 |