【问题标题】:How to find and match data in Excel如何在 Excel 中查找和匹配数据
【发布时间】:2016-01-04 09:38:06
【问题描述】:

我有一个 Excel 文件,其中包含两张表格,一张包含特定用户名列表(例如在 A 列中),另一张包含完整的用户名列表(A 列)和城市(B 列)。

我需要一个公式来匹配这两张表之间的用户名,然后将相关城市放在第一张表的用户名旁边,例如在它的 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 上的城市的值,但如果它有 #N/A 错误(这很可能),则返回 V 列,该列还包含那些没有城市名称的行上的城市名称他们的 M 列。

【问题讨论】:

    标签: excel excel-formula vlookup


    【解决方案1】:

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

    =IF(ISNA(VLOOKUP(B1, $A$1:$A$1957, 1, FALSE )), "MISSING", "MATCHED!")

    并将此公式一直复制/粘贴到您的“B”数字列以进行检查。

    首先在 A1:A1957 范围内查找 B1。如果没有找到匹配项,它将返回 NA。然后我们将它与 IF 语句结合起来,以便 IF VLOOKUP 结果为 NA,我们给出“MISSING”消息。如果不是 NA 则意味着我们找到了匹配项,因此我们会给出“匹配!”的消息。 显然,您可以将丢失/匹配的消息更改为您喜欢的任何内容。 best online MBA

    【讨论】:

    • 感谢您的回复。其实我已经从整个公式中删去了一部分到这里,主要的更复杂,里面有一个IF。我将使用这些详细信息更新问题。
    【解决方案2】:

    几个cmets: 1)为什么:B1&"",?试试:B1, 2) 如果查找表只有 2 列,则查找列 13 和 22 都不可能。因此,这些值应该是 2,或者您需要将列范围扩展到您希望从中检索数据的数量。 您需要从您的范围中的第一个查找列开始计算列的数量......如果要从列 M 检索到列 N 的数据在列 N 中,那么这应该是 2。对于 N 到 V,这应该是 9。尝试:

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

    【讨论】:

    • 谢谢。 1)有人告诉我这是类型转换所需要的,所以如果你说,它似乎不是必需的。 2)我的问题的第一部分是我在第二个扩展部分提到的整个事情的简化示例。所以数字是正确的。
    【解决方案3】:

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

    =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))
    

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2017-03-22
      相关资源
      最近更新 更多