Excel函数,根据旧/新ID列表更改ID编号';s

Excel函数,根据旧/新ID列表更改ID编号';s,excel,function,Excel,Function,我有一个身份证号码列表,供现在必须有新身份证的人使用。如下图所示,在excel中,我将旧身份证和新身份证放在彼此相邻的表格中。所以旧的ID:111实际上是ID:123,以此类推。我有一个需要更改的id列表(更改此id),我希望新更改的id进入结果列。那么,有没有一种方法可以让函数为我做这件事,而不是手动检查和更改它们?它将查看“更改此ID”列中的内容并查看444,然后转到“旧ID”列并查找444,然后转到同一行中的“新ID”列并查找101,然后将其放入“结果ID”列。然后会去下一行做333,以此

我有一个身份证号码列表,供现在必须有新身份证的人使用。如下图所示,在excel中,我将旧身份证和新身份证放在彼此相邻的表格中。所以旧的ID:111实际上是ID:123,以此类推。我有一个需要更改的id列表(更改此id),我希望新更改的id进入结果列。那么,有没有一种方法可以让函数为我做这件事,而不是手动检查和更改它们?它将查看“更改此ID”列中的内容并查看444,然后转到“旧ID”列并查找444,然后转到同一行中的“新ID”列并查找101,然后将其放入“结果ID”列。然后会去下一行做333,以此类推

Old ID | New Id | Change This Id| Result Id| Name | Address |
-------------------------------------------
111    | 123    | 444           | 101      |
222    | 456    | 333           | 789      | 
333    | 789    | 111           | 123      |
444    | 101    | ...           | ...      |
555    | 334    | ...           | ...      |
...    | ...    |

您可以使用
VLOOKUP
函数并编写公式来查找需要更改的ID的
新ID

    A      | B      | C             | D        | E    | F       |
 1  Old ID | New Id | Change This Id| Result Id| Name | Address |
    -------------------------------------------------------------
 2  111    | 123    | 444           | 101      |
 3  222    | 456    | 333           | 789      | 
 4  333    | 789    | 111           | 123      |
 5  444    | 101    | ...           | ...      |
 6  555    | 334    | ...           | ...      |
    ...    | ...    |
因此,对于上述数据集,使用行号(1、2等)和列名(A、B等),您可以在单元格D1中编写如下公式:

=VLOOKUP(C2,A:B,2,FALSE)

可能有一些Id没有改变。为了避免这些Id出现错误,只需将它们复制过来,您可以将VLOOKUP公式封装在IFERROR函数中(感谢@Jeeped的想法,请参见下面的注释),如下所示:

=IFERROR(VLOOKUP(C2,A:B,2,FALSE),C2)

在单元格D1中使用公式后,可以使用自动填充功能填充列D中的所有新Id

参考资料


我在想,如果找不到新的文件,使用包装可以返回原始文件,这样可能会更好一些。e、 g.
=IFERROR(VLOOKUP(C2,A:B,2,FALSE),C2)
@真是个好主意,避免了两步合并未更改的Id。我会把它包括在我的答案中。@JosephB谢谢你的回复,我明天会试试这个,等它起作用的时候再接受答案