多个条件和多列的Excel查找值

时间:2015-05-21 13:28:01

标签: excel excel-formula

我正在帮助一位朋友在Excel中进行一些数据分析。 以下是我们的数据:

Car producer | Classification | Prices from 9 different vendors in 9 columns
AUDI | C | 100 200 300 400 500 600 700 800 900
AUDI | C | 100 900 800 200 700 300 600 400 500
AUDI | B | .. ..

现在,对于每个分类和每个生产者,我们制作了一个列表,显示9个供应商中哪个提供最低价格(就计数而言,例如,在C类中有来自AUDI的2辆汽车,所以供应商A将为两者提供最低价格。

我们需要什么:一种计算此供应商平均价格的方法。因此,如果我们看到供应商A在C级中的奥迪汽车价格最低,那么我们想知道这些汽车的供应商A的平均价格。

由于我不能使用“标准”索引匹配小方法,因为价格存储在9个不同的列中,所以我很难过。

我建议使用这样的长if链:= if(vendor = A,averageif(输入条件并选择供应商A的列作为平均值),if(vendor = B,average(输入)标准并选择供应商B的列为平均值),...等。)。

但是这种方法显然是有限的,并且不能很好地扩展到更高的尺寸。

我们也希望避免使用任何插件。

2 个答案:

答案 0 :(得分:1)

您将需要创建一个单独的表,其中包含行中的所有唯一分类以及列中的所有经销商(与您的相同,但删除了重复的行)。然后,在每个单元格中,取该分类*供应商组合的平均价格。这可以通过使用sumif / countif的组合来完成。例如,如果您的第二个表格在单元格M2:M [end]中有一个分类列,则计算供应商1提供的Audi C类的平均价格可能是:

=sumif(C$2:C$[end],"="&$M2,$B$2:$B$[end])/countif($B$2:$B$[end],"="&$M2)

这看起来像这样: summarizing table data using sumif/countif

然后你可以通过匹配最低价格找到最便宜的供应商。例如,我的示例图像中最便宜的audi C类供应商将是:

=index($N$1:$V$1,match(min($N2:$V2),$N2:$V2,0))

答案 1 :(得分:0)

很多可以使用数据透视表完成。如果它是一次性的东西,我会去那条路线,如果它需要自动化,然后尝试使用多分区VLOOKUP(需要输入矩阵公式:CTRL + ALT + SHIFT)。这只是一个示例,而不是基于您的数据:

{=VLOOKUP(A11&B11,CHOOSE({1\2},A2:A7&B2:B7,C2:C7),2,0)}

在chandoos网站上给出了更好的解释:http://chandoo.org/wp/2014/10/28/multi-condition-vlookup/