用多个条件压缩嵌套的if语句

时间:2019-08-27 05:04:48

标签: excel if-statement indexing match vlookup

蓝色列是给定的数据,红色列是正在计算的数据。然后,右边的表就是我正在引用的表。因此,F2将通过以下步骤计算:

  1. 查看“机械”列(D),如果单元格包含LF,则选择K列,否则选择L列。
  2. 查看“成绩”列(E),如果单元格包含RG,则选择4:8行,否则选择9:12行。
  3. 查看“种类”列(A),如果该单元格包含MS,则选择第5行和第10行,否则.......
  4. 在K和L列中每个最常选择的单元格的位置,复制到F列。
  5. 将F列乘以C列。

我不想为我的最终结果再写一列。我在图片中做的是分别显示两个步骤。因此,F列应该是最终答案(F2 = 107.33)。参考表的格式也可以不同。

起初,我尝试使用nested-if语句,但是意识到对于所有不同的结果,我希望有20+个if语句。我想我想使用SEARCH函数查找不是该单元格包含特定信息的天气。然后,我可能会使用某种匹配的组合,例如v-lookup,索引,搜索,但是我不确定如何压缩它们。

有什么建议吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

SUMPRODUCT是您需要的功能。我很快按照您共享的内容创建了一些测试数据:

enter image description here

然后我在F2单元格中输入以下公式

 =SUMPRODUCT(($I$4:$I$9=E2)*($J$4:$J$9=LEFT(A2,FIND(" ",A2)-1))*IF(ISERROR(FIND("LF",D2,1)),$L$4:$L$9,$K$4:$K$9))

该公式可能看起来有些吓人,但实际上非常简单,因为每个子公式都会检查要评估的条件。因此,例如

($I$4:$I$9=E2)

正在寻找与范围GRADE中的当前行的$I$4:$I$9匹配的行,依此类推。 *确保将由此返回的数组相乘,并且仅保留所有条件为true的值。

由于您的某些条件需要查找SpeciesMachine中的部分内容,因此我在Left中使用了FindSumproduct函数

此公式仅根据匹配条件从K或L列中返回值,您可以轻松地对其进行扩展或添加更多条件。