如何嵌套如果和或不是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)
从每个条件中,对于范围中的每一行,它将得到一个1
或0
(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 。