Excel 2013 INDEX/MATCH 与 SUMIFS 查找具有多个参数的值的效率

Excel 2013 INDEX/MATCH 与 SUMIFS 查找具有多个参数的值的效率

我经常发现我需要使用多个参数从表中查找值。例如,在这张桌子我有两列,包含两个级别的类别(例如“食品”类别,其子类别为“杂货”、“餐馆”等)。

如果我想计算我在餐馆吃饭的花费占比,我需要提取食物/杂货的值并将其除以我所有食物记录的总数。我可以通过两种方式检索此参数的值:

  • 生成“钥匙”列是两个类别的串联,然后执行 INDEX/MATCH 来找到适当的值
    • 在“关键”示例中: INDEX($E$3:$E$9,MATCH("FoodRestaurants",$B$3:$B$9,0)))
  • 使用 SUMIFS() 对各列中带有“食品”和“杂货”标签的所有值求和
    • 在原始表中:SUMIFS($D$3:$D$9,$B$3:$B$9,"Food",$C$3:$C$9,"Restaurants")

从可用性角度来看,我倾向于后者,因为它更容易构建,以后也更容易阅读。但是,我担心的是,对于非常大的工作簿,它的效率可能会比 INDEX/MATCH 方法低得多。有人知道这两种操作的相对效率吗?如果有比这两种方法更好的方法,可以加分。

答案1

如果您需要不同的方法,可以使用 sumproduct,如下所示:

=SUMPRODUCT((B3:B9="Food")*(C3:C9="Groceries")*D3:D9)
Where B3:B9="Food" will give 1 if True
Also C3:C9="Groceries" will give 1 if True

Sumproduct 将在 2015 年将乘积 1*1*values 相加

要比较 Index/Match 与 Sumifs,请点击这里

相关内容