对数据进行自定义排序,这本来属于排序功能的重要作用之一,也是excel必会操作的技巧之一,但如果需要不变动源数据的前提下来作排序, 则需要使用公式进行多列数据的自定义排序。
自定义排序操作如下动图所示:
如下表中,对三列数据依次进行降序排序,按照自定义排序的条件顺序,即线材规格是主排序条件,标准线材长和拆算支数是次要排序。
关于使用公式来对多列数据区域进行排序,我们在上节中介绍了几个公式的写法,但这几个公式是完全不同的作用:
第一个公式是large函数做降序排序。
第二个公式是large组合if函数的条件排序。
第三个公式是vlookup组合if函数的多关键字查找引用。
同一个场景使用了三个不同的函数公式,虽然能够活跃童鞋们的解题思维,但毕竟不是更优解,因此今天作者来介绍一个更直接的解题函数,能够通过这个函数公式快速返回自定义排序后的数据结果。
我们仍然以该数据表为例,首先新建一个标题行,然后在下方单元格输入公式:
=SORTBY(A2:C38,A2:A38,-1,B2:B38,-1)
这个函数叫sortby,属于excel365版本更新的一个查找引用函数。不过我们在wps表格中也可以找到应用这个函数!
它的作用是对一个数据区域进行自定义排序。
其语法图如下所示:
表达式为:=sortby(引用区域,排序列1,排序类型,排序列2,排序类型……)
第1参数是引用区域,即源数据或者说需要进行排序的数据区域;
第2参数是第1个排序依据,也成为排序条件,同时也可以通俗地叫做第1个排序列,它可以视为自定义排序中的主要关键排序条件;
第3参数是排序类型,即升序和降序,如果是升序,则输入参数值1,降序则输入参数值-1;
第4参数是第2个排序依据,也就是次要条件;
第5参数是第2个排序列的排序类型;
之后参数可以循环设置更多的排序列。
回到公式,我们套入表达式来理解。
第1参数引用区域是整个源数据表区域,第2参数主要排序列,则是A列的线材规格,它是我们首要排序的内容,然后第3参数设置为-1,即降序排序。
接着第3参数的第2个排序列设置为B列线材长,排序类型为降序。
而对C列拆算支数的排序,作者省略了公式第3个排序列的设置,这是因为数据表中已经显示C列是唯一值,在同一线材规格和线材长度下只有一个支数数据,因此可以省略这个排序列的参数输入。
当然,我们也可以在公式中添加上第3个排序列,结果是一致的。
理解公式含义后,我们还要注意一个要点,sortby函数是一个输入数组结果的函数,因此要切记进行三键运行公式,同时,由于wps表格不支持动态数组,或者叫不支持数组结果溢出,因此我们需要首先拉取需要填充公式的单元格区域,然后点击编辑公示栏进入公式编辑状态,再按下三键进行数组运算!
学会sortby函数,在对数据进行多列的自定义排序时,是非常快捷和简单的。
此外我们还有一个sort函数,也是对数据进行排序,但它更多用于以某列为排序依据来进行数据排序。