很多朋友们喜欢合并单元格。比如下图中,同部门的员工,部门列被合并了。 实例就因为这个合并,需要在各部门内升序排序1~5月工资(IT部的内部升序,销售部的内部升序)时,发现无法排序:“若要执行此操作,所有合并单元格大小相同”。 (抓狂的你:不可理喻,工资列没合并,为啥不能排序???) 无法直接完成如下各部门内的升序排序 分析:“若要执行此操作,所有合并单元格需大小相同”,是因为“IT部”和“销售部”是单元格合并而来的,而其他的并没有合并单元格,所以单元格大小不同,因此排序时,只能对“部门”列以外的数据进行排序,但如果仅对部门外的数据排序,那么排序后各部门有可能混合,无法做到相同部门的行记录在一起。 这时,该如何操作呢? 注意:以下操作是在Excel 2019版本中进行的,不同版本,操作界面会有些许差异~ 方法1 取消合并单元格 先选中被合并单元格的区域,点击【开始】-【合并后居中】,来取消合并单元格,然后可以手动填充数据,最后各部门内分别排序即可(可以先按照【部门】排序,次关键词是【工资汇总】列升序)。 (当然最后可以再返工到原来的简洁画面:部门合并单元格😂) 方法2 增加辅助列 分析:为了排序时不出现IT部门的数据跑到其他部门区域(各部门不能混合),这里需要把数据分为2个模块:IT部及销售部,这种排序被称为“组内排序”。 基于以上分析,可以增加一个辅助列,使每一个部门的工资大小是不同的数量级,各部门的工资要确保有质变的差异: 比如考虑是升序排序,IT部门的辅助列数字大小为1000000+(10^6+),销售部的辅助列数字大小为2000000+(2*10^6+),那么无论如何排序,每一个部门的员工都是连在一起的,因为部门间的差距太大(质变的差异),这样就保证了在合并单元格时可以进行组内排序。 那么这里,需要借助函数COUNTA构建辅助列。 COUNTA函数是计算区域中非空单元格数量的,例如本例中=COUNTA($B$4:B4)的输出结果是1,=COUNTA($B$4:B5)的结果还是1,但是=COUNTA($B$4:B7)的输出结果就开始变成了2,因为此时非空有【IT部】及【销售部】两处内容了。 Step1:如图在辅助列输入公式,并向下复制填充。 =COUNTA($B$4:B4)*10∧6+I4
分析:这样公式在向下复制填充时,COUNTA($B$4:B4)引用的单元格区域逐渐扩大,拖动时逐步变成=COUNTA($B$4:B5)、COUNTA($B$4:B6)、COUNTA($B$4:B7)......,每跨过一个合并单元格,结果就会增加1,从COUNTA($B$4:B7)开始结果变为2,因此整个公式就构造出了一组不同数量级的数值。 Step2:最后,框选【C~J】列的数据区域,进行排序即可顺利实现组内排序。排序结束后,删去辅助列的数据即可。
法2的全部操作动图如下: 拓展 1)如果列信息先是【姓名】列,然后才是【部门】列,如何排序? (提示:辅助列之后,部门列夹在中间,隔开了姓名与工资的连贯性) 2) 如果要求进行降序排列,如何构建辅助列? (提示:辅助列之后,等级应该从大到小,这样降序排序时,各部门顺序不变) 练习文件: https://pan.baidu.com/s/1rAKe81QIbbkWUwWbZzVW0Q 作者:小鱼儿 原载:雷哥Office |
|
来自: hercules028 > 《excel》