下面是要使用公式解决的问题: 如果值处于0%-25%,则返回0;处于16%-50%,则返回0.1;处于51%-75%,则返回0.2;处于76%-100%,则返回0.3;大于100%则返回0.4。 如下图1所示,值为80%,返回0.3。 图1 通常,我们会考虑使用IF函数的公式: =IF(AND(B3>=0,B3<=0.25),0,IF(AND(B3>=0.26,B3<=0.5),0.1,IF(AND(B3>=0.51,B3<=0.75),0.2,IF(AND(B3>=0.76,B3<=1),0.3,0.4)))) 太冗长了!如果条件更多,则需要增加更多的IF语句。 这里使用SUMPRODUCT函数编写了一个简洁的公式: =SUMPRODUCT((B3>{0.25,0.5,0.75,1})*0.1) 我们来看看公式中的: B3>{0.25,0.5,0.75,1} 用来将B3中的值进行分类,本例中的结果为: {TRUE,TRUE,TRUE,FALSE} 将其与0.1相乘,得到: {0.1,0.1,0.1,0} 将其传递给SUMPRODUCT函数: =SUMPRODUCT((B3>{0.25,0.5,0.75,1})*0.1) 即: =SUMPRODUCT({0.1,0.1,0.1,0}) 由于SUMPRODUCT函数内只有一个数组,因此简单地将该数组元素值相加,得到结果: 0.3 注意,SUMPRODUCT函数不会直接处理TRUE/FALSE值的数组,因此,如果使用公式: =SUMPRODUCT((B9>{0.25,0.5,0.75,1}))*0.1 结果将是0。 要得到正确的结果,需要将上面的公式修改为: =SUMPRODUCT(1*(B10>{0.25,0.5,0.75,1}))*0.1 或者: =SUMPRODUCT(--(B10>{0.25,0.5,0.75,1}))*0.1 |
|
来自: hercules028 > 《excel》