我正在努力解决以下问题:
我的价格范围是
在每个范围内,我给出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"))))
答案 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)
,它们非常自我解释。从每个条件开始,对于范围中的每一行,它将获得1
或0
(TRUE或FALSE),然后将其乘以ROW()-9
,以便测试每一行。最后,对于具有两个TRUE条件的行,您可以获得ROW()-9
,或1 * 1 * (Row()-9)
。
请注意,因为它测试每一行,所以只有一行应该返回两个真实条件,否则你会添加行号并得到不好的结果。
答案 1 :(得分:0)
按升序设置每个价格范围的最小金额的交叉参考表。根据您的样本数据,这可能是Z2:Z7。
检查输入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