以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]筛选后判断重复值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169583)

--  作者:412873264
--  发布时间:2021/6/22 0:06:00
--  [求助]筛选后判断重复值
如附件所示,在按钮中,以第四列单位为筛选条件,若筛选结果的第一列、第二列、第三列两两相互比较(同列内部比较,同行不同列间比较等)只要存在相同值的个数大于等于2的情况则提醒重复。比如,第四列以“g”为筛选条件,则筛选出第10-11行,欣凯的数量为2磷化”“高分子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选后判断重复值.zip

铁饼”“管子的数量为1,则提醒重复。感谢老师。
--  作者:有点蓝
--  发布时间:2021/6/22 8:35:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:一六前.zip


--  作者:412873264
--  发布时间:2021/6/22 13:42:00
--  
蓝老师,这个文件打不开,提示“文件版本过高,无法正常打开,请升级您的Foxtable!
--  作者:有点蓝
--  发布时间:2021/6/22 13:43:00
--  
请升级您的Foxtable带最新版
--  作者:412873264
--  发布时间:2021/6/23 23:11:00
--  
蓝老师,您给的例子所示的统计,只解决了同一列字段的比较;不同数据列间的字段统计与判断(即判断筛选出来的结果中,A列、B列间有是否存在相同字段),应如何解决?



--  作者:有点蓝
--  发布时间:2021/6/24 9:31:00
--  
没看懂,截图说明一下
--  作者:412873264
--  发布时间:2021/6/24 11:50:00
--  
如截图,以第四列的\'g\'筛选后,不仅仅统计同列内的相同值,还需要统计第1、2、3列之间的值是否有重复。比如第1、2列的“欣凯”,第2、3列的“管子”;“欣凯”“管子”有重复,需要提醒“重复”。
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210624114559.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/6/24 11:58:00
--  
比如查询第一列数据是否出现在第二列、第三列

If dt1.Find("客户 in (\'" & dt2.GetComboListString("工序").Replace("|","\',\'") & "\',\'" & dt3.GetComboListString("品名规格").Replace("|","\',\'") & "\')") & "\')") IsNot Nothing Then
    msgbox("重复")
End If

--  作者:flashman
--  发布时间:2021/6/24 12:56:00
--  
思路:
利用字典的特性,对筛选后的行列进行遍历。
Dim t As Table = Tables("询价表")
Dim zd As New Dictionary(Of String, Integer)
For Each r As Row In t.Rows
    For i As Integer = 0 To 2
        Dim c As String = t.Cols(i).name
        If zd.ContainsKey(r(c)) = False Then \'是否存在键1
            zd.Add(r(c),1)
        Else
            zd(r(c)) = zd(r(c)) + 1
        End If
    Next
Next

For Each k As String In zd.Keys
    If zd(k) > 1 Then
        Output.Show(K & ":重复" & zd(k) & "次")
    End If
Next

图片点击可在新窗口打开查看此主题相关图片如下:foxtable_by_flashman.png
图片点击可在新窗口打开查看


--  作者:412873264
--  发布时间:2021/6/24 13:39:00
--  
收到。感谢指导。