【问题标题】:VLOOKUP with multiple column matches具有多列匹配的 VLOOKUP
【发布时间】:2023-03-14 10:56:01
【问题描述】:

表 1

A   | B         | C
0   | 100001    | 855.71
0   | 100002    | 73.68
0   | 100003    | 704.58
0   | 100004    | 0
0   | 100005    | 0
0   | 100006    | 604.57
0   | 100007    | 15638.66
0   | 100008    | 1085.85

表 2

A   | B         | C
0   | 100001    | 
0   | 100002    | 
0   | 100003    | 
0   | 100004    | 
0   | 100005    | 
0   | 100006    | 
0   | 100007    | 
0   | 100008    | 
0   | 100009    | 
0   | 100010    | 
0   | 100011    | 

这就是我在 Excel 中的 2 张工作表的样子,我需要在第 2 页上进行 vlookup,查找第一张工作表中的表格,如果 A 列和 B 列匹配,则打印出 C 列中的内容。所以匹配 0 和 100001 将显示 855.71。

我尝试将列 A 和 B 连接在一起并使用以下公式进行匹配:

 =VLOOKUP(A3&B3,Sheet1!$A$1:$D$8,3,FALSE)

但我只是收到 #N/A 错误,任何帮助都会很棒。

【问题讨论】:

    标签: excel match vlookup


    【解决方案1】:

    您必须在 Sheet1 的新第 4 列中连接才能以这种方式使用 Vlookup。不过,您可以使用 sumifs(),因为您的查找是一个数字并且查找值似乎是唯一的:

    =sumifs(Sheet1!C:C,Sheet1!A:A,A1,Sheet1!B:B,B1)
    

    作为替代方案,如果 C 中的值不是数字并且您不希望它们相加,则可以使用 index()sumproduct() 的组合,其中 sumproduct() 将提供匹配的行号找到并且index() 将从该行检索值:

    =index(Sheet1!C1:C500, sumproduct((A1=Sheet1!A1:A500)*(B1=Sheet1!B1:B500)*Row()), 1)
    

    这很难看,但它会让你不必为了连接一个键而创建一个多余的列。请注意,这仅在 A 和 B 是唯一的情况下才有效。如果多行 A 和 B 相同,则返回的 ROW() 将被求和,查找将不正确。

    【讨论】:

    • 谢谢!我得到了我的vlookup 之后,我重新制作了它并且效果很好,我可能拼写错误?但我也喜欢你的方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多