2017-09-05 95 views
0

我试图将主密钥更改为“新密钥”,如果源和目标匹配旧密钥。一起使用If和Vlookup声明

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

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

enter image description here

+0

为什么它会返回LondonItaly而不是London1Italy? –

+0

我正在尝试使用if和vlookup语句。我认为它返回了错误的值,因为逻辑错误是不正确的。 –

+0

你的问题不清楚。列B和C有什么用处? –

回答

2

试试这个公式中的Sheet1D2和拖下来,

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

我会使用一个索引/匹配的解决方案,而不是一个VLOOKUP。 vLookup适用于简单的任务,但是当你尝试做更复杂的事情时,它通常不会工作。我现在发现它几乎每次都是一个更简单的解决方案(尽管我不确定它在性能上如何比较)。

尝试这样的事情在你的表1单元格D2:

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

这将完成开始与匹配部分:

它会检查列表中Sheet2的A2:A4的比赛与Sheet1单元格A2中的字符串相同。如果发现它,它将返回一个行号,如果没有,它将返回一个错误。

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

因此,我们使用IFERROR来捕获表1中MasterKey不存在的情况。在这种情况下,我假设您只想保留表1中的MasterKey,但您可以更改对任何你喜欢的事物。

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

+1

同意的INDEX和MATCH比VLOOKUP更有用和更动态,当想要返回结果数组而不是单个值时,也值得学习如何使用OFFSET和MATCH。 – PeterH