如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

一、案例
如下图所示,A1:C10为各销售部门业务员销售额数据 。要求销售部门排列顺序不变,各销售部门内按业务员销售额由高到低排序,效果如E1:G10所示 。

如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

文章插图


二、解决方法
1、构建辅助列D列,在D2单元格输入公式
=-POWER(10,COUNTA($A$2:A2)+3)+C2
拖动填充柄向下复制公式 。
如下图所示:
如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

文章插图


【如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序】2、选中B1:D10,注意不能选到A列的合并单元格 。单击【数据】-【排序】,打开排序对话框 。选择【主要关键字】为“辅助列”,【次序】选择“降序” 。如下图所示:
如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

文章插图


单击确定,即可得到想要的结果,如下图所示:
如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

文章插图
最后删除辅助列 。


公式解析:
(1)COUNTA函数用于计算区域中非空单元格的个数 。COUNTA($A$2:A2)的结果如下图所示:
如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

文章插图
A2:A10的合并单元格中,其实只有每个合并单元格的第1行有数据,其他为空值,因此COUNTA函数得到如上图所示的结果 。
(2)POWER函数用于返回某数的乘幂,例如POWER(10,2)=100 。本例中POWER(10,COUNTA($A$2:A2)+3)即10的COUNTA($A$2:A2)+3次方 。-POWER(10,COUNTA($A$2:A2)+3)的结果如下图所示:
如何对合并单元格内的数据排序 怎么对有合并单元格的数据排序

文章插图
从上图可以看到,POWER函数在“销售1部”、“销售2部”、“销售3部”生成的数值分别为-10000、-100000、-1000000 。这三个数值的绝对值均远大于C2:C10中的数值 。
(3)将POWER函数生成的数值与对应的C列数值相加,然后对辅助列降序排序 。由于POWER函数生成的数值绝对值远大于C列金额,因此即使加上C列金额,仍可以确保辅助列中“销售3部”对应的数值绝对值最大,其次为“销售2部”,最后为“销售1部” 。这样在按照降序排序时,可以确保不改变原有的销售部门排列顺序 。POWER函数加上C列金额,则可以保证在同一部门内部,销售额大的排在前面 。