如果在MS EXCEL中匹配,则将具有重复项的列值替换为另一列

时间:2015-06-23 05:21:05

标签: excel

我有一个表,比如说有两列的TABLE-1。列是(ID,NAME,GROUP_NAME,IS_APPROVER),ID不是主键。有许多行具有相同的ID。现在我得到了一个新表,比如带有列的TABLE-2,(NEW_ID,OLD_ID),在此表(表-2)中,OLD_ID是主键。我必须替换TABLE-1中ID的所有值,并使用OLD_ID(在表-2中)比较NEW_ID(在TABLE-2中)值。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

假设您的表格如下所示:

Tables example

您应该能够使用INDEX和MATCH的组合来获得所需的结果:

=INDEX(TABLE-2[NEW_ID],(MATCH(TABLE-1[@ID],TABLE-2[OLD_IDs],0)))

如果您的数据实际上不在表中但在范围内,则通用公式为:

=INDEX(ColumnFromWhichValueShouldBeReturned, (MATCH(LookupValue, ColumnAgainstWhichToLookup, 0)))

按照OP的进一步信息编辑:

如果并非所有ID都在TABLE-2中匹配,您可以使用以下内容:

=IFERROR(INDEX(TABLE-2[NEW_ID],(MATCH(TABLE-1[@ID],TABLE-2[OLD_IDs],0))), Table1[@ID])

在实践中,您可以看到以下内容:

Showing the formula working in practice

答案 1 :(得分:0)

您可以使用VLOOKUP使其更容易一些。 enter image description here

我在第一个表中添加了一个新列,该列的公式只是

=VLOOKUP([@ID], Table2[#All], 2)

答案 2 :(得分:-3)

这是解决方案..

参考:https://www.ablebits.com/office-addins-blog/2014/08/13/excel-index-match-function-vlookup/

= INDEX(TABLE_2 [NewIDs],MATCH(TABLE_1 [@ID],TABLE_2 [Old_ID],0)) 例如:= INDEX($ K $ 2:$ K $ 253,MATCH(B2,$ J $ 2:$ J $ 253,0))