前言:现在公司财务部门有如下需求,需要统计各个分店的发卡数量,并且标记出来排名前30%的分店(如下图所示)。
0、经过一个多小时的测试,写出一个比较合适的公式。
=IF(RANK(H3,H$3:H$14)>=INT(COUNT(H$3:H$14)*0.3),"","是")
思路如下:
1、先取Excel行数(知道总行数,才好算30%是多少)
用COUNT函数来取总行数:=COUNT(H$3:H$14)
注意:如果中间有空白行,也会算做一行(空行会影响前30%的取值)
2、取总行数的30%(向下取整)
>直接总行数乘以0.3来取30%,使用IINT函数向下取整
=INT(COUNT(H$3:H$14)*0.3)
注意:向下取整的话3.1取整为3、3.9取整也为3
3、取多行数据的前3为数,并做标记
>使用RANK函数来返回一列数字的排位(数字的排位是其相对于列表中其他值的大小)
>使用IF函数来对排位大于等于前3的行做标记
=IF(RANK(H3,H$3:H$14)>=3,"","是")
4、以上相结合得出解决公式:
=IF(RANK(H3,H$3:H$14)>INT(COUNT(H$3:H$14)*0.3),"","是")
好了,文章到此结束。