以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 相同数据合并 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154577) |
|
-- 作者:狐表(小白) -- 发布时间:2020/9/18 23:24:00 -- 相同数据合并
|
|
-- 作者:有点蓝 -- 发布时间:2020/9/19 9:03:00 -- A为什么是第1行加第5行?而不是第1行加第3行? |
|
-- 作者:linyunu1 -- 发布时间:2020/9/19 12:14:00 -- Dim s As New List(Of String) Dim drs As List(Of DataRow) = DataTables("表A").Select("","第一列,第三列") For Each dr As DataRow In drs Dim dr1 As DataRow = DataTables("表A").Find("第一列 = \'" & dr("第一列") & "\'","第三列 desc",1) If dr1 IsNot Nothing And s.Contains(dr("第一列")) = False Then s.Add(dr("第一列")) dr("第二列") = dr("第二列") & "," & dr1("第二列") dr("第三列") = dr("第三列") + dr1("第三列") dr1.delete() dr.Save() End If Next
[此贴子已经被作者于2020/9/19 12:18:16编辑过]
|
|
-- 作者:狐表(小白) -- 发布时间:2020/9/19 12:25:00 -- 因为当第一列相同名字的有多行时,用第三列最大值加最小值得出的值总体来说分配的最合理! |
|
-- 作者:有点蓝 -- 发布时间:2020/9/19 13:55:00 -- Dim ss As List(Of String) = DataTables("表C").GetValues("第一列") Dim dr,dr1 As DataRow For Each s As String In ss Dim drs As List(Of DataRow) = DataTables("表C").Select("第一列 = \'" & s & "\'","第三列") Do While drs.Count > 1 dr = drs(0) dr1 = drs(drs.Count - 1) dr("第二列") = dr("第二列") & "," & dr1("第二列") dr("第三列") = dr("第三列") + dr1("第三列") drs.Remove(dr) drs.Remove(dr1) dr1.Delete Loop Next
|
|
-- 作者:狐表(小白) -- 发布时间:2020/9/19 14:24:00 -- 多谢蓝老师。结果很完美! |
|
-- 作者:狐表(小白) -- 发布时间:2020/9/20 17:44:00 -- 蓝老师,如果按照之前的功能要求,增加一个第四列同第一列一起做区分,如何实现以下目的?谢谢! 表A 列一 列二 列三 列四A 1,2 15 赵 A 2,3,4 6 赵 A 7,8 3 李 A 7 3 张 B 3 12 赵 B 4 8 李 C 1,4 9 赵 C 5 17 赵 达到目的: 列一 列二 列三 列四 A 1,2,3,4 21 赵 A 7,8 3 李 A 7 3 张 B 3 12 赵 B 4 8 李 C 1,4,5 26 赵 |
|
-- 作者:有点蓝 -- 发布时间:2020/9/20 21:07:00 -- Dim ss As List(Of String()) = DataTables("表C").GetValues("第一列|第四列") Dim dr,dr1 As DataRow For Each s As String() In ss Dim drs As List(Of DataRow) = DataTables("表C").Select("第一列 = \'" & s(0) & "\' and 第四列 = \'" & s(1) & "\'","第三列") Do While drs.Count > 1 dr = drs(0) dr1 = drs(drs.Count - 1) dr("第二列") = dr("第二列") & "," & dr1("第二列") dr("第三列") = dr("第三列") + dr1("第三列") drs.Remove(dr) drs.Remove(dr1) dr1.Delete Loop Next
|
|
-- 作者:狐表(小白) -- 发布时间:2020/9/20 21:57:00 -- 谢谢 |