ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 141|回复: 2

[求助] 原数据和现数据相比对,把相同的找出来,把不同的找出来

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-9-15 09:47 | 显示全部楼层 |阅读模式
用原数据ABC列与现数据EFG列相比,把原数中有不同的找出来,把现数据中有不同的找出来,把都有的也找出来,谢谢,大佬们

在两组多列数据中找不同与相同.zip

9.59 KB, 下载次数: 17

TA的精华主题

TA的得分主题

发表于 2024-9-15 12:39 | 显示全部楼层
  1. Sub 提取异同()
  2.     Dim a1, a2, arr1, arr2
  3.     Set 一独有 = CreateObject("scripting.dictionary")
  4.     Set 二独有 = CreateObject("scripting.dictionary")
  5.     Set 都有 = CreateObject("scripting.dictionary")
  6.     数据1 = Range("a1").CurrentRegion
  7.     数据2 = Range("e1").CurrentRegion
  8.     For i = 3 To UBound(数据1)
  9.         a1 = 数据1(i, 1) & 数据1(i, 2) & 数据1(i, 3)
  10.         For j = 3 To UBound(数据2)
  11.             a2 = 数据2(j, 1) & 数据2(j, 2) & 数据2(j, 3)
  12.             If a1 = a2 Then 都有(a1) = Array(数据1(i, 1), 数据1(i, 2), 数据1(i, 3)): GoTo 100
  13.         Next j
  14.         一独有(a1) = Array(数据1(i, 1), 数据1(i, 2), 数据1(i, 3))
  15. 100:
  16.     Next i
  17.     For j = 3 To UBound(数据2)
  18.         a2 = 数据2(j, 1) & 数据2(j, 2) & 数据2(j, 3)
  19.         For i = 3 To UBound(数据1)
  20.             a1 = 数据1(i, 1) & 数据1(i, 2) & 数据1(i, 3)
  21.             If a2 = a1 Then GoTo 200
  22.         Next i
  23.         二独有(a2) = Array(数据2(j, 1), 数据2(j, 2), 数据2(j, 3))
  24. 200:
  25.     Next j
  26.     If 一独有.Count > 0 Then
  27.         [i6].Resize(一独有.Count, 3) = Application.Transpose(Application.Transpose(一独有.items))
  28.     Else
  29.         [i6] = "无"
  30.     End If
  31.     If 二独有.Count > 0 Then
  32.         [m6].Resize(二独有.Count, 3) = Application.Transpose(Application.Transpose(二独有.items))
  33.     Else
  34.         [m6] = "无"
  35.     End If
  36.     If 都有.Count > 0 Then
  37.         [q6].Resize(都有.Count, 3) = Application.Transpose(Application.Transpose(都有.items))
  38.     Else
  39.         [q6] = "无"
  40.     End If
  41. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-9-15 16:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub 提取异同ynzsvt()
  2. Dim a1$, Arr1, 一独有, 二独有, 都有, 数据1, 数据2, i&
  3. Set 一独有 = CreateObject("scripting.dictionary")
  4. Set 二独有 = CreateObject("scripting.dictionary")
  5. Set 都有 = CreateObject("scripting.dictionary")
  6. 数据1 = Range("a1").CurrentRegion
  7. 数据2 = Range("e1").CurrentRegion
  8. For i = 3 To UBound(数据1)
  9.   Arr1 = Array(数据1(i, 1), 数据1(i, 2), 数据1(i, 3))
  10.   a1 = Join(Arr1, "|")
  11.   一独有(a1) = Arr1
  12. Next i

  13. For i = 3 To UBound(数据2)
  14.   Arr1 = Array(数据2(i, 1), 数据2(i, 2), 数据2(i, 3))
  15.   a1 = Join(Arr1, "|")
  16.   If 一独有.Exists(a1) Then
  17.    一独有.Remove (a1): 都有(a1) = Arr1
  18.   Else
  19.    二独有(a1) = Arr1
  20.   End If
  21. Next i

  22. '输出
  23. If 一独有.Count > 0 Then
  24.   [i6].Resize(一独有.Count, 3) = Application.Rept(一独有.Items, 1)
  25. Else
  26.   [i6] = "无"
  27. End If
  28. If 二独有.Count > 0 Then
  29.   [m6].Resize(二独有.Count, 3) = Application.Rept(二独有.Items, 1)
  30. Else
  31.   [m6] = "无"
  32. End If
  33. If 都有.Count > 0 Then
  34.   [q6].Resize(都有.Count, 3) = Application.Rept(都有.Items, 1)
  35. Else
  36.   [q6] = "无"
  37. End If
  38. End Sub
复制代码

评分

1

查看全部评分

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 01:49 , Processed in 0.024263 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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