一起使用If和Vlookup语句

我试图将主密钥更改为“新密钥”,如果源和目标匹配旧密钥。

基本上,表1中的主密钥会查看表2中是否存在密钥,如果密钥存在,它将拉出新的密钥。 如果表2中不存在主密钥,它将不会改变。 这将是原始来源和目的地。 我已经尝试使用vlookups if语句,但是我被困于逻辑错误。 有谁知道如何返回新的价值,或者如果有另一种方法来解决这个问题?

我附上了一个例子。 在这个例子中,表1中的主键是由伦敦和意大利一起制成的。 这个主密钥需要在表2中查找(位于列A)如果它在那里,它将拉新密钥(列D)。

在这里输入图像说明

Sheet1 D2中试试这个公式并将其拖下来,

 =IFERROR(VLOOKUP(A2,Sheet2!A:F,4,FALSE),A2) 

我会使用索引/匹配解决scheme而不是vLookup。 vLookup对于简单的任务来说非常棒,但是当你试图做更复杂的事情时,它通常不会工作。 我现在发现几乎每次都是更简单的解决scheme(虽然我不确定它在性能上如何比较)。

在你的table1单元格D2中尝试这样的事情:

 =IFERROR(INDEX(Sheet2!$A$2:$F$4,MATCH(Sheet1!A2,Sheet2!$A2:$A4,0),4),Sheet1!A2) 

这将做什么是匹配部分开始:

它将检查Sheet2 A2:A4中与Sheet1单元格A2中相同string的匹配的列表。 如果发现它,它将返回一个行号,如果没有,它将返回一个错误。

接下来,INDEX将第二个表作为源,并使用Match中确定的行号和第四列(即D列)中的行号,并返回该值。 如果匹配返回一个错误,这也将返回一个错误。

所以,我们使用IFERROR来捕获表1中MasterKey不存在的情况。在这种情况下,我假设你只想保留表1中的MasterKey,但是你可以将它改为任何你喜欢。

如果可行,只需将公式从Sheet1!D2下拉到Sheet1!D4。 此外,如果您的Table2比您显示的要大得多,则需要调整索引和匹配input以引用正确的范围大小。 请记住使用“$”,因为它们会阻止公式在拖动时更改这些单元格。