嵌套的IFs Excel – 可选

我有一个有多个列的大型数据集 – 每一行都有一个案例types和一个合同值。 在另一张纸上,我有一个映射表(如下所示)的案例types和值的范围,决定什么“types”每一行也应该分配。

例如,一个案例types为1,合同价值为20,000,000美元的行将是types1 – 一个案例types为3,价值为4,000,000美元的行将属于types3,因为它属于types3(N4和O4)的值范围

我知道我可以在14个帮助列中硬编码IF语句来完成每个Case Type,然后合并非空白的单元格,但是我想知道是否有更智能的方法来执行此操作?

在这里输入图像描述

首先,映射表数据集的头部需要调整。 取消合并那些被合并的单元格,然后给每个列标题。 这样做应该导致类似这样的事情:

标题的例子

然后,我在第二个工作表上创build了一个如下所示的结果表:

结果表

它可能是过分简化,但希望你可以根据需要修改公式。

现在这里是我在C2创build的公式:

{=INDEX(MappingTable!$K$1:$S$1,1,SUMPRODUCT(IF(B2<INDIRECT("MappingTable!"&ADDRESS(MATCH($A2,MappingTable!$I$2:$I$15,0)+1,11)&":"&ADDRESS(MATCH($A2,MappingTable!$I$2:$I$15,0)+1,19)),1,0))+1)}

注意:这是一个数组公式,必须用 Ctrl + Shift + Enter 提交 上面括号中的花括号 – {} – 将不会被用户input,但会在上面提到的公式提交后创build。

主要注意事项:
B2将在结果表中引用Contract Value

"MappingTable!" 是一个硬编码的值,应该是您的工作表名称加上最后的感叹号。

$A2将在结果表中引用“ Case Type

MappingTable!$I$2:$I$15是映射表MappingTable!$I$2:$I$15标题的绝对引用。

11 ,在第一个ADDRESS函数中find,是映射表工作表上K列的引用。 它也可以写成COLUMN(K:K)

19 ,在第二个ADDRESS函数中find,是映射表工作表上列S的引用。 它也可以写成COLUMN(S:S)