分享

合并单元格排序,确实有点难

 hercules028 2021-04-25

很多朋友们喜欢合并单元格。比如下图中,同部门的员工,部门列被合并了。

实例

就因为这个合并,需要在各部门内升序排序1~5月工资(IT部的内部升序,销售部的内部升序)时,发现无法排序:“若要执行此操作,所有合并单元格大小相同”。

(抓狂的你:不可理喻,工资列没合并,为啥不能排序???)       图片        ↓

无法直接完成如下各部门内的升序排序

图片

分析:“若要执行此操作,所有合并单元格需大小相同”,是因为“IT部”和“销售部”是单元格合并而来的,而其他的并没有合并单元格,所以单元格大小不同,因此排序时,只能对“部门”列以外的数据进行排序,但如果仅对部门外的数据排序,那么排序后各部门有可能混合,无法做到相同部门的行记录在一起。

这时,该如何操作呢?

注意:以下操作是在Excel 2019版本中进行的,不同版本,操作界面会有些许差异~

方法1

取消合并单元格

先选中被合并单元格的区域,点击【开始】-【合并后居中】,来取消合并单元格,然后可以手动填充数据,最后各部门内分别排序即可(可以先按照【部门】排序,次关键词是【工资汇总】列升序)。

(当然最后可以再返工到原来的简洁画面:部门合并单元格😂)       图片方法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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多