以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于系统命令排除重复值的扩展? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87819) |
-- 作者:wh420 -- 发布时间:2016/7/20 14:11:00 -- 关于系统命令排除重复值的扩展? 日常工作----排序与筛选---高级---重复筛选----排除重复值,此系统命令Syscmd.Filter.HideSameValues()如何拓展一下,让他对有空格的也排重? |
-- 作者:大红袍 -- 发布时间:2016/7/20 14:17:00 -- 本来,对于空值的列,就有区分的功能。如果要自己做,参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=83243&skin=0
|
-- 作者:wh420 -- 发布时间:2016/7/20 14:21:00 -- 我要排重的就是单列,是对空格也有排重效果,不是空值的列。 其实这四行都是重复的,只是有的中间有空格,有的前面有空格,有的后面有空格。 |
-- 作者:大红袍 -- 发布时间:2016/7/20 14:29:00 -- 方法一:直接把空格替换掉
For Each dr As DataRow In DataTables("表A").datarows |
-- 作者:wh420 -- 发布时间:2016/7/20 14:31:00 -- 上传文件,请老师帮忙看看,点窗口中的“排重”按钮实现排重
|
-- 作者:wh420 -- 发布时间:2016/7/20 14:32:00 -- 不能用替换的方法,如果是中文还好,如果是英文的,把单词之间的空格都替换掉,那排重后的英语句子都粘在一起了。 |
-- 作者:大红袍 -- 发布时间:2016/7/20 14:33:00 -- 方法二:编写代码处理筛选
Dim idx As String = "-1," If count > 1 Then Tables("表A").filter = "_Identify not In (" & idx.trim(",") & ")" |
-- 作者:wh420 -- 发布时间:2016/7/20 14:39:00 -- 好使,不过代码有点看不太懂。老师能给说一下大概原理吗? |
-- 作者:大红袍 -- 发布时间:2016/7/20 14:44:00 -- 对表格进行排序,循环每一行,如果当前一行数据跟上一行数据不一样,就记录当前行的_Identify,最后得到的就是每种不同数据的第一行。
或者这样这样理解, 对表格进行排序,循环每一行,如果当前一行数据跟上一行数据不一样,如果是第一行,就不记录,接下来的,全部记录,最后就得到全部多余重复的数据。 |
-- 作者:wh420 -- 发布时间:2016/7/20 15:02:00 -- 明白了。多谢老师。 |