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

Excel 使用多个条件压缩嵌套if语句,excel,if-statement,indexing,match,vlookup,Excel,If Statement,Indexing,Match,Vlookup,蓝色列是给定的数据,红色列是正在计算的数据。那么右边的表就是我所引用的。因此,F2将通过以下步骤计算: 查看机械栏D,如果单元格包含LF,则选择K栏,否则选择L栏 查看等级列E,如果单元格包含RG,则选择行4:8,否则选择行9:12。 查看种类列A,如果单元格包含MS,请选择第5行和第10行,否则。。。。。。。 如果最选中的每个单元格都在K列和L列中,请复制到F列中。 将F列乘以C列。 我不想为我的最终结果再写一篇专栏。我在图片中这样做是为了分别显示这两个步骤。因此,F列应该是最终答案F2=10

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

查看机械栏D,如果单元格包含LF,则选择K栏,否则选择L栏 查看等级列E,如果单元格包含RG,则选择行4:8,否则选择行9:12。 查看种类列A,如果单元格包含MS,请选择第5行和第10行,否则。。。。。。。 如果最选中的每个单元格都在K列和L列中,请复制到F列中。 将F列乘以C列。 我不想为我的最终结果再写一篇专栏。我在图片中这样做是为了分别显示这两个步骤。因此,F列应该是最终答案F2=107.33。参考表的格式也可以不同

起初,我尝试使用嵌套的if语句,但意识到对于所有不同的结果,我需要20多个if语句。我想我应该使用搜索功能来查找不包含特定信息的单元格的天气。然后我可能会使用匹配、if、v-lookup、索引、搜索的某种组合,但我不确定如何压缩这些

有什么建议吗


SUMPRODUCT是您需要的功能。我很快创建了一些测试数据,如下所示:

然后我在单元格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)
正在查找与$I$4:$I$9范围内的当前行的级别匹配的行,依此类推。*确保这样返回的数组相乘,并且只保留所有条件为真的值

由于您的某些条件需要查找部分内容,如物种和机器中的内容,所以我使用了Left并在Sumproduct中查找函数


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

为什么F2=83.20?根据您的逻辑,因为机器不包含LF,所以选择列L。因为等级是RG,所以选择L4:L8。因为物种包含MS,应该是第5行或第10行,但是第10行超出了L4:L8的范围,那么,为什么在第一种情况下答案不应该是L5呢?我不是在抱怨,我只是试图理解你的逻辑,以便能够同意,我也希望F2等于104.00你是正确的。我的错误。F2应该是104.00。我相信在等式的末尾,K和L数组应该被切换。另外,我在我的子示例中没有这个,但在我的数据集中,有时J列中没有a。因此公式返回值。如果您注意到,我在尝试查找LF时正在检查ISERROR。因此,如果LF可用,ISERROR返回False,因此我们返回公式False部分的K列。因此,K和L的位置似乎正确。就J列中没有空格而言,您有两个选择:1。您可以在J列中使用完整值,例如MS ITP、SDM ITP等,然后只需将匹配条件更改为$J$4:$J$9=A2。2.在公式的该部分中也使用ISERROR函数。但是我的建议是选择1,因为另一个会导致一个非常复杂的公式。是的,我决定选择方案1。起初我尝试了选项2,但没能找到答案。