当标准在矩阵中存在多个时间时VLOOKUP

时间:2017-06-27 06:28:48

标签: excel

我有以下Excel电子表格:

      A             B          C            D
1  Product A      500      Product A       500 
2  Product B      800      Product A       700
3  Product C      450      Product A       300
4  Product A      700      Product B       800
5  Product A      300      Product B       400
6  Product C      300      Product B       250
7  Product B      400      Product C       450
8  Product B      250      Product C       300

A列 B列中列出了不同产品的销售额。产品可以在A列中多次出现,因为会显示产品的每次销售。

C栏中,不同的产品从A-C中分类。

D栏中,我想使用VLOOKUP从每个产品的 B列获取销售。

=VLOOKUP(C1,$A$1:$B$8,2)

但是,由于产品在 A列中多次出现,VLOOKUP只返回其中一个值。

如何更改VLOOKUP以获得同一产品的每次销售?

2 个答案:

答案 0 :(得分:0)

您无法获得所需的结果单VLOOKUP公式。 使用此数组公式:

=INDEX($B$1:$B$8,SMALL(IF($A$1:$A$8=C1,ROW($A$1:$A$8)-ROW(INDEX($A$1:$A$8,1,1))+1),COUNTIF($C$1:C1,C1)))

将其粘贴到D1并按 CTRL + SHIFT + ENTER 将其更改为数组公式,然后将公式下拉

答案 1 :(得分:0)

另一种方法:

在数据上方插入一个空行,然后将此公式放在D列中(如果需要,可以隐藏此列):

=MATCH(D2;INDIRECT("$A"& 2 + IF(D2=D1;E1;0) & ":$A$9");0)+IF(D2=D1;E1;0)

E列中的这个公式:

=INDEX($B$2:$B$9;E2)

MATCH与VLOOKUP的工作方式类似,但不是实际值,而是返回结果的索引。 INDIRECT("$A"& 2 + IF(D2=D1;E1;0) & ":$A$9")根据搜索值的先前索引更改搜索矩阵(例如,第一个"产品A"在索引1处找到,因此第二个"产品A"仅查找A3:A9,第二个"产品A"在索引4处,因此第三个"产品A"在A6中看起来:A9)。

第二个公式只是根据B列中的矩阵和D列中的索引提取值。