~~~~~~条件排序的分割线~~~~~~
效果展示
------------------------------------
效果说明
2016/10/1至2016/10/5的销售额排名分别是:4580、3000和2500,改变日期后,2016/10/4至2016/10/11的销售额排名自动更新为:7512、7510和4589。只要动动手指,改变日期条件,数据排名自动更新,是不是很厉害?下面表妹就把它的奥秘传授给你~~
------------------------------------
函数公式
公式:
E4=INDEX($B$2:$B$12,MOD(LARGE((($A$2:$A$12>=$E$1)*($A$2:$A$12<=$E$2)*$B$2:$B$12)*100+ROW($A$1:$A$11),ROW(A1)),100))
PS:此公式是一个数组公式,运算时需要同时按下Ctrl+Shift+Enter三个键执行
------------------------------------
公式解析
知其然也要知其所以然,下面表妹就给各位小伙伴们从内而外,一层一层地分析一下这个公式:
第1层:($A$2:$A$12>=$E$1)*($A$2:$A$12<=$E$2)*$B$2:$B$12
根据日期条件返回销售额数据,返回大于等于E1小于等于E2的日期所对应的B2:B12内的销售额
第2层:(...)*100+ROW($A$1:$A$11)
为销售数据编号,区分数值相等的销售额,这样就算某几天(2016/10/03和2016/10/04)的销售额相同,也会进行并列排名
第3层:LARGE(...,ROW(A1))
对筛选出的数据进行从大到小的顺序排序,下拉复制公式后,ROW(A1)变成ROW(A2)、ROW(A3)...,分别代表第一大,第二大和第三大,也就是第一名、第二名和第三名
第4层:MOD(...,100)
对第2层乘以的100进行除法运算消除,同时返回余数也就是ROW($A$1:$A$11)对数据的编号
第5层:INDEX($B$2:$B$12,...)
根据第4步中返回的编号,在B2:B12提取对应的销售额数据
具体运算过程如下图:
根据公式的设计思路,小伙伴们可以把案例里面的日期条件替换成自己想要的排序条件,也可以将LARGE换成SMALL从小到大排序。掌握了思路,千变万化,唯我独尊,快点让你的排序也变得厉害起来吧!
如果你觉得表妹的分享内容很实用,欢迎分享给其他小伙伴呦,独乐乐不如众乐乐嘛!长按二维码图片,识别图中二维码,关注“表妹的EXCEL”,每周一、三、五获取原创分享教程。加入“表妹的EXCEL群”,和勤奋好学的小伙伴们一起快乐地学习EXCEL吧!
微信公众号 QQ学习群