Excel以基于另一个工作表中的查找replace单元格值

无法弄清楚,我search了几个小时,并使用vlookup进行testing。

我想要更改或replacesheet1列A中的单元格的值如果列P中的值位于sheet2中列A中find。

我接近我想要的,但是当没有find匹配时,我得到空白单元格。 如果找不到匹配,我需要列A中的单元格保持其原始值。

我使用的公式:

=IFERROR(VLOOKUP(P2,sheet2!$A$2:$B$13,2,FALSE),"") 

工作表Sheet1:

  AP 1 [References]---[ID numbers] 2 [ 000001 ]---[ 123 ] 3 [ 000002 ]---[ 456 ] 4 [ newref ]---[ 999 ] 5 [ 000003 ]---[ 789 ] 

Sheet2中:

  AB 1 [ID Numbers]---[References] 2 [ 123 ]---[xxx-000001] 3 [ 789 ]---[xxx-000003] 4 [ 456 ]---[xxx-000002] 

结果表1应该是:

  AP 1 [References]---[ID numbers] 2 [xxx-000001]---[ 123 ] 3 [xxx-000002]---[ 456 ] 4 [ newref ]---[ 999 ] 5 [xxx-000003]---[ 789 ] 

如果这不可能实现也许使用前缀可以工作? 像添加(xxx-)时发现匹配?

感谢您的build议,感谢您的指点。

因为必须将Sheet1中Col A的原始值更改为公式,所以它永远不会“保持原始值”。

你将不得不添加另一列的原始值A (它可以隐藏,但必须在那里)

我们假设Col Q保存了A的原始值,在A2单元格中,公式应该是: =IFNA(VLOOKUP(P2,sheet2!$A$2:$B$13,2,FALSE),Q2)并假设Q2保持newrefA2 original value它应该为你工作的A2 original value

  APQ 1 [References]---[ID numbers]---[original values] 2 [ 000001 ]---[ 123 ]---[hello] 3 [ 000002 ]---[ 456 ]---[world] 4 [ newref ]---[ 999 ]---[newref] 5 [ 000003 ]---[ 789 ]---[loremipsum] 

顺便说一句 – 如果你真正想要的是从sheet2的值或显式stringnewref你可以简单地做=IFNA(VLOOKUP(P2,sheet2!$A$2:$B$13,2,FALSE),"newref")

还要注意我使用了IFNA而不是IFERROR来获得更准确的结果(例如,当使用IFERROR时, #REF错误将被replace为newref