Linux 比较两张excel表格并打印差异?

Linux 比较两张excel表格并打印差异?,linux,shell,perl,text-processing,Linux,Shell,Perl,Text Processing,我有两张excel表格sheetA和sheetB,我需要比较sheetA和sheetB中的一列,并打印差异 床单 床单 我需要将帐号与客户号码进行比较 sheetA中的所有账号都应出现在sheetB中的客户编号中,如果sheetB缺少任何账号,则我们应打印这些信息。 所有这些额外的客户号码在sheetB中没有出现在sheetA账号中,我也想打印出来。 我在读关于awk的书,我想我们可以用awk来实现它,但不知道怎么做 $ awk -F'|' 'NR==FNR{c[$1$2]++;next};c[

我有两张excel表格sheetA和sheetB,我需要比较sheetA和sheetB中的一列,并打印差异

床单

床单

我需要将帐号与客户号码进行比较

sheetA中的所有账号都应出现在sheetB中的客户编号中,如果sheetB缺少任何账号,则我们应打印这些信息。 所有这些额外的客户号码在sheetB中没有出现在sheetA账号中,我也想打印出来。 我在读关于awk的书,我想我们可以用awk来实现它,但不知道怎么做

$ awk -F'|' 'NR==FNR{c[$1$2]++;next};c[$1$2] > 0' sheetB sheetA
输出应为:

Account Number:
888281211
787878787
111212134

CustomerNumber:
792342108
792332668
760332429
791952441
676702288

VlookUp将用于这种匹配

=VLOOKUP(A2,B2:B9,1,FALSE)
将列AccountNumber中的编号与客户编号匹配,并生成列1的匹配编号。过滤掉不匹配的N/A您将从第1列获得所有不匹配的数字

不同的床单

=VLOOKUP(A2,Sheet1!$A$2:$A$7,1,FALSE)

考虑到表1为ACNUMBER,表2为Custnumber,您的预期结果是什么?你能发帖吗?不够回答,但我的2美分:1。现代Excel文件格式suffix.xlsx是基于xml的,因此可以使用以下工具进行解析:。要获得更复杂的结果,您可能需要使用Perl或另一种脚本语言和XML插件。2.如果您可以获得CSV输出,您可能可以使用传统的*nix工具awk解析它,sed和bash正确。@Kalanidhi用outputcompare two excel工作表更新了我的问题-您不能对excel.xls文件使用文本处理,您必须先将它们转储为text或.csv。excel文件格式包含的内容远远超过您在屏幕上看到的内容。尝试在记事本中打开excel文件,看看有什么-哎哟!此问题的标记已关闭。它与所有给定的标记类别无关。在我的例子中,我有两个不同的excel工作表,不在一个工作表中。。您的建议是否适用于两个不同的excel工作表?是的,它将起作用,选择B2时,请从其他工作表中选择它。=VLOOKUPA2,Sheet1$A$2:$A$7,1,错误,考虑到第1页是ACnumbers,第2页有我的工作表的CustnumberBoth。第1页和第2页有很多列,但第1页的第一列是AccountNumber,第2页的第一列始终是Customer Number。考虑到我已经看到了你们描述的1和sheet2,我应该运行上面的公式=VLOOKUPA2,Sheet1$A$2:$A$7,1,错。我对vlookup比较陌生,所以我试图理解..@falsh我也采取了同样的方法,我试图将结果填充在客户编号列旁边的sheet2中,所以选择A2,这是CustomerNumber第一个值,然后选择Shee11 AccountNumber列所有项目从A2到A7,1是列的索引,False表示精确匹配。希望你收到了。正如你所期望的那样。
=VLOOKUP(A2,B2:B9,1,FALSE)
=VLOOKUP(A2,Sheet1!$A$2:$A$7,1,FALSE)