排序可以让海量的数据变得一目了然,不过我们平时使用的简单排序只是发掘了排序的一丁点价值而已。本文总结一下排序的“骚操作”。
一、按行排序
当我们的数据是类似于每个月销售额每个类别表现时,我们可能想要将数据进行“行排序”,如下图。我们可能需要将月份按照成交数总计进行排序,成交数最高的排在最前面。步骤如下图。
二、自定义序列
有时我们需要将职位、职称、地区等按照我们人类的思维去进行排序,就需要手动添加排序系列。
三、对混合文本进行排序
对于文本与数字组合的形式,排序的规则比较复杂,如下图,A列编码是由字母和数字组合而成,现在我们对A列进行升序排序,发现排序后的结果并没有按照我们想象的(先按字母升序,然后按照数字大小升序)。
这是因为:字母和数字组合之后,在Excel中就变成了文本格式,排序的规则是:一个字符一个字符进行排序。因此,直接对A列进行排序的过程是这样的:①先对第一个字符(也就是字母进行排序)②再对第二个字符进行排序③第二个字符显然的结果是“A7>A10”,因此出现“错误”的排序,然后对第三个、第四个字符进行排序……因此,如果数字的位数不一样,排序就会出错。
为了解决这一问题,我们可以通过增加辅助列,构造0占位符,使数字部分的位数一致。
在C2单元格中写入公式=LEFT(A2,1)&TEXT(RIGHT(A2,LEN(A2)-1),"000"),构建辅助列。
- LEFT(A2,1):是提取原编码中左端的字母;
- RIGHT(A2,LEN(A2)-1):是提取原编码中的数字;
- TEXT(RIGHT(A2,LEN(A2)-1),"000"):将提取出来的数字变为三位数的显示形式,不足的位数用0补齐。
- 然后对C列进行升序排序,这样就达到了我们想要的效果。
三、合并单元格排序
此部分来源(公众号:精进Excel)
如图,需要对每个地区的产品单价进行排序。当我们鼠标单击C列的单元格,然后进行排序时,会有错误提示:若要执行此操作,所有合并单元格大小相同。遇到这种情况如何进行排序呢?
思路:首先分析下“若要执行此操作,所有合并单元格需大小相同”,这句话表达的意思是说“北京”“成都”“大连”等是由三个单元格合并而来的,而其他的并不是由合并单元格来的。所以出现了单元格大小不同的情况。
因此排序时,只能对A列以外的数据进行排序。
为了不出现北京区域的数据跑到其他区域,需要把表数据分为三个块:北京,成都和大连。
这种排序也被称为“组内排序”
因此,若增加一个辅助列,每一个区域的数字大小是一个数量级,比如北京的辅助列数字大小为10000+,成都的辅助列数字大小为20000+,大连的辅助列数字大小为30000+。
那么,无论如何排序,每一个区域的产品都是连在一起的。
这样就保证了在合并单元格的情况下进行组内排序。
需要借助辅助列和函数COUNTA函数。
COUNTA函数是计算区域中非空单元格的个数。如图在辅助列输入公式=COUNTA($A$2:A2)*10∧4+D2,并向下复制填充。
这样公式在向下复制填充的过程,COUNTA($A$2:A2)引用的单元格区域逐渐扩大,每跨过一个合并单元格,结果就会增加1,因此整个公式就构造出了一组不同数量级的数值。
最后,选择数据区域(框选B-F列的数据),进行排序即可顺利实现组内排序。排序结束后,删去辅助列的数据即可。
含有合并单元格的数据,无法直接进行排序。需要借助辅助列的数据进行排序。
四、进行分类汇总前需要先进行排序
五、工资条制作