脚本来比较/对比两个单独的Excel文件 – 两者的导出差异

所以,今天我得到了一个任务在我的桌子上,我似乎无法得到这个脚本正常工作,完成上述任务。 我的老板给了我两个单独的.xlsx文件和两个名称列表。 她要求我查找并列出哪些名称出现在两个excel文件中,还要查找并列出哪些名称不会在每个文件上单独出现。

例如

  • FileA有Henry和Terry
  • FileB有Henry和Samantha
  • 生成FileC以显示Henry出现在FileA和FileB上
  • 生成FileD以显示Terry出现在FileA但不是FileB
  • 生成FileE以显示Samantha显示在FileB上,但不显示FileA

我开始尝试做拉比较列表的第一部分,但我已经不能得到这个工作。 它完成,但它不是正确的出口。 所有的用户列在列A中的两个xlsx文件中。

$strReference = Get-Content "C:\Users\person\Desktop\FileA.xlsx" $strDifference = Get-Content "C:\Users\person\Desktop\FileB.xlsx" Compare-Object $strReference $strDifference 

说实话,这是我甚至不认为值得为之编写脚本的任务。 相反,只要在Excel工作表中的每个文件上使用= COUNTIF()函数来检查每个文件名是否出现在另一个文件中就好像简单得多。

所以你最终得到的是每个文件中的人员列表,其中= COUNTIF(其他工作表中的人员姓名)= 1。这是你在两个文件之间通用的人员列表。 你也有一些相同的COUNTIF = 0,这些是你唯一的条目。

当然,对于名字你必须小心,它们的格式是一样的,但是无论你是在VBA中还是在工作表中,这样做的工作都是一样的。

使用COUNTIF也有额外的好处,你会发现工作表内的任何重复(虽然你会发现它在这个名字,在另一个工作表),如果这也是一个潜在的问题。

将File1中的名称复制并粘贴到新文件“File3”的A列中,然后将File2中的名称粘贴到File3的B列中,然后在File3的C列中,您可以执行以下操作: MATCH(B1,A:A,0)和File3的D列只是do = MATCH(A1,B:B,0)…返回值的单元格表示您有匹配,并且出现错误的单元格没有一个匹配。 我不认为你会需要这个VBA的VBA吗?