1

我稍微修改了从之前的答案中得到的声明,现在看起来像这样:

=IF(C6=$R$3,IF(D6<=0.99,$U$2,IF(AND(D6>0.99,D6<=4.99),$U$3,IF(AND(D6>4.99,D6<=14.99) ),$U$4,IF(AND(D6>14.99,D3<=29.99),$U$5,IF(AND(D6>29.99,D6<99.99),$U$6,""))))),$ 8 新元)

一切正常,直到您将单元格 D6 中的值更改为 45 英镑,但它仍会显示单元格 U5 中的数字。

您或其他任何人可以帮我调整它以使其正常工作吗?我需要一个声明来执行以下操作:

如果 C2=R2 且 D2 < T2 则 U2,如果 D2 >T 但 T3 但 < T4,则 U4 如果 D2 > T4 但 < T5 则 U5,如果 D2 > T5 但 < T6 则 U6 但如果 C2 不等于 R2 然后 S8

4

1 回答 1

2

把你所有的问题都拆开:

如果 C2=R2 且 D2 < T2 则 U2,如果 D2 >T 但 T3 但 < T4,则 U4 如果 D2 > T4 但 < T5 则 U5,如果 D2 > T5 但 < T6 则 U6 但如果 C2 不等于 R2 然后 S8

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

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

添加基于 D2 的查找:

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

假设下一部分是 D2 > 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 >= T6 的行为


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

您当前在 T 和 U 列中的结构将无法使用,VLOOKUP因为:

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

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

于 2009-07-04T03:16:02.533 回答