在数组中搜索关键字,如果匹配,return 列右侧的值

Search for a keyword in an array and if matches, return value from column Right to it

我有一个示例数据 B3:G6,如图所示。数据分为金属、聚合物、弹性体,我在这里为每个类别分配了名称。在 J 列中,我有几个 material 属于这些类别的金属、聚合物或弹性体。为了提取各自 material 的百分比,我在 K 列中使用了以下公式,它按预期工作。

=IF((ISNUMBER(匹配($J3;金属;0))=TRUE);VLOOKUP($J3;$B:$C;2);IF((ISNUMBER(匹配($J3;聚合物;0))=TRUE);VLOOKUP($J3;$D:$E;2);IF((ISNUMBER(MATCH($J3;Elastomers;0))=TRUE);VLOOKUP($J3;$F:$ G;2);"")))

是否可以简化这个公式?因为如果我的搜索类别由于某种原因增加导致额外的列,嵌套的 IF 会变得更长。

使用具有偏移范围的 SUMIFS:

=SUMIFS($C:$G,$B:$F,J3)