如何嵌套Excel

时间:2015-05-18 12:14:23

标签: excel if-statement

我正在努力解决以下问题:

我的价格范围是

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

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

例如,如果我在价格字段150中写入,则必须根据我的范围向我提供公式编号为1的单元格。到目前为止,我已经尝试了以下内容,但我不能嵌套3 if以上。

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

2 个答案:

答案 0 :(得分:2)

您可以使用=SUMPRODUCT()执行此操作。也有一些CSE公式可以做到这一点,但我更喜欢非CSE,因为如果有人混淆了公式并且没有正确输入它们,那些可能是挑剔的:

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

Sumproduct将测试此处的每个条件,然后将它们相乘。此公式中的条件是:(B9>=$A$10:$A$19)(B9<=B10:B19),它们非常自我解释。从每个条件开始,对于范围中的每一行,它将获得10(TRUE或FALSE),然后将其乘以ROW()-9,以便测试每一行。最后,对于具有两个TRUE条件的行,您可以获得ROW()-9,或1 * 1 * (Row()-9)

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

答案 1 :(得分:0)

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

enter image description here

检查输入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