以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于筛选重复值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89999) |
||||
-- 作者:2900819580 -- 发布时间:2016/9/2 21:11:00 -- [求助]关于筛选重复值 怎么样在在一个表中筛选出某列重复的值。。。是不同的数据但又有重复的。。。 |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/3 8:58:00 -- 即不同又重复吗,这有点拗口 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/9/3 9:50:00 -- 除了代码,还可以通过菜单完成: http://www.foxtable.com/webhelp/scr/1478.htm
|
||||
-- 作者:2900819580 -- 发布时间:2016/9/3 10:47:00 -- 有点蓝 基本是这个意思,但是这个只能筛选出重复值,,, Tables("表A").RepeatFilter("第一列", 0) 我第三列有个逻辑列,要筛选逻辑为False的重复值,怎么处理 |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/3 11:04:00 -- Tables("表A").Filter = "第三列 = false" Tables("表A").RepeatFilter("第一列", 0)
|
||||
-- 作者:2900819580 -- 发布时间:2016/9/3 14:11:00 -- 2.01.01.01.124
BM-12R-M接收板(已调试)
4000
4500
PO1609001
1.01.01.01.0004A|1.01.01.01.0002C
1.02.19.0012|1.02.110.0001|1.02.14.0026 2.01.01.01.125
REC-2R-AB接收板(已调试)
4000
4500
PO1609001
1.01.01.01.0004A|1.01.01.01.0002C
1.02.19.0012|1.02.110.0001|1.02.14.0026 2.01.01.01.124
BM-12R-M接收板(已调试)
2500
2500
PO1609002
1.01.01.01.0004A|1.01.01.01.0002D
1.02.19.0012|1.02.110.0001|1.02.14.0026D 2.01.01.01.125
REC-2R-AB接收板(已调试)
2500
2500
PO1609002
1.01.01.01.0004A|1.01.01.01.0002C
1.02.19.0012|1.02.110.0001|1.02.14.0026 如上数据,,,如何 将相同料号的数量加总,另外如果订单号不相同,也要汇总,成品代码和产品代码,不想的也需要汇总。。。。怎么样处理。 成品代码和产品代码用 符号 “|” 分开,最终想得到的效果如下。 有变动的用红色字体表示出来了。。。。 2.01.01.01.124
BM-12R-M接收板(已调试)
6500
7000
PO1609001|PO1609002
1.01.01.01.0004A|1.01.01.01.0002C|1.01.01.01.0002D
1.02.19.0012|1.02.110.0001|1.02.14.0026|1.02.14.0026D 2.01.01.01.125
REC-2R-AB接收板(已调试)
6500
7000
PO1609001|PO1609002
1.01.01.01.0004A|1.01.01.01.0002C
1.02.19.0012|1.02.110.0001|1.02.14.0026 [此贴子已经被作者于2016/9/3 14:17:06编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/3 14:17:00 -- 按物料代码排序,然后顺序循环所有行,相同的进行汇总。 具体上例子说明
|
||||
-- 作者:2900819580 -- 发布时间:2016/9/3 14:22:00 --
有点蓝老师,请看附档。。。。
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/3 15:17:00 -- Dim sum As Double Dim dr As Row = Tables("排期表").Rows(Tables("排期表").Rows.Count - 1) If dr.IsNull("成品代码") =False Then code.AddRange(dr("成品代码").split("|")) sum = dr("排产数量") End If For i As Integer = Tables("排期表").Rows.Count - 2 To 0 Step -1 Dim r As Row = Tables("排期表").Rows(i) If dr("物料代码") = r("物料代码") Then sum += r("排产数量") If r.IsNull("成品代码") =False Then For Each s As String In r("成品代码").split("|") If Not code.Contains(s) Then code.Add(s) Next End If r.Delete Else dr("排产数量") = sum dr("成品代码") = String.Join("|",code.ToArray) dr = r code.Clear If r.IsNull("成品代码") =False Then code.AddRange(r("成品代码").split("|")) sum = r("排产数量") End If End If Next dr("排产数量") = sum dr("成品代码") = String.Join("|",code.ToArray)
|
||||
-- 作者:2900819580 -- 发布时间:2016/9/3 16:42:00 -- 有点蓝老师,代码试运行没有效果。。。。 问题点应该在这里。。。但没有想有效的方法 。(每当比对物料代码不相同时dr就会重新赋值,这样dr就没办法在循环的过程中是表示最后一行了) Else dr("排产数量") = sum dr("成品代码") = String.Join("|",code.ToArray) dr = r code.Clear If r.IsNull("成品代码") =False Then code.AddRange(r("成品代码").split("|")) sum = r("排产数量") End If End If |