如何嵌套如果和或不是Excel

我正在努力与以下几点:

我有价格范围从

  • 100 – 200
  • 201 – 300
  • 301 – 400
  • 401 – 500
  • 501 – 600

在每一个范围内,我都给出一个1-5的数字。 我试图给一个数字从1到5到一个单元格,将检查哪个价格范围。

例如,如果我在价格字段150写入,则必须根据我所具有的范围将公式给予具有数字1的公式。 到目前为止,我已经尝试了以下,但if s不能嵌套超过3。

 =IF(AND(B9>=A10,B9<=C10),"1",(IF(AND(B9>=A11,B9<=C11),"2",IF(B9>=A12,B9<=C12,"3")))) 

你可以使用=SUMPRODUCT()来做到这一点。 也有一些CSE公式可以做到这一点,但是我更喜欢非CSE,因为如果有人用这个公式来混淆并且不能正确input:

 =SUMPRODUCT((B9>=$A$10:$A$19)*(B9<=B10:B19)*(ROW($A$10:$A$19)-9)) 

Sumproduct将testing每个条件,然后将它们相乘。 这个公式中的条件是: (B9>=$A$10:$A$19)(B9<=B10:B19) 从每个条件中,对于范围中的每一行,它将得到一个10 (TRUE或FALSE),然后乘以ROW()-9为每个被testing的行。 最后你得到ROW()-9 ,无论哪个行有两个TRUE条件,或者1 * 1 * (Row()-9)

请注意,因为它testing每一行,只有一行应该返回两个真实的条件,否则你会加起来行号,并得到不好的结果。

按升序设置每个价格范围的最低金额的交叉参考表。 从您的示例数据,这可能是Z2:Z7。

在这里输入图像说明

你的公式来检查input到B9的价值将是,

 =IFERROR(IF(B9<MAX($Z$2:$Z$7), MATCH(B9, $Z$2:$Z$7), NA()), "not in range") 

如果501以上的东西应该在价格组5中,那么只需删除最高值(例如601 )并检查最大值。

 =IFERROR(MATCH(B9, $Z$2:$Z$6), "not in range") 

如果值小于100 ,则返回的值不在范围内 ,但超过500的值将返回价格组5