如何在Excel中查找和匹配数据

时间:2016-01-04 09:38:06

标签: excel excel-formula vlookup

我有一个Excel文件,其中包含两个工作表,一个包含特定用户名列表(例如在A列中),另一个包含完整的用户名列表(列A)以及城市(列B)。< / p>

我需要一个公式来匹配这两个工作表之间的用户名,然后在第一个工作表的用户名旁边显示相关的城市,例如在其B列中。

以下是我在第二张专栏B栏中尝试但未成功的内容:

=VLOOKUP(A1&"", Sheet1!$A$1:$B$1000, 2, FALSE)

我还用A1 + 0取代了第一个参数,如果它有帮助的话,第二个也没有任何$符号。

以下是我原始公式的全部内容:

=IF(ISERROR(VLOOKUP(B1&"", Sheet1!$M$1:$N$1170, 13, FALSE)), VLOOKUP(B1&"", Sheet1!$N$1:$V$1170, 22, FALSE), VLOOKUP(B1&"", Sheet1!$M$1:$N$1170, 13, FALSE))

它假设从Sheet2的B列(上面描述的第一个只有特定的用户名列表)获取用户名,并在Sheet1的第N列中搜索匹配(第二个描述的表,其中包含用户名和城市),然后返回放在M列上的city的值,但如果它有#N / A错误(很可能),则返回V列,而不是在没有城市名称的行中保留城市名称他们的M栏。

3 个答案:

答案 0 :(得分:0)

您可以使用VLOOKUP在A列表中查找B中的项目。如果找不到匹配项,VLOOKUP将返回#N / A.您也可以将它与IF语句结合使用,这样如果它丢失了,它会给你一些消息。例如,在C1中输入

= IF(ISNA(VLOOKUP(B1,$ A $ 1:$ A $ 1957,1,FALSE)),&#34; MISSING&#34;,&#34;匹配!&#34;)

并将此公式一直复制/粘贴到&#34; B&#34;要检查的数字。

这将首先在A1:A1957范围内查找B1。如果找不到匹配则返回NA。然后我们将它与IF语句结合起来,以便IF VLOOKUP得到NA,我们给出一个消息&#34; MISSING&#34;。如果它不是NA那么那就意味着我们找到了一个匹配,所以我们给出了一个&#34; MATCHED!&#34;的消息。 很明显,您可以将丢失/匹配的消息更改为您喜欢的任何内容。 best online MBA

答案 1 :(得分:0)

一些评论: 1)为什么:.forest-road { height: auto; color: #FFF; max-width: 75%; /*filter: invert(100%); Comment this line!!!! :) */ } ?尝试:B1&"", 2)如果查找表只有2列,则查找列13和22都不可能。因此,这些值应该是2,或者您需要将列范围扩展到您希望从中检索数据的数量。 您需要计算从您的范围中的第一个查找列开始的列数量,以便...如果要从列M检索到列N的数据在列N中,那么这应该是2.对于N到V,这个应该是9.尝试:

  

= IF(ISERROR(VLOOKUP(B1&amp;“”,Sheet1!$ M $ 1:$ N $ 1170,2,FALSE)),VLOOKUP(B1&amp;“”,Sheet1!$ N $ 1:$ V $ 1170,9, FALSE),VLOOKUP(B1&amp;“”,   Sheet1!$ M $ 1:$ N $ 1170,2,FALSE))

答案 2 :(得分:0)

在原始公式中(从第二部分开始),您的范围从错误的列开始:应该从具有匹配查找值的列开始。我假设A列。从A列开始,它是22列到V,13列到N.正确的公式应该是:

=IF(ISERROR(VLOOKUP(B1&"", Sheet1!$A$1:$N$1170, 13, FALSE)), VLOOKUP(B1&"", Sheet1!$A$1:$V$1170, 22, FALSE), VLOOKUP(B1&"", Sheet1!$A$1:$N$1170, 13, FALSE))

例如,如果您在例如B中具有匹配的用户名,则公式应为:

=IF(ISERROR(VLOOKUP(B1&"", Sheet1!$B$1:$N$1170, 12, FALSE)), VLOOKUP(B1&"", Sheet1!$B$1:$V$1170, 21, FALSE), VLOOKUP(B1&"", Sheet1!$B$1:$N$1170, 12, FALSE))