以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 表与表之间列值对比问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30679) |
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 0:22:00 -- 表与表之间列值对比问题 A、B表中均含A列及日期列。同一天中A、B表中的A列各有多个值。 问题:A表A列的值与B表A列的值按日期条件(同一天)进行对比,找出不同的值,并在C表(比较表)中新增行把A表与B表不同值按各表的日期显示出来。求方法!
|
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 14:19:00 -- 谢谢,很不错。继续请教: A表第一列有值:2,2,2,3,3,6 B表第一列有值:2,2,3,3,6,6 对A表B进行对比:A、B表中相同值有2、3、6(即A中2值3个,3值2个,6值1个, B中2值2个,3值2个,6值2个。 ) C表中我想实现: A中比B多1个2,C表新增行输出1个2 A中比B一样多,C表不输出3 A中比B少1个6,C表新增行输出1个6
即:在C表中去除A、B表中相同个数的相同值,余下个数的相同值和不同值均在C表新增行显示出来。
[此贴子已经被作者于2013-4-2 14:30:57编辑过]
|
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 14:27:00 -- 请狐爸解决一下 |
|||||
-- 作者:XYT -- 发布时间:2013/4/2 14:43:00 -- 思路就是先得到数的个数,判断是否相等,如果不是就输出这个数 |
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 14:55:00 -- 如何实现啊?求教! |
|||||
-- 作者:Bin -- 发布时间:2013/4/2 15:16:00 -- Dim strs() As String= Tables("表A").Rows(0)("第一列").Split(",") Dim strList As New Dictionary(of String,Integer) For i As Integer=0 To strs.length-1 If Not strList.ContainsKey(strs(i)) Then strList.Add(strs(i),0) End If Next For i As Integer=0 To strs.length-1 strList(strs(i))=strList(strs(i))+1 Next Dim strs2() As String= Tables("表B").Rows(0)("第一列").Split(",") Dim strList2 As New Dictionary(of String,Integer) For i As Integer=0 To strs2.length-1 If Not strList2.ContainsKey(strs2(i)) Then strList2.Add(strs2(i),0) End If Next For i As Integer=0 To strs2.length-1 strList2(strs2(i))=strList2(strs2(i))+1 Next For Each item As String In strList.Keys Dim dr As Row= Tables("表C").AddNew() dr("第一列")=strList(item)-strList2(item) Next 搞定 以上代码少点重复代码。可以考虑写成函数 便于维护修改 减少代码冗余。
|
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 15:16:00 -- 在线等待啊, 请狐爸解决一下吧 |
|||||
-- 作者:Bin -- 发布时间:2013/4/2 15:18:00 -- 看楼上 已经帮你写好了 |
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 15:28:00 -- 谢谢,正在测试
[此贴子已经被作者于2013-4-2 16:00:35编辑过]
|
|||||
-- 作者:zmagood -- 发布时间:2013/4/2 15:41:00 -- 可以帮我写进去吗?我是初学者,才接触一周时间! |