现在有这样一个问题,需要对每个部门按照员工的年终奖从低到高排序:
可是当我们选中c列排序时,会弹出提示框:
相信这个问题大家都遇到过。那么该如何解决呢?
首先分析下“若要执行此操作,所有合并单元格需大小相同”,这句话表达的意思是说:部门这列是合并单元格,而其他各列并不是合并单元格,所以出现了单元格大小不同的情况,无法完成操作。
因此排序时,我们只能选中B列以后的数据进行排序:
点击确定之后,排序是完成了,但是部门的关系也全乱套了:
为了不出现这种部门关系被打乱的情况,又要完成排序,我们就需要对数据进行分组,这个分组要保持部门的对应关系,这种排序的技巧也被称为“组内排序”。
怎么办?需要使用辅助列,具体做法如下:
在表格后面一列使用公式:=COUNTA($A$2:A2)*10^5+C2,下拉后效果为:
公式解析:
COUNTA($A$2:A2)这部分是实现了按部门分组的效果,COUNTA函数是计算区域中非空单元格的个数,注意这里面区域的写法,引用的单元格区域逐渐扩大,每跨过一个合并单元格,结果就会增加。
这就保证了同一个部门属于同一个组。
10^5这是10的五次方,等同于100000。COUNTA($A$2:A2)*10^5这部分是为了给每个部门定义一个数量级,为什么是五次方?这取决于实际参与排序的最大数字的位数,如果排序的数字有超过5位的,这里就要用六次方了。
来看看定义了数量级的效果:
数量级的作用就是保证在排序的时候,同一个部门的数据都是连在一起的。
给这个数量级加上实际排序的数据,就是=COUNTA($A$2:A2)*10^5+C2
接下来的操作就简单了,选择数据区域(框选B-D列的数据)进行排序即可顺利实现组内排序:
进行排序结束后,删去辅助列的数据即可。
含有合并单元格的数据,无法直接进行排序。需要借助辅助列的数据进行排序。
联系客服