IF函数替换法总结?
成都office培训班解答:
条件说明:小于10返回500,小于20返回800,小于30返回1100,小于40返回1400,大于40返回1700
类似于以上要求,大家最先想到IF函数,这也本属IF专长。但用IF一般要长长的公式,且计算较慢。现总结一下IF之替换公式,望能抛砖引玉,在我的倡导下各位提供更完善的方案。其中部分公式通用,部分公式有局限性,请看说明。(前18个条件公式,根据速度,排名如下)
1=SMALL({500;800;1100;1400;1700},COUNTIF($A$9:$A$13,”<=”&A1))
2=INDEX({500;800;1100;1400;1700},COUNTIF($A$9:$A$13,”<=”&A1))
3=CHOOSE(COUNTIF($A$9:$A$13,”<=”&A1),500,800,1100,1400,1700)
4=LOOKUP(A1,{0,10,20,30,40},{500,800,1100,1400,1700})
5=MIN(4,INT(A1/10))*300+500
6=MATCH(A1,{0,10,20,30,40})*300+200
7=MIN(40,FLOOR(A1,10))*30+500
8=HLOOKUP(A1,{0,10,20,30,40;500,800,1100,1400,1700},2,1)
9=200+SUM((A1>={0;10;20;30;40})*300)
10=FREQUENCY({0,10,20,30,40},A1)*300+200
11=MAX((A1>={0,10,20,30,40})*{500,800,1100,1400,1700})
12=INDEX({500;800;1100;1400;1700},MATCH(A1,{0;10;20;30;40},1))
13=CHOOSE(MATCH(A1,{0;10;20;30;40},1),500,800,1100,1400,1700)
14=500+SUM(IF(A1>={10,20,30,40},{300,300,300,300}))
15=IF(A1<10,500,IF(A1<20,800,IF(A1<30,1100,IF(A1<40,1400,1700))))
16=CHOOSE(SUM((A1>={0;10;20;30;40})*1),500,800,1100,1400,1700)
17=MAX((INT(A1/({10;20;30;40}))>0)*(ROW($1:$4)*300))+500
18=CHOOSE(MIN(INT(A1/(ROW($1:$4)*10))+1,5),500,800,1100,1400,1700)
新增公式:
19=CHOOSE(MIN(INT(A1/(ROW($1:$4)*10))+1,5),500,800,1100,1400,1700)
20{=MAX((INT(A1/(ROW($1:$4)*10))>0)*(ROW($1:$4)*300))+500}
21=500+MIN(4,MAX(0,INT(A1/10)))*300
22MAX((A1>={0,10,20,30,40})*{500,800,1100,1400,1700})
23=MATCH(A1,{0,10,20,30,40})*300+200
24=MIN(40,FLOOR(A1,10))*30+500
25=FREQUENCY(ROW($1:$5)*10-10,A1)*300+200