excel - 嵌套 IF Excel - 替代方案

标签 excel if-statement nested

我有一个包含多列的大型数据集 - 每行都有一个案例类型和一个契约(Contract)值。在另一张纸上,我有一个案例类型和值范围的映射表(如下所示),它们决定了每行也应该分配什么“类型”。

例如,案例类型 1 和契约(Contract)值(value) $20,000,000 的行将是类型 1 - 案例类型 3 且值(value) $4,000,000 的行将是类型 3,因为它介于类型 3(N4 和 O4)的值范围之间

我知道我可以在 14 个辅助列中硬编码一个 IF 语句来满足每个案例类型,然后组合非空白的单元格,但我很想知道有没有更聪明的方法来做到这一点?

enter image description here

最佳答案

首先需要调整映射表数据集的表头。取消合并那些合并的单元格,然后给每列一个标题。这样做应该会产生类似的结果:

example of header

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

results table

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

现在这是我在 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/

相关文章:

java - If-else 语句中的 While 循环 (Java)

c# - 通过 C# 中的嵌套类型访问父级的私有(private)属性

python - 列表分配中的字典导致奇怪的输出

validation - Excel:验证、保护和 worksheet_beforeDoubleClick 之间存在冲突

excel - 为什么更改数据透视表范围行上会出现无效过程或调用错误?

excel - 使用 VLOOKUP 查找具有多个重复项的最大值 "IDs"

sql - 使用 while 条件的嵌套查询 - sql

执行 Excel 互操作的 C# 控制台应用程序-按计划任务运行时失败-System.UnauthorizedAccessException

python - 如何比较模型字段和选择中的 unicode 字符串? Django

c - 在 c 的 if 语句中声明变量是个坏习惯吗?