回答
您可以在Excel工作表中使用VLOOKUP
函数来帮助查找其他工作表中的“缺失”数据。例如,采取以下两个工作表:
Sheet1
------
A B C
1 aa
2 bb
3 cc
4 dd
。
Sheet2
------
A B C
1 aa
2 bb
3 dd
添加以下公式对细胞在Sheet
B1
和通过细胞B4
向下拖动式:
=IF(ISERROR(VLOOKUP(A1,Sheet2!$A$1:$A$3,1,FALSE)),"MISSING FROM OTHER SHEET","")
Sheet1
应说明,从另一片缺少B
列项,像这样:
Sheet1
------
A B C
1 aa
2 bb
3 cc MISSING FROM OTHER SHEET
4 dd
您可以在Excel中使用ADO
Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
Dim i As Integer, j As Integer
''This is not the best way to refer to the workbook
''you want, but it is very conveient for notes
''It is probably best to use the name of the workbook.
strFile = ActiveWorkbook.FullName
''Note that if HDR=No, F1,F2 etc are used for column names,
''if HDR=Yes, the names in the first row of the range
''can be used.
''This is the Jet 4 connection string, you can get more
''here : http://www.connectionstrings.com/excel
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
''Late binding, so no reference is needed
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
''Query example:
strSQL = "SELECT Country " _
& "FROM [Sheet1$] a " _
& "WHERE Country NOT IN " _
& "SELECT Country FROM [Sheet2$]"
''Open the recordset for more processing
''Cursor Type: 3, adOpenStatic
''Lock Type: 3, adLockOptimistic
''Not everything can be done with every cirsor type and
''lock type. See http://www.w3schools.com/ado/met_rs_open.asp
rs.Open strSQL, cn, 3, 3
If rs.Count>0 Then
MsgBox rs.GetString
End If
也可以使用CopyFromRecordset快速将记录集写入工作表。
解决方案取决于涉及的行数以及需要执行此操作的次数,以及您希望如何显示信息。
如果你没有很多国家,你需要这样做只有一次,最快的解决方法是:
- 复制两列到一个临时表。
- 按字母顺序对两列进行排序。
- 手动通过它们并找出差异。
如果你只需要做一次,但有很多国家,vlookup选项是最快的。
如果您需要重复此过程很多次,并且您需要在某处使用该列表(即在其他表单中),那么您可以使用更复杂的解决方案,包括两个额外的查找列和透视表。但是在那个时候,我会考虑将它移动到更易于管理的地方,比如一个小型数据库。
我使用以下独家软件。
[Excel Diff - http://www.suntrap-systems.com/ExcelDiff/]
下面还有其他的软件站点。
[http://www.softpedia.com/]
来自appliedalgo.com的DataExplorer - 您可以比较来自csv,Excel甚至结果的结果集从任何SQL查询(因此,数据或模式,#行/列......)针对MySQL,Microsoft SQL,Firebird设置。它们也支持不精确匹配 - 数值%差异阈值。对于字符串数据,模糊相似性度量。然而,有一个价格标签 - http://www.youtube.com/watch?v=Se0wt7mSkxM如果你的老板不想付钱,请查看这个链接:http://www.wikihow.com/Compare - 数据功能于Excel中 – 2014-01-02 09:49:21
我发现,在Excel中的某些版本是比较文件的功能 - 但通常是禁用的,但是instaled。有一天,我偶然发现如何使用它。
如果您instaled TortoiseSVN的(真的): - 选择Excel文件在文件管理器 比较 - 打开上下文菜单,然后选择TortoiseSVN> DIFF - 它打开的Excel中的“比较模式”
- 1. 比较两个excel工作表
- 2. Excel公式 - 比较两个表的值
- 3. Excel - 比较两个文件?
- 4. 比较两个excel文件
- 5. Excel比较两行
- 6. 比较两个表
- 7. Excel比较表
- 8. 如何比较Excel表中的两行?
- 9. 用于比较两个Excel表格的Excel工具
- 10. 比较MS Excel 2010中的两个Excel表格
- 11. Excel公式比较两列
- 12. Excel公式比较两个数组
- 13. 比较两个excel文件的差异
- 14. Java excel - 比较两个字符串
- 15. 比较两个excel VBA项目
- 16. 与Excel countif函数的两个比较
- 17. Excel - Max在比较两个阵列后
- 18. 在Excel中比较两个范围
- 19. mysql比较两个表
- 20. 比较两个列表linq
- 21. 比较两个列表
- 22. 比较两个列表
- 23. 比较两个列表
- 24. 比较两个组列表
- 25. 比较两个表的值
- 26. sql比较两个表格
- 27. PHP比较两个表
- 28. 比较两个表SQLSE
- 29. SQL - 比较两个表格
- 30. 如何比较两个表
可能的复制:http://stackoverflow.com/questions/1500153/find-the-differences-between-2-excel-worksheets/1500573#1500573 – hawbsl 2010-06-16 12:45:58