排序用的好,省时效率高!排序用的孬,费力不讨好!

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天来分享一个排序的技巧。别看一个小小的排序,只要用的好,绝对是省时效率高。如果用不好,那就是费力不讨好。
下面来看一个群友的问题,左表是他的数据源,现在要把每户的户主排在第1位,结果如右表所示。如果让你做,你会怎么做?

只要找到思路,还是挺简单的。在E列添加一个辅助序号列,在E3单元格输入公式=LOOKUP(9^9,A$3:A3)*10+(C3<>"户主"),向下填充。然后选择C3:E19,确保E3是活动单元格,显示为白色。最后点升序排序就ok了。

虽然看我操作挺简单的,但是如果没有理解它的逻辑,还是不好看懂的。其实这是个多关键字排序的问题。

=LOOKUP(9^9,A$3:A3)这部分返回的结果如下图E列所示,实际就是给每一户的成员编号,第1户的所有成员都是1,第2户的所有成员都是2,以此类推。

=C3<>"户主"部分返回的结果如F列所示,判断C列的单元格不等于"户主"。如果成立返回true,不成立返回false。true相当于1,false相当于0。
上图E列是主要关键字,F列是次要关键字。所以给E列的结果加权重,乘以10,然后再加上F列的结果, 得到G列的结果。也就是我们最开始公式的结果。如下图所示。

然后以上图E列的结果升序排序,第1个肯定是10,第2个是11,第3个还是11。10对应的是第1户的户主,2个11对应的是第1户的其他成员,他们按先后顺序排序。

再往下排序,就到了20,21,21。20对应的是第2户的户主,2个21对应的是第2户的其他成员。以此类推,接下来是第3户的。。。一直排完为止,就得到了我们要的效果。

只要你深挖,excel的一个小功能也能发挥很大的作用。如果好几个功能组合使用,可能又会有很多奇思妙解。再配合上函数,更加灵活便捷。你怎么看?
链接:

https://pan.baidu.com/s/1CUBnOj6j-8p_fWHA4feT_A

提取码:9pje
(0)

相关推荐