【问题标题】:Excel lookup value for multiple criteria and multiple columns多个条件和多个列的 Excel 查找值
【发布时间】:2015-05-21 13:28:01
【问题描述】:

我正在帮助一位朋友在 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 级奥迪汽车价格最低,那么我们想知道供应商 A 对这些汽车的平均价格。

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

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

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

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

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

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

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

    这看起来像这样:

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

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

    【讨论】:

    • 好的,这正是我几分钟前想出的。如果没有其他人能找到直接的方法,我会接受你的回答。除了我使用的是averageif,它似乎与sumif / countif具有相同的目的。
    【解决方案2】:

    这可以通过使用数据透视表来完成。如果它是一次性的,我会走那条路,如果它需要自动化,然后尝试使用多条件 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 2016-12-26
      • 1970-01-01
      • 2020-02-13
      • 2017-07-25
      • 1970-01-01
      相关资源
      最近更新 更多