ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 综合应用 > 如何筛选出两列相同的数据?

如何筛选出两列相同的数据?

作者:绿色风 分类: 时间:2022-08-18 浏览:138
楼主
海洋之星
Q:如何筛选出两列相同的数据?效果如下图:

 
A:解决思路:将两列字段合成一个字段,最终将两个条件变成一个条件,方法有三种:
(1)技巧方法:
在F2单元格中输入公式:
  1. =SUMPRODUCT(($A$2:$A$14&$B$2:$B$14=A2&B2)*1)>1
,再按照动画进行筛选:

 
(2)SQL方法:
(一)有辅助列,在F1中输入公式:
  1. =A1&B1
  1. select 日期,姓名,备注1,备注2,备注3 from [sheet1$] where 日期姓名 in (select 日期姓名 from [sheet1$] group by 日期姓名 having count(日期姓名)>=2) order by 日期姓名
2楼
海洋之星
如果不想使用辅助,可以使用下面SQL语句:
  1. select 日期,姓名,备注1,备注2,备注3 from [sheet1$] where 日期&姓名 in (select 日期&姓名 from [sheet1$] group by 日期&姓名 having count(日期&姓名)>=2) order by 日期&姓名

(3)VBA方法:
  1. Option Explicit

  2. Sub test()
  3. Dim d, arr, i&, t, x As Range, j&, c As Long, brr, nm
  4. Application.ScreenUpdating = False
  5. [g1].CurrentRegion.Offset(1).Clear

  6. Set d = CreateObject("scripting.dictionary")
  7. arr = [a1].CurrentRegion.Value

  8. For i = 2 To UBound(arr)
  9. d(arr(i, 1) & "|" & arr(i, 2)) = ""
  10. Next

  11. t = d.keys
  12. For i = 0 To UBound(t)
  13. [a1].CurrentRegion.AutoFilter
  14. nm = [g65536].End(3).Row + 1
  15. [a1].CurrentRegion.AutoFilter Field:=1, Criteria1:=Split(t(i), "|")(0)
  16. [a1].CurrentRegion.AutoFilter Field:=2, Criteria1:=Split(t(i), "|")(1)
  17. Set x = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
  18. For j = 1 To x.Areas.Count
  19. c = c + x.Areas(j).Rows.Count
  20. Next
  21. If c > 2 Then: [a1].CurrentRegion.Copy Cells(nm, 7): [a1].CurrentRegion.AutoFilter: Range(Cells(nm, 7), Cells(nm, 11)).Delete Shift:=xlUp
  22. c = 0
  23. [a1].CurrentRegion.AutoFilter
  24. Next
  25. Application.ScreenUpdating = True
  26. End Sub
3楼
lily123456
看不懂VBA

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap