如果右侧的列匹配,如何从一个范围复制到单元格?

How to copy to cells from a range if the columns to the right match?

我使用 VLOOKUP 并以编程方式寻找解决方案,但找不到。希望大家帮帮忙

我有两个包含相同 headers 和相似数据的电子表格。一个是完整的,另一个不是。已完成的电子表格的第一列(我们称之为 "ID")搞砸了。

我想将不完整版本的 "ID" 列中的值复制到新版本,具体取决于每个单元格右侧(我们称之为 "Names")是否匹配。

澄清一下,算法或公式必须查看旧(不完整)版本的 "Names" 列,如果在新版本中找到匹配项,则将其复制到其左侧。

我不能只按字母顺序排序并复制和粘贴,因为完成的工作表有一些可能需要的副本。

EDIT: EXAMPLE OF MY DATA:
Sheet1                                    Sheet 2
ID      NAME                     ID           Name        Age       
112     John                   156           Dog         11
113     Bob                    1xx           Bob         15    
156     Dog                    1xx           Bob         16 
                               1xx           John        18

由于 ID 被弄乱了(因为我使用的 ID 在从 Google Fusion Tables 导出时被弄乱了)我需要将旧版本的 "Ids" 复制到新文件.这只是一个简单的例子,我有超过20万行数据。

假设新电子表格称为 "New",旧电子表格称为 "Old," 并假设名称出现在每个电子表格的 A 列中,从第 1 行开始,然后在列中使用此公式新电子表格的 B:

=iferror(vlookup(New!A1,Old!$A:$A,1,false),"?????")

因此您的电子表格如下所示:

      A             B
1    Coke         =iferror(vlookup(New!A1,Old!$A:$A,1,false),"?????")
2    Pepsi        =iferror(vlookup(New!A2,Old!$A:$A,1,false),"?????")
3    Sprite       =iferror(vlookup(New!A3,Old!$A:$A,1,false),"?????")
4    asdfvasdl    =iferror(vlookup(New!A4,Old!$A:$A,1,false),"?????")
5    Dr. Pepper   =iferror(vlookup(New!A5,Old!$A:$A,1,false),"?????")

它应该像这样显示:

      A             B
1    Coke         Coke         
2    Pepsi        Pepsi        
3    Sprite       Sprite       
4    asdfvasdl    ???????
5    Dr. Pepper   Dr. Pepper   

假设 ID 在两个 sheet 的 A1 中并且 xx 表示要替换的 ID,请在 Sheet 2 和A2 那里:

=IF(ISNUMBER(B2),B2,INDEX(Sheet1!A:A,MATCH(C2,Sheet1!B:B,0)))  

复制下来以适应。

第一部分 ISNUMBER(B2) 测试数据集中混合了正确和损坏的数字 ID。如果 一个数字 损坏,则可能无法从提供的信息中识别损坏。

因此,如果该测试通过,请接受来自损坏的 sheet(即 B2)的值。

如果测试失败,则在不完整的sheet(即Row4)中找到相关Name的位置(对于Row2,相关名称为Dog)并使用INDEX 在不完整的 sheet 中查找与 Dog(其左侧)关联的值。