精华内容
下载资源
问答
  • 如何在电子表格中不同的两列里筛选出重复数据? 说的详细一点啊,本人很笨的!谢谢!
  • 有了这个工具,不仅可以筛选重复邮件号码,也可以用于筛选其他重复的东西,比如姓名、身份证号码等等。 1、工具界面 为了提高工具的适应能力,有些参数可以让用户自己设置的,比如文件名、筛选重复的列...

    作者:iamlaosong

    客服人员发现地市分公司上报的理赔邮件有重复现象,但人工检查重复非常麻烦,因为这些号码不在一个工作表中。为此我做了一个小工具,可以一键列出Excel文件中所有工作表中重复的号码。有了这个工具,不仅可以筛选重复邮件号码,也可以用于筛选其他重复的东西,比如姓名、身份证号码等等。

    1、工具界面

    为了提高工具的适应能力,有些参数可以让用户自己设置的,比如文件名、筛选重复的列、数据起始行、附加信息等,界面如下,其中的工作表名称是用日期命名的:

    2、功能实现

    功能比较简单,无非是循环比较。读取需要比较的号码列及附加列信息,然后就是比较了。取一个号码,首先比较本表有没有重复,然后再读取其他表号码列比较,发现有重复的,记录下号码和附加信息,重复信息。考虑4个重复已经够了,所以表中最多可以记录4个重复信息,如果超过4个,则标注一个“*”号,不再记录。

    还有一个问题要注意,数字类的号码可以是数字格式,也可以是文本格式,如果格式不同,即便号码相同也是不等的,如果不注意,可能会漏掉重复号码。安全的解决办法是比较时,转换为文本格式。

    如果有需要,还可以在此基础上增加其他功能,比如删除重复号码,给重复号码单元格加上标志等等。如果是删除号码,有一个技巧,就是从后面向前面删除,这样删除的号码不会影响前面号码的定位。

    代码如下:

    '筛重
    Sub get_rep()
        Dim MaxRow, MaxRow1, MaxRow2 As Long
        Dim i, j, k1, k2, DataNo1, DataNo2, RepNo, rr, cc, stNum As Integer
        Dim Mail, colMail, colFee, rowFirst, DatFile As String
        Dim arrAdd1(), arrAdd2(), arrData1(), arrData2(), RepData(1000, 14)
    
        colpm = 17
        DatFile = Cells(3, colpm)                              '文件名称
        colMail = Cells(4, colpm)                              '邮件号码列
        rowFirst = Cells(5, colpm)                             '起始行
        colAdd1 = Cells(6, colpm)                              '附加列1
        colAdd2 = Cells(7, colpm)                              '附加列2
        
        MaxRow = ActiveSheet.UsedRange.Rows.Count
        If MaxRow >= 3 Then
            ActiveSheet.Range("A3:N" & MaxRow).ClearContents
        End If
        
        '打开文件
        MaxRow = OpenFile(DatFile)
        stNum = Sheets.Count
        rr = 1
        cc = 1
        For k1 = 1 To stNum
            MaxRow1 = Sheets(k1).[A65536].End(xlUp).Row
            If MaxRow1 >= rowFirst Then
                DataNo1 = MaxRow1 - rowFirst + 1
                arrData1 = Sheets(k1).Range(colMail & rowFirst & ":" & colMail & MaxRow1).Value
                arrAdd1 = Sheets(k1).Range(colAdd1 & rowFirst & ":" & colAdd1 & MaxRow1).Value
                arrAdd2 = Sheets(k1).Range(colAdd2 & rowFirst & ":" & colAdd2 & MaxRow1).Value
                For i = 1 To DataNo1
                    Mail = CStr(arrData1(i, 1))
                    '查找本表重复
                    For j = i + 1 To DataNo1
                        If Mail = CStr(arrData1(j, 1)) Then
                            If cc = 1 Then
                                RepData(rr, 1) = arrData1(i, 1)
                                RepData(rr, 2) = arrAdd1(i, 1)
                                RepData(rr, 3) = arrAdd2(i, 1)
                                RepData(rr, 4) = Sheets(k1).Name
                                RepData(rr, 5) = rowFirst + i - 1
                                RepData(rr, 6) = Sheets(k1).Name      '重复项存放开始列:6、8、10、12列
                                RepData(rr, 7) = rowFirst + j - 1
                                cc = 8
                            Else
                                RepData(rr, cc) = Sheets(k1).Name
                                RepData(rr, cc + 1) = rowFirst + j - 1
                                cc = cc + 2
                            End If
                        End If
                    Next j
                    '查找剩余工作表重复
                    For k2 = k1 + 1 To stNum
                        MaxRow2 = Sheets(k2).[A65536].End(xlUp).Row
                        If MaxRow2 >= rowFirst Then
                            DataNo2 = MaxRow2 - rowFirst + 1
                            arrData2 = Sheets(k2).Range(colMail & rowFirst & ":" & colMail & MaxRow2).Value
                            For j = 1 To DataNo2
                                If Mail = CStr(arrData2(j, 1)) Then
                                    If cc = 1 Then
                                        RepData(rr, 1) = arrData1(i, 1)
                                        RepData(rr, 2) = arrAdd1(i, 1)
                                        RepData(rr, 3) = arrAdd2(i, 1)
                                        RepData(rr, 4) = Sheets(k1).Name
                                        RepData(rr, 5) = rowFirst + i - 1
                                        RepData(rr, 6) = Sheets(k2).Name      '重复项存放开始列:6、8、10、12列
                                        RepData(rr, 7) = rowFirst + j - 1
                                        cc = 8
                                    Else
                                        If cc = 14 Then        '超过4个以上重复,后面标注*号,不在判断
                                            RepData(rr, cc) = "*"
                                            cc = cc + 2
                                            Exit For
                                        Else
                                            RepData(rr, cc) = Sheets(k2).Name
                                            RepData(rr, cc + 1) = rowFirst + j - 1
                                            cc = cc + 2
                                        End If
                                    End If
                                End If
                            Next j
                            If cc > 14 Then Exit For     '超过4个以上重复,后面不在判断
                        End If
                    Next k2
                    '本号查找完毕,如果有重复,重新初始化
                    If cc > 1 Then
                        rr = rr + 1
                        cc = 1
                    End If
                Next i
            End If
        Next k1
        
        ActiveWindow.Close
        '保存筛重结果
        RepNo = rr - 1
        If RepNo > 0 Then
            For rr = 1 To RepNo
                For cc = 1 To 14
                    Cells(rr + 2, cc) = RepData(rr, cc)
                Next cc
            Next rr
        End If
        msg = MsgBox("筛重完毕,共发现" & RepNo & "个邮件号码重复!", vbOKOnly, "AHEMS:iamlaosong")
    
    End Sub
    
    

     

    展开全文
  • 即,条件格式筛选重复值认为单元格内数值相同的即为重复值。 高级筛选: 通过数据-筛选-高级筛选,勾选仅显示唯一值。 结果:数据只剩余两行,说明筛选重复值,第二行和第三行被认为相同的值。即,高级筛选...

    我是月球挖掘机,这是一篇带有疑惑的文章。如果你有好的见解,欢迎与我交流,邮箱:wxy@wxy.ink


    数据源:

    三行数据都是日期,第一行是文本,第二行和第三行都是文本格式。

    对比:

    条件格式:

    通过设置条件格式筛选重复值,

    结果:可以看到第二行和第三行被认为相同的值。即,条件格式筛选重复值认为单元格内数值相同的即为重复值。

    高级筛选:

    通过数据-筛选-高级筛选,勾选仅显示唯一值。

    结果:数据只剩余两行,说明筛选重复值,第二行和第三行被认为相同的值。即,高级筛选重复值认为单元格内数值相同的即为重复值。

    删除重复值:

    数据-删除重复值

    结果:提示没有重复值。也就是删除重复值是对比单元格显示数据和单元格格式数据,两者都一致,才认为是重复值。

    我的试验结果与官方的说明不同,所以比较疑惑。官方解释如下:

    了解如何筛选唯一值或删除重复值

    筛选唯一值和删除重复值是两个类似的任务,因为目标是显示唯一值的列表。 但是,有一个关键区别:筛选唯一值时,重复值仅暂时隐藏。 但是,删除重复值意味着要永久删除重复值。

    重复值是一个重复值,其中至少一行的所有值都等同于另一行的所有值。 重复值的比较取决于单元格中显示的值,而不是单元格中存储的基础值。 例如,如果不同单元格中的日期值相同,一个单元格的格式设置为"2006 年 3 月 8 日",另一个单元格设置为"2006 年 3 月 8 日",则值是唯一的。

    筛选唯一值或删除重复值 - Excel (microsoft.com)

    我的Office版本:Version2008(Build 13127.21506)


    如果你有不同的见解,欢迎评论交流。

     

    展开全文
  • ID DATE BIT 1 2010 false 1 2011 true 2 2011 true 2 2012 false 我想筛选出重复的ID信息,且日期要离现在最近的,也就是: ID DATE BIT 1 2011 true 2 2012 false 该如何做呢,希望大家指教
  • SELECT FARMER_CN,CREATORTIME, MAX(CREATORTIME) FROM AH_FARMER_R where is_change='1' GROUP BY FARMER_CN 更具时间筛选出最新的重复数据

    SQLite MAX 函数更具时间筛选出最新一条重复数据

    刚刚还了工作,最近在升级新公司项目的时候遇到一个问题——筛选(select)出最新的一条重复数据。虽然简单来说解决这个问题并不复杂,但是由于其他种种原因导致这个问题处理起来并不那么容易,这里就不吐槽了。具体内容如下:
    (由于是公司现有项目,下面的内容会将部分数据进行处理并非原始数据。)


    从表AH_FARMER_R中查询is_change=’1’的相关数据。
    如下:

    select FARMER_CN,CREATORTIME from farmer where is_change='1' order by FARMER_CN,CREATORTIME desc

    id FARMER_CN CREATORTIME
    1 2140014 2016-12-26 11:29:43
    2 406201X 2017-01-23 15:00:18
    3 406201X 2016-12-26 11:29:34
    4 406201X 2016-12-26 11:16:51
    5 4292010 2017-01-23 14:59:25
    6 6012010 2017-01-23 14:57:24
    7 6012010 2016-12-26 11:16:53
    8 7082042 2017-01-23 14:57:42
    9 7142016 2017-01-23 14:59:14
    10 8574444 2017-01-23 15:00:42
    11 8574444 2016-12-26 11:18:51
    12 8574444 2016-12-26 11:18:36
    13 8574444 2016-12-26 11:16:28

    表中分别“406201X“,”6012010”,”8574444” 三组重复数据。然而具体要求希望的到的是最新的数据——即查询出的结果不包括上表中的第3,4,7,11,12,13行数据。
    由于SQLite 中不支持ROW_NUMBER() OVER(PARTITION BY...) 所以这里使用MAX(column_name)函数并结合group by ,具体如下:

    select  FARMER_CN,CREATORTIME,Max(CREATORTIME) from farmer where is_change='1' group by FARMER_CN

    搜寻结果如下:
    筛选结果

    可能是自己对数据库操作并不熟悉把,所以对于MAX 函数我也一直认为是对数字类型的操作 。而且SQLite 中也没有单独的用于存储日期和/或时间的存储类——也就是说这里的CREATORTIME也就是一个格式化的字符串,那Max是怎么比较的?我也确实不懂,还希望有了解的人能指点一二。好人一生平安。

    展开全文
  • CODE NAME DATE 0001 AAA1 201001 0001 AAA2 201007 0002 BBB1 200902 0002 BBB2 201008 输入日期200907,结果如下 CODE NAME DATE 0001 AAA1 201001 0002 BBB2 201008
  • [闽南网]有许多小伙伴还不了解在excel里筛选的简单操作,而下面就分享了在excel中筛选的方法,一起来看看吧。在excel中筛选的简单操作自动筛选用法:1、选中原始数据区域(包含表头),然后点击【数据】-【筛选】。操作...

    [闽南网]

    有许多小伙伴还不了解在excel里筛选的简单操作,而下面就分享了在excel中筛选的方法,一起来看看吧。

    在excel中筛选的简单操作

    自动筛选用法:

    1、选中原始数据区域(包含表头),然后点击【数据】-【筛选】。

    ed3cc316d88fba4202e998b80f455941.png

    操作完成后数据区域的第一行(抬头)处每个单元格产生了一个下拉箭头。

    点击一个抬头的下拉按钮,可以看到最上面有三个排序功能,“升序”、“降序”和“按颜色排序”。我们用这个功能可以对数据先进行排序操作。

    8561ed939d08b7ebfd86f3b425b4d470.png

    下面的选择框中点击【全选】按钮会把所有内容选中。也可以直接取消【全选】状态,用鼠标手动选择要筛选出数据。比如我们只要“陈玉”、“李秋香”和“秦琴”这三个人。

    90f85a578065137a4717b235b9a5ea0f.png

    点击【确定】按钮后,表格就只显示“陈玉”、“李秋香”和“秦琴”这三个人的数据。其余数据都被自动隐藏了。行号处都会显示成蓝色,表示已执行自动筛选。

    b8f1c5bd86b5142bf738cfc850d6c569.png

    我们点击【文本筛选】,可以看到下一层的可选菜单,比如说“包含”、“不包含”、“等于”、“开头是”等选项。我们可以需要选择具体内容。

    2f4345cd46a1610e942eb7e7583f4c02.png

    举例来说,我们选择“包含”。在【包含】后面输入一个“小”字,然后点击【确定】按钮。这样,所有姓名中包含“小”字的人名都会被筛选出来。

    e5c28a29aabdb3ac4a8d9c47a6580b9b.png34b7cc6c3c8f5b6f198e113ffe10d7c0.png

    在这里,我们可以选择两个条件,两个条件的关系是“同时满足”或者“满足其一即可”。在筛选中表示为“与”和“或”。我们选择“或”,并在第二个条件下拉菜单也选择“包含”,后面输入“玉”字。

    d30b593c85ce3bdd38ec79356f6d7593.png71757ec87fa6ee29bf46e28543b85c37.png

    这样,所有包含“小”字或“玉”字的姓名就都被筛选出来了。

    64909e4948ef666c75cb16b06106fd8f.png

    我们选第一列的日期下拉按钮看看Excel对日期的筛选有什么特点。

    首先可以看到的不同是Excel将日期自动进行了归类,按年月日进行了分组。可以方便的选择年或者月份数据。

    65db5b4eca40e7c07114e2648c115224.png

    点击【日期筛选】按钮可以看到更丰富的日期筛选选项。

    注意:为了使用自动筛选对日期筛选的强大功能,一定要保证日期为Excel可识别的日期格式,不能是文本或者不可识别的日期格式。

    e4970e21630e4b0a5bdffb6cd9d74aa7.png

    以上讲解了在excel中筛选的日常操作应用,希望能对各位有所帮助。

    展开全文
  • 有这样一张表 职员 加班日期 其他信息 A 2017/10/1 text1 ...我想把日期重复的数据查询出来 想要的结果 职员 加班日期 其他信息 A 2017/10/1 text1 A 2017/10/1 text2 请问sql 应该怎么写 sql server数据库
  • R语言筛选V2和V3两列中,元素的重复次数超过2次以上的数据,其中2和3的重复次数超过3次,需要筛选出来。筛选不同门店的数量,进行数据计数和统计。
  • CSDN原文传送门:http://topic.csdn.net/u/20091103 ... 7e7b9d88.html?67029问题入下:我有一个表:GDGDGD 字段 NAME VARCHAR(10) STAT VARCHAR(10) DTA DATE 我想找NAME重复中最大日期的数据。 如:原表: ...
  • SQL语句实现在某时间段内按某个别字段(并不是所有字段)筛选重复的记录,只留下最近时间的记录;再把筛选后的数据按时间降序排列输出结果 select * from qiandao_T where date in(select max(date) from 表名...
  • DataTable data = view.ToTable(true, new string[] { "账户", "姓名", "性别", "公司", "部门", "手机", "电话", "出生日期", "邮箱", "身份证号", "地址", "警号", "人员类型名称" }); //if (dataTable!=null&&...
  • SQL 有条件地筛选重复数据

    万次阅读 2009-11-23 13:26:00
    --基础了解:1) select distinct name from table --打开重复记录的单个字段2) select * from table where fid in(Select min(fid) FROM table group by name)--打开重复记录的所有字段值3) select * from table ...
  • 1.类似于这种的数据 要想选择日期...2.但是如果你的日期不是索引 并且有很多重复的数据上述方法并不能用 , 如果你想选择大于2020-09-01日期的数据 方法是 转换日期 列=pd.to_datetime(列) 列>pd.Timestamp('...
  • 筛选:Web上的日期提取和可视化工具 ##为什么筛选 数据可视化的最大问题之一是你必须自己准备数据。但是,这种数据收集/清洗可能是繁琐而重复的任务。而且,特别是没有技术知识或技能的最终用户,可能无法通过API...
  • 重复值是行中的所有值与另一个行...下面就为大家详细介绍下如何筛选唯一值或删除重复值以及怎么对唯一值或重复值应用条件格式等等,感兴趣的朋友可以参考下。 筛选唯一值或删除重复值 在 Microsoft Office Excel 20
  • 在 Excel 中,有几种方法可以筛选唯一值或删除重复值: 若要筛选唯一值,请单击"数据">"&筛选>高级"。 若要删除重复值,请单击"Data > Data Tools">删除重复项"。 若要突出显示唯一值...
  • select distinct 字段 from 表名distinct会筛选出不同的记录,也就是说相同内容的那个字段只会取一条。一.Select语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,...
  • 在excel表中利用IF函数按最新日期(条件)查询返回不重复的记录
  • 如果某个人多次下单会出现某个人重复下订单的记录。脚本如下: CREATE TABLE [dbo].[t_expense_record_info]( [id] [int] IDENTITY(1,1) NOT NULL, [goods_id] [int] NULL, [amount] [decimal](18, 6) NULL, ...
  • sql语句,如何找出重复的数据

    万次阅读 2017-11-08 11:24:50
    --功能概述:删除重复记录 --做成时间:2008/10/31 ...在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?...1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 sele
  • sql按一列筛选,不显示重复

    千次阅读 2007-03-18 11:38:00
    例如:一个学生选课表: 姓名 课程 选课日期 联系电话.......... 小王 数学 ***** ******** 小王 英语 ****** ******** 小张 
  • 怎样在一个表里筛选出每个对象的时间最新的一条记录
  • 在InfoPath的重复表中使用公式去筛选最小值数据 by S.Y.M. Wong-A-Ton 学习如何在INFOPATH中去使用公式(而不使用代码)去找到重复表中某个栏的最小值并且高亮显示。 需求: 当你创建一个重复表,里面...
  • asp access同一数据表重复记录筛选难题求解? 有一个商品表T1,表中商品有重复,每个顾客每天同一种商品只能购买一次 相同商品只显示ID最小的,今天已购买过的相同商品不显示 T1表数据如下 ID(商品ID) Title...
  • 现在存在以下数据:需要查询以下数据姓名 日期张三 2017-12-14李四 2017-12-16在E1中写入以下公式:=IF(D2=MAX(IF($C$2:$C$7=C2,$D$2:$D$7)),MAX(IF($C$2:$C$7=C2,$D$2:$D$7)),"")然后CTRL+Shift+ENTER,接着下拉...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,817
精华内容 11,526
关键字:

怎样筛选出重复的日期