如果右侧的列匹配,如何从一个范围复制到单元格?
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
(其左侧)关联的值。
我使用 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
(其左侧)关联的值。