转自:微点阅读 https://www.weidianyuedu.com
排序,是我们在整理数据的时候经常会使用到的工具。今天,小编也是接到了这样一个小任务,就是把下图中每个部门的业绩以升序的方式进行排序:
小编一想,排序嘛,那不是很简单的事情嘛。可当小编自信满满的打开【数据】选项卡下面的【排序】,在【排序】对话框设置好排序要求后,却出现了如下图所示的问题:
这是因为表格内的部门列有合并单元格,且合并的单元格数量不一样,有合并3个单元格的,有合并4个单元格,还有没有合并过的单元格,所以出现了单元格大小不一样的情况,从而导致排序操作无法完成。
小编开始苦恼了,既然这样的话,难道要让我每个部门分开排队或者手动调整数据顺序吗?这个工作量,光是想一想,都觉得心累。既然自己解决不了,那就只能请教别人了,于是,小编召唤来了身边的Excel能手来帮忙解决问题,谁知她只是看了一眼就有了解决方法:
1.在所有数据后面的空白列增加一个辅助列,在辅助列(E2)内输入公式:=COUNTA($A$2:A2)*10^4+D2,向下填充,完成如下图所示效果:
2.选择B列到E列的所有数据,在用E列数据进行升序排序即可完成按每个部门数据升序排序的效果,最后再删除辅助列即可
看着她一顿操作猛如虎,这过程呢照着做小编倒是没有太大问题,可是这原理小编没想通啊,于是只能再次请教:
她告诉我说,这种排序技巧也被称为“组内排序”, COUNTA函数是专门用来计算区域中非空单元格的个数,COUNTA($A$2:A2)这一部分函数主要是为了实现按部门分组的效果。
需要小伙伴们注意的是这个案例中区域的写法,$A$2:A2中,前面的A2使用了绝对引用,因此随着公式向下填充,引用的单元格区域逐渐变大,每跨过一个合并单元格,结果就会增加。
这就保证了同一个部门属于同一个“组”
而“10^4”表示的是20的4次方。COUNTA($A$2:A2)*10^4这部分是为了给每个部门定义一个数量级
说到这,小编又有新疑惑了,为什么要是4次方呢?4次方上固定的吗?小编继续请教道:
这取决于实际参与排序的最大数字的位数,如果销售数据中有过万的,这里就要有5次方了。为了保险起见,次方数可以适当大一点(只能大不能小),不必过于精确。这样相同的部门属于同一个数量级,而定义数量级的作用就是为了保证在排序的时候,同一个部门的数据是连在一起的。