有没有办法,只使用内置的Excel函数来检查一组数据与另一组数据?
更具体地说,假定工作表上有完整的名称和地址列表。 还有第二个工作表,其中包含全部工作表中的一部分名称以及最近更新的地址。
有没有办法循环整张纸上的所有名字,检查它是否与修改过的纸张上的任何一个名字相匹配,如果是,则更新整张纸上的相关地址和第二个相关的新地址片?
我设法让它成功检查sheet1中的名称与sheet2上的名称,但是我不知道如何在匹配的情况下告诉公式什么单元格获取地址信息。
单元格的格式是两个工作表的名字,姓氏,地址1,地址2,城市,州,邮政编码。
VLOOKUP是您正在寻找的function。 一旦你掌握了这一点,你可能想看看INDEX AND MATCH函数,它可以更有效地(有时)达到相同的结果。
有关VLOOKUP的完整说明,请参阅Microsoft的VLOOKUP支持页面
为每个人提供一个唯一的ID代码是非常有帮助的。 如果有,请将其包含在两个数据集的A列中。 如果你没有,你可以构build一个ID字段,但是你需要做一些手工的工作,以确保它是唯一的。 (关于如何在答案结束时构造ID码的build议)
把这个ID放在A列中。BH列出你的其他字段,所以address1将在D列中。
您将需要绝对参考您的原始数据。 我们用旧数据Worksheet1和新数据Worksheet2调用工作表。 然后原始数据(包括ID代码)的参考将为Worksheet1!$ A:$ H
VLOOKUP会将新工作表中的ID代码与旧工作表中的ID代码进行匹配,然后从指定的列中提取数据。 要查找新数据集中第一个人的匹配地址1,可以使用以下公式:
=VLOOKUP(A1,Worksheet1!$A:$H,4,0)
哪里
- “A1”是你想要匹配的id代码。
- “Worksheet1!$ A:$ H”是原始数据
- “4”告诉excel在原始数据中的第4列(“D”)
- 如果没有完全匹配,“0”告诉excel只返回一个错误。 (这个很重要。)
为每个要比较的列执行一次(地址2将与地址1相同,但将引用列5而不是列4)。 Havind这样做,你可以复制到新的工作表中的其余行。
上面的过程将旧数据拉入新工作表的适当行。 如果你只是想知道某个特定领域是否有变化,你可以这样做:
=IF(D1=VLOOKUP(A1,Worksheet1!$A:$H,4,0),"","changed")
显然有很多方法可以细化这些信息并压缩信息。