Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4107|回复: 11

[已解决]两列数据对比

[复制链接]
发表于 2016-4-13 12:05 | 显示全部楼层 |阅读模式
本帖最后由 乐乐2006201506 于 2016-4-13 17:20 编辑

Sub 数据对比 高级筛选法()
'
    Range("C1:C231").Select
    Range("C1:C231").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("A1:A227"), Unique:=False
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.399975585192419
        .PatternTintAndShade = 0
    End With
    ActiveSheet.ShowAllData
    Range("C1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$C$1:$C$231").AutoFilter Field:=1, Operator:= _
        xlFilterNoFill
End Sub

        这段代码是根据高级筛选法录制的,但导出,再导入其他表格时失去了相应效果,希望哪位老师能够重写或改写一下,实现两列数据互相核对后,分别将两列数据种不同的显示到另外一个(比如sheet1)工作表的A列和B列,非常感谢!
最佳答案
2016-4-13 16:12
=INDEX(Sheet1!C:C,SMALL(IF(ISERROR(MATCH(Sheet1!C$2:C$86,Sheet1!A$2:A$86,)),ROW(A$2:A$86),65536),ROW(A1:A1)))&""
c列和A列其實是一樣的。

数据对比.rar

8.23 KB, 下载次数: 9

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-4-13 14:03 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-4-13 15:45 | 显示全部楼层
03版的,麻烦了。

数据对比.rar

7.13 KB, 下载次数: 4

回复

使用道具 举报

发表于 2016-4-13 16:06 | 显示全部楼层
=INDEX(Sheet1!A:A,SMALL(IF(ISERROR(MATCH(Sheet1!A$2:A$86,Sheet1!C$2:C$86,)),ROW(A$2:A$86),65536),ROW(A1:A1)))&""

数据对比.rar

7.72 KB, 下载次数: 6

回复

使用道具 举报

发表于 2016-4-13 16:12 | 显示全部楼层    本楼为最佳答案   
=INDEX(Sheet1!C:C,SMALL(IF(ISERROR(MATCH(Sheet1!C$2:C$86,Sheet1!A$2:A$86,)),ROW(A$2:A$86),65536),ROW(A1:A1)))&""
c列和A列其實是一樣的。

数据对比.rar

7.91 KB, 下载次数: 5

回复

使用道具 举报

发表于 2016-4-13 16:24 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr, d, d2, i&
  3. Set d = CreateObject("scripting.dictionary")
  4. Set d2 = CreateObject("scripting.dictionary")
  5. arr = Range("a1").CurrentRegion
  6. brr = Range("c1").CurrentRegion
  7. For i = 1 To UBound(arr)
  8.     d(arr(i, 1)) = ""
  9. Next
  10. s2 = 1: s = 1
  11. For i = 1 To UBound(brr)
  12.     d2(brr(i, 1)) = ""
  13.     If Not d.exists(brr(i, 1)) Then s2 = s2 + 1: Sheet2.Cells(s2, 3) = brr(i, 1)
  14. Next
  15. For i = 1 To UBound(arr)
  16.     If Not d2.exists(arr(i, 1)) Then s = s + 1: Sheet2.Cells(s, 1) = arr(i, 1)
  17. Next
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-4-13 16:35 | 显示全部楼层
dsmch 发表于 2016-4-13 16:24

你这个如果是数据的话,完全可以实现我要的效果,但是当对比的是文字的时候怎么就失效了,谢谢了。
回复

使用道具 举报

发表于 2016-4-13 16:43 | 显示全部楼层
试试

数据对比.rar

13.83 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2016-4-13 17:16 | 显示全部楼层
乐乐2006201506 发表于 2016-4-13 16:35
你这个如果是数据的话,完全可以实现我要的效果,但是当对比的是文字的时候怎么就失效了,谢谢了。

最后发现你这个也很好,可以用,当时操作失误才导致不鞥实现效果的,实在是对不住,谢谢啦!
回复

使用道具 举报

 楼主| 发表于 2016-4-13 17:17 | 显示全部楼层
pengyx 发表于 2016-4-13 16:43
试试

谢谢你,你的也可以实现,很好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 02:18 , Processed in 0.395704 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表