如何在Excel中简化64级嵌套公式?

时间:2018-01-01 18:44:55

标签: excel excel-2013

我在处理公式时遇到“64级嵌套”问题。有没有办法简化这个公式?这个公式从10到500(G:G)精细工作,但一旦超过510,它遇到了“64级嵌套”问题。我发现了一些涉及查找和匹配索引的解决方案,但我无法在这里看到/在何处实现它。

excel screenshot

公式在单元格B3中:

=IF(B2<=$G$2,B2+($E$2*B2),IF(AND(B2>$G$2,B2<=$G$3),B2+($E$3*B2),IF(AND(B2>$G$3,B2<=$G$4),B2+($E$4*B2),IF(AND(B2>$G$4,B2<=$G$5),B2+($E$5*B2),IF(AND(B2>$G$5,B2<=$G$6),B2+($E$6*B2),IF(AND(B2>$G$6,B2<=$G$7),B2+($E$7*B2),IF(AND(B2>$G$7,B2<=$G$8),B2+($E$8*B2),IF(AND(B2>$G$8,B2<=$G$9),B2+($E$9*B2),IF(AND(B2>$G$9,B2<=$G$10),B2+($E$10*B2),IF(AND(B2>$G$10,B2<=$G$11),B2+($E$11*B2),IF(AND(B2>$G$11,B2<=$G$12),B2+($E$12*B2),IF(AND(B2>$G$12,B2<=$G$13),B2+($E$13*B2),IF(AND(B2>$G$13,B2<=$G$14),B2+($E$14*B2),IF(AND(B2>$G$14,B2<=$G$15),B2+($E$15*B2),IF(AND(B2>$G$15,B2<=$G$16),B2+($E$16*B2),IF(AND(B2>$G$16,B2<=$G$17),B2+($E$17*B2),IF(AND(B2>$G$17,B2<=$G$18),B2+($E$18*B2),IF(AND(B2>$G$18,B2<=$G$19),B2+($E$19*B2),IF(AND(B2>$G$19,B2<=$G$20),B2+($E$20*B2),IF(AND(B2>$G$20,B2<=$G$21),B2+($E$21*B2),IF(AND(B2>$G$21,B2<=$G$22),B2+($E$22*B2),IF(AND(B2>$G$22,B2<=$G$23),B2+($E$23*B2),IF(AND(B2>$G$23,B2<=$G$24),B2+($E$24*B2),IF(AND(B2>$G$24,B2<=$G$25),B2+($E$25*B2),IF(AND(B2>$G$25,B2<=$G$26),B2+($E$26*B2))))))))))))))))))))))))))

细胞$ A2:$ A26&amp;细胞$ E2:$ E26是可变的。细胞$ D2:$ D26只是我的指标。其他人是不变的价值。

单元格$ B2:$ B26将计算公式$ A2 + $ A2 * 百分比百分比基于单元格$ E2:$ E26中的值。然后,该值由单元格$ A2中的值确定:$ A26。

单元格中的公式$ B2:$ B26与之前的公式相同。

示例:

如果费用为50. 百分比的值将从单元格$ E $ 7中获取。在这种情况下是10,因此将$ B $ 6的值返回到$ A6 + $ A6 * 10 = 55

请参阅第2条。

excel screenshot 2

3 个答案:

答案 0 :(得分:2)

如果达到嵌套极限,几乎总是意味着更容易......

您应该能够使用查找类型公式更简单地执行此操作,例如

=B2+B2*IF(B2<G$2,E$2,INDEX(E$3:E$26,MATCH(TRUE,INDEX(B2>G$2:G$25,0),0))

这会在列G中找到第一个值>&gt; B2然后从列E

的下一行获取所需的值

此公式唯一不做的是对B2施加上限(您的G26250)。如果这是一个问题,您可以添加额外的IF来满足

答案 1 :(得分:1)

您可能想要修改表格,但是对于升序数据进行相对查找的INDEX / MATCH将返回正确的百分比。

=b2*index(e2:e26, match(b2, g2:g26, 1))

enter image description here

答案 2 :(得分:0)

不是100%确定我理解你的公式/意图。我想我明白了......如果没有请澄清。

添加另一列在H列中进行数学计算。输入此公式并向下拖动。

=($ B $ 2 +(E2 * $ B $ 2))

单元格B3中的

输入此公式

= VLOOKUP(ROUNDUP(B2,-1),G:H,2,FALSE)