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

我正在帮助一个朋友在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类中有2辆来自AUDI,所以供应商A会提供两者的最低价格)。

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

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

我build议使用这样一个长的if链:= if(vendor = A,averageif(input条件并select平均值的供应商A的列),如果(vendor = B,average(input条件和select供应商B的列作为平均值)等等)。

但是这种方法显然是有限的,不能很好地扩展到更高维度。

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

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

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

这看起来像这样: 使用sumif / countif汇总表格数据

然后,您可以通过匹配最低价格find最便宜的供应商。 例如,在我的示例图片中,最便宜的audi C类供应商是:

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

很多这可以使用数据透视表来完成。 如果这是一个单一的事情,我会走这条路线,如果它需要自动化,然后尝试使用一个multicondtional VLOOKUP(需要inputmatrix公式: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/