Excel - VLOOKUP问题

时间:2018-05-02 21:07:40

标签: excel excel-formula

我有这个:

enter image description here

我的问题:

列F2中的

我想要R2 - > IF - > B2 + C2 + D2存在于O:O; P:P; Q:Q中 但我不知道如何使用多列的VLOOKUP

我的尝试是' =VLOOKUP(B2;O:O;4;FALSE)'我不知道为什么我用了4 ...因为我把R2算作来自O2的索引4 ......

3 个答案:

答案 0 :(得分:1)

这只是一个多列查找。虽然两个列查找更常见,但三个列查找并不罕见。

=index(r:r, aggregate(15, 6, row($2:$999)/((o$2:o$999=b2)*(p$2:p$999=c2)*(q$2:q$999=d2)), 1))

这将从列R返回第一个匹配的列O:Q列的值。在多个匹配的情况下,您可以通过将15更改为14来返回最后一个匹配。

由于您的返回结果应该是数字,因此也可以使用sumif。

=sumifs(r:r, o:o, b2, p:p, c2, q:q, d2)

然而,这会导致偏差结果超过单个匹配。

在您自己的vlookup中,4表示查找范围的第四列。由于您只提供单个列(例如O:O),因此在不将查找范围更改为O:R的情况下,永远不会从R列返回值。

答案 1 :(得分:1)

另一种方法(因为它们看起来像日期DD / MM / YYYY)将每组三列转换为日期

=INDEX(R:R,MATCH(DATE(D2,C2,B2),INDEX(DATE(Q:Q,P:P,O:O),0),0))

@Jeeped指出这对于完整列来说是慢的,所以plz使用像

这样的公式
=INDEX(R$1:R$100,MATCH(DATE(D2,C2,B2),INDEX(DATE(Q$1:Q$100,P$1:P$100,O$1:O$100),0),0))

并调整范围以包含您的数据。

答案 2 :(得分:0)

如果O:O; P:P; Q:Q是唯一的,您可以使用:

=lookup(1,0/((O:O=B2)*(P:P=C2)*(Q:Q=D2), R:R)