excel怎么批量求多个连续区域的排名?
脚本之家
使用excel批量求多个连续区域的排名,批量求数据的排名,比如A到I九行数为一天,排每一天的排名,如果是你要的,快来看看。
1、以下数据为模拟数据,在A列设定为任意日期,B列设置产品名称,C列求排名的值,可自行随意模拟:
方法一:
1、在D列用函数COUNTIFS函数,计算产品(类型)在所有数据中依次出现的次数:=COUNTIFS($B$2:B2,B2)。完成后下拉填充函数,会出现按照日期的排列计数,如下图:注意:此函数技巧在$B$2上,注意观察变化。
2、为了方便大家学习,我将E列作为区域开始的列,F列作为区域结束的列。为什么要这样做?因为在使用rank函数排名的时候,会用到区域,现在做的事情,就是要做出这个区域来:
3、Rank函数。使用的简单举例:=RANK(A2,$A$2:$A$6)。第一个参数:代表要参与排名的值,第二个参数代表该值在什么区域内进行排名,第三个参数是可选,用来代表升降序选项;注意:第三步的区域,就是这里的A2和A6,$符号代表固定单元格引用,下拉不发生变化。
4、现在构造E和F列:类型共9个(A-I),第一天21号(第一个区域)排序的区域是2-10,第二天22号(第二个区域)排序的区域是11-19,第三个区域依次类推,结合D列构造的辅助列,E列可构造成:=(D2-1)*9+2;F列可构造成:=D2*9+1
5、区域有了,在加上“INDIRECT”函数,就可以完成批量排名了:=RANK(C2,INDIRECT("c"&E2):INDIRECT("c"&F2),1)。
6、INDIRECT函数可以将单元格引用,以字符串的形式出现,比如=INDIRECT("B"&5),代表单元格B5;
方法二:
可以使用Mod函数代替Rank函数,Mod函数:=MOD(ROW()-2,9):。
相关推荐: