excel获取多行数据前30%的值,并在其后面单元格显示出来

2017年05月19日 5750点热度 6人点赞

前言:现在公司财务部门有如下需求,需要统计各个分店的发卡数量,并且标记出来排名前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),"","是")

 

好了,文章到此结束。

Chen

健康 · 开心 · 做自己