(Excel)常用函数公式及操作技巧之三:排名及排序筛选(一)
(Excel)常用函数公式及操作技巧之三:
排名及排序筛选(一)
——通过知识共享树立个人品牌。
一个具有11项汇总方式的函数SUBTOTAL
=SUBTOTAL(9,$B$2:B2)
在数据筛选求和上有意想不到的功能,11项功能为:1、求平均数,2、求计数,3、求计数值(自动筛选序列)4、求最大值,5、求最小值,6、求乘积,7、求总体标准偏差,8、求标准偏差、9、求和,10、求方差,11、求总体方差。
自动排序
=SUBTOTAL(3,$B$2:B2)*1 =IF(A2<>A1,1,N(C1)+1)
按奇偶数排序
我想请教怎样按奇数顺序然后再按偶数顺序排序
=IF(MOD(A1,2),0,1) =IF(ROW()>50,(ROW()*2)-100,(ROW()*2)-1) =ROW()*2-1-(ROW()>50)*99
自动生成序号
比如在第二列中输入内容回车后第一列的下一行自动生成序列号。
=IF(B2<>"",A2+1,"")
如何自动标示A栏中的数字大小排序?
=RANK(A1,$A$1:$A$5) =RANK(A1,A:A)
如何设置自动排序
A列自动变成从小到大排列
B=SMALL(A$2:A$28,ROW(1:1))
A列自动变成从大到小排列
B=LARGE(A$2:A$28,ROW(1:1))
重复数据得到唯一的排位序列
想得到数据的出现总数吗({1,2,2,3,4,4,5} 数据的出现总数为5)?
解答:不需要插列,不需要很多的函数就行了.
=RANK(B3,B$3:B$12)+COUNTIF(B$3:B3,B3)-1
按字符数量排序
制作歌曲清单时,习惯按字符数量来排列分类,但是EXCEL并不能直接按字数排序。需要先计算出每首歌曲的字数,然后再进行排序。
如A、B列分别为“歌手”和“歌名”,在C1输入“字数”,在C2输入公式:
=LEN(B2) 下拖,单击C2,单击工具栏上的“升序排列”即可,删除C列。
排序字母与数字的混合内容
日常使用中,表格经常会有包含字母和数字混合的数据,对此类数据排序时,通常是先比较字母的大小,再比较数字的大小,但EXCEL是按照对字符进行逐位比较来排序的,如下表:A7排在第5位,而不是第1位。排序结果无法令人满意。
|
A |
1 |
A122 |
2 |
A29 |
3 |
A317 |
4 |
A43 |
5 |
A7 |
6 |
B20 |
7 |
B3 |
8 |
C144 |
9 |
C5 |
10 |
C33 |
|
A |
B |
1 |
A7 |
A007 |
2 |
A29 |
A029 |
3 |
A43 |
A043 |
4 |
A122 |
A122 |
5 |
A317 |
A317 |
6 |
B3 |
B003 |
7 |
B20 |
B020 |
8 |
C5 |
C005 |
9 |
C33 |
C033 |
10 |
C144 |
C144 |
如果希望EXCEL改变排序的规则,需要将数据做一些改变。
在B1中输入公式:LEFT(A1,1)& RIGHT("000"& RIGHT(A1,LEN(A1)-1),3) 下拖
单击B2,单击工具栏上的“升序排列”即可。
随机排序
如A、B列分别为“歌手”和“歌名”,在C1输入“次序”,在C2输入公式:
=RAND(),下拖,单击C2,单击工具栏上的“降序排列”即可对歌曲清单进行随机排序。
排序的问题
我想要这样的排序: 2001-2003
2004-2006
2007-2009
2010-2012;
其实不是数据排序,应该是数据填充。
输入公式=LEFT(E3,4)+3&"-"&RIGHT(E3,4)+3 即可。
怎样才能让数列自动加数
怎样做才能让数列自动加数
A A0001
B B0001
A A0002
C C0001
A A0003
B B0002
C C0002
公式为=A1&"000"&COUNTIF(A$1:A1,A1)向下拖 =TEXT(COUNTIF(A$1:A1,A1),"!"&A1&"0000")否则数字超过9就错误了。
一个排序问题
一个电子表格,格式是101、102... 999,10101、10102... 99901,1010101,1020201... 9990101,请问如何将它排列成101,10101,1010101,102,10201,1020101,... 999,99901,9990101 的形式。
我在数字前加了个字母,比如"d"&"数字",然后用排序就可以把它们按你的需求排列了.最后再把字母"d"去掉。
数字的自动排序,插入后不变?
1 赵一 总经理
2 赵二 副经理
3 赵三 副经理
4 赵四 技术员
5 赵五
6 赵六 员工
如上的一个表,如何实现当我把赵六这一整行(第6行)插入到上面的表中时,A列的序列号不变?最后的效果如下:
1 赵一 总经理
2 赵二 副经理
3 赵六 员工
4 赵三 副经理
5 赵四 技术员
6 赵五
A1单元格输入公式 =row(),往下拉,然后再插入。
=SUBTOTAL(3,$B$2:$B2)
在A1中输入公式:“=if(b1="","",counta($b$1:b1)”后下拉复制至A列各行即可(“”不必输入)
根据规律的重复的姓名列产生自动序号
姓名 序号
张三 1
张三 1
李四 2
李四 2
赵五 3
赵五 3
赵五 3
王六 4
王六 4
=(A1<>A2)+N(B1) =IF(A3=A2,B2,B2+1)
姓名已排序:
B2=SUMPRODUCT(1/COUNTIF(A$2:A2,A$2:A2))
姓名未排序:
B2=IF(COUNTIF(A$2:A2,A2)>1,VLOOKUP(A2,A:B,2,0),SUMPRODUCT(1/COUNTIF(A$2:A2,A$2:A2)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
排名的函数
用排名函数来对成绩进行排名,用起来非常地方便。
=IF(ISERR(RANK(M3,M:M)),"",RANK(M3,M:M))
A列是成绩,B列是排名
=SUMPRODUCT((A$1:A$9>A1)/COUNTIF(A$1:A$9,A$1:A$9))+1
自动排名公式
=RANK(C3,$C$3:$C$12) =RANK(A2,$A$2:$A$11,0) =RANK(C2,$C$2:$C$65)+COUNTIF($C$2:C2,C2)-1
百分比排名的公式写法为:
=PERCENTRANK($C$3:$C$12,C3)
平均分及总分排名
=AVERAGE(B2:E2) =RANK(F2,$F$2:$F$65536)
求名次排名
统计成绩时遇到一个分别求班级和年级总分名次排名的问题,不晓得应该运用什么公式来实现。
班级名次:
=SUMPRODUCT((BJ=A2)*(ZF>E2))+1
年级名次:
=RANK(E2,ZF) 公式下拖。
排名次
根据总分值大小,只将姓名排序后, 降序结果
=INDEX(A$2:A$6,RANK(D2,D$2:D$6))
根据总分值大小,只将姓名排序后, 升序
=INDEX(A$2:A$6,RANK(D2,D$2:D$6,1))
根据分数进行普通排名
=RANK(A2,$A$2:$A$12) =RANK(A2,A$2:A$12)+COUNTIF(A$2:A2,A2)-1 =SUMPRODUCT(1*($E$3:$E$12>=E3)) =RANK(K3,$K$3:$K$26) =RANK(A2,A$2:A$12) =SUM((A$2:A$12>=A2)/COUNTIF(A$2:A$12,A$2:A$12)) =COUNTIF($K$3:$K$26,">"&K3)+1 =INDEX($A$2:$A$7,MATCH(LARGE($C$2:$C$7,ROW(A1)),$C$2:$C$7,0),1) =SUMPRODUCT(($A$2:$A$12>A2)/COUNTIF($A$2:$A$12,$A$2:$A$12&""))+1 =RANK(D2,OFFSET($A$1,MATCH($A2,$A:$A,0)-1,3,COUNTIF($A:$A,$A2),1))
对于普通排名分数相同时,按顺序进行不重复排名
=RANK(K32,$K$32:$K$55)+COUNTIF($K$32:$K32,K32)-1 =COUNTIF($K$32:K32,K32)-1+COUNTIF($K$3:$K$26,">"&K32)+1 =SUMPRODUCT(1*(($E$3:$E$12+ROW($E$3:$E$12)/100>=($E3+ROW(E3)/100)))) =RANK(E3,$E$3:$E$12)+COUNTIF($E$3:E3,E3)-1 =SUMPRODUCT(1*(($E$3:$E$12+$B$3:$B$12/100)>=(E3+B3/100)))
依分数比高低名次成绩排名
=RANK($E3,$E$3:$E$22) 內建方式排名 =SUMPRODUCT(1*($E$3:$E$12>=E3)) 一般方式排名 {=RANK(E3,$E$3:$E$22)+SUM(IF($E$3:$E$22>E3,1/COUNTIF($E$3:$E$22,$E$3:$E$22),0))-COUNTIF($E$3:$E$22,">"&E3)} 一般方式排名 =RANK(E3,$E$3:$E$12)+COUNTIF($E$3:E3,E3)-1不重复排名 =SUMPRODUCT(1*(($E$3:$E$12+ROW($E$3:$E$12)/100>=($E3+ROW(E3)/100)))) =SUMPRODUCT(1*(($E$3:$E$12+$B$3:$B$12/100)>=(E3+B3/100))) 不重复排名 =SUMPRODUCT(1*(($E$3:$E$12+$B$3:$B$12/100+$C$3:$C$12/10000)>=(E3+B3/100+C3/10000))) 不重复排名 =RANK($E3,$E$3:$E$22,1) 倒排序
美国式排名
=RANK(K247,$K$247:$K$270) =RANK(B1,$B1:$H1)
中国式排名
=RANK(B2,$B$2:$B$21,0) =RANK(B1,$B1:$H1)+COUNTIF($B$1:B1,B1)-1 =SUM(IF($A$1:$E$1>=A1,1/COUNTIF($A$1:$E$1,$A$1:$E$1),"")) =SUMPRODUCT(($B$2:$B$21>=B2)/COUNTIF($B$2:B$21,B$2:B$21)) =SUMPRODUCT((B$3:B$21>B3)*(1/COUNTIF($B$3:$B$21,$B$3:$B$21)))+1 (升序) =SUMPRODUCT((B$3:B$21<B3)*(1/COUNTIF($B$3:$B$21,$B$3:$B$21)))+1 (降序) {=SUM(--(IF(FREQUENCY(B$2:B$21,B$2:B$21),B$2:B$21>B2)))+1} {=SUM(IF($B$3:$B$21<=B3,"",1/(COUNTIF($B$3:B$21,B$3:B$21))))+1}(升序) {=SUM(IF($B$3:$B$21<=B3,1/(COUNTIF($B$3:B$21,B$3:B$21)),""))}(降序) {=SUM(IF($B$2:$B$21>B2,1/COUNTIF($B$2:B$21,B$2:B$21)))+1} {=SUM(IF($A$1:$E$1>=A1,1/COUNTIF($A$1:$E$1,$A$1:$E$1),""))} {=SUM(($B$2:$B$21>B2)*(MATCH($B$2:B$21,B$2:B$21,)=ROW($1:$20)))+1} {=SUM(IF($B$1:$H$1<=B1,"",1/(COUNTIF($B$1:$H$1,$B$1:$H$1))))+1}
作者:
RDIF
出处:
http://www.cnblogs.com/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手机号)
框架官网:
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.cnblogs.com/huyong
国思RDIF开发框架
,
给用户和开发者最佳的.Net框架平台方案,为企业快速构建跨平台、企业级的应用提供强大支持。
关于作者:系统架构师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于
RDIF
框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过微信、邮箱、QQ等联系我,非常感谢。