我有一个包含多列的大型数据集 - 每行都有一个案例类型和一个契约(Contract)值。在另一张纸上,我有一个案例类型和值范围的映射表(如下所示),它们决定了每行也应该分配什么“类型”。
例如,案例类型 1 和契约(Contract)值(value) $20,000,000 的行将是类型 1 - 案例类型 3 且值(value) $4,000,000 的行将是类型 3,因为它介于类型 3(N4 和 O4)的值范围之间
我知道我可以在 14 个辅助列中硬编码一个 IF 语句来满足每个案例类型,然后组合非空白的单元格,但我很想知道有没有更聪明的方法来做到这一点?
最佳答案
首先需要调整映射表数据集的表头。取消合并那些合并的单元格,然后给每列一个标题。这样做应该会产生类似的结果:
然后,我在第二个工作表上创建了一个结果表,如下所示:
它可能过于简化,但希望您可以根据需要修改公式。
现在这是我在 C2
中创建的公式:{=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 提交。上述公式周围的花括号 - { } - 不会由用户输入,但会在如上所述提交公式后创建。
重要说明:B2
将引用 Contract Value
在您的结果表中。"MappingTable!"
是一个硬编码值,应该是工作表的名称加上末尾的感叹号。$A2
将引用 Case Type
在您的结果表中。MappingTable!$I$2:$I$15
是对映射表上行标题的绝对引用。11
,在第一个 ADDRESS
中找到函数,是对映射表工作表上 K 列的引用。也可以写成COLUMN(K:K)
.19
, 在第二个 ADDRESS
中找到函数,是对映射表工作表上 S 列的引用。也可以写成COLUMN(S:S)
.
关于excel - 嵌套 IF Excel - 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46566816/