Microsoft Excel如果声明

时间:2009-07-03 14:35:38

标签: excel excel-2007 excel-formula

我已经改变了我从a previous answer获得的声明,现在看起来像这样:

= IF(C6 = $ R $ 3,如果(D6&LT = 0.99,$ U $ 2,IF(AND(D6&0.99,D6&LT = 4.99),$ U $ 3 IF(AND(D6> 4.99,D6&LT = 14.99),$ U $ 4中,IF(AND(D6> 14.99,D3&LT = 29.99),$ U $ 5中,IF(AND(D6> 29.99,D6< 99.99),$ U $ 6中, “”)))) ),$ S $ 8)

一切正常,直到你将单元格D6中的值更改为45英镑,当它仍然在单元格U5中拾取数字时。

你或其他任何人可以帮助我调整一下这样做吗?我需要声明来执行以下操作:

如果C2 = R2且D2 <&lt; T2然后是U2,如果D2> T但是T3但是&lt;如果D2> 1,则T4然后是U4。 T4但是&lt;如果D2> 0,则T5然后是U5。 T5但是&lt; T6然后U6但如果C2不等于R2则接着是S8

1 个答案:

答案 0 :(得分:1)

把你所有的问题拿出来撕开它们:

如果C2 = R2且D2 <&lt; T2然后是U2,如果D2> T但是T3但是&lt;如果D2> 1,则T4然后是U4。 T4但是&lt;如果D2> 0,则T5然后是U5。 T5但是&lt; T6然后U6但如果C2不等于R2则接着是S8

首先使用NA()来表示尚未完成的部分(这将在单元格中显示#N/A值):

=IF(C2=R2,NA(),S8)

根据D2添加查找:

=IF(C2=R2,IF(D2<T2,U2,NA()),S8)

假设下一部分是D2&gt; T2和D2 < T3(严格来说这个公式说D2> = T2)并且结果是U3:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,NA())),S8)

现在在T3和T4之间添加:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,IF(D2<T4,U4,NA()))),S8)

在T4和T5之间:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,IF(D2<T4,U4,IF(D2<T5,U5,NA())))),S8)

最后在T5和T6之间:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,IF(D2<T4,U4,IF(D2<T5,U5,IF(D2<T6,U6,NA()))))),S8)

我们仍有NA(),因为您尚未定义C2 = R2和D2&gt; = T6

的行为

正如Stobor在对原始问题的评论中所说,使用VLOOKUP会更好 - 请参阅http://office.microsoft.com/en-us/excel/HP052093351033.aspx了解详情

T和U列中的当前结构不适用于VLOOKUP,因为:

  

较小的下一个最大值   比查找值返回

这意味着VLOOKUP会在您需要U3U2而不是U4时返回U3,依此类推。要解决此问题,您需要将U列中的所有条目向下移动一行,将虚拟值或=NA()放入U2并在T7中创建一个大于T6中现有值的值