excel函数技巧:sortby+sequence解决排序又不打乱顺序-趣帮office教程网

如图,想通过函数实现能够区分出金额为大于0的放在上面,金额上于0的放在下面,但同时不能改这对这两组数据的位置关系,如序号1是大于0这一组的第一个,那么重新排序后仍然是第一个,实现公式如下:

=SORTBY(G2:J22,IF(H2:H22<>0,SEQUENCE(ROWS(H2:H22)),SEQUENCE(ROWS(H2:H22),,100)),1)

公式思路:本例通过sortby进行排序,依据的序列根据金额列是否为0生成新的序列,不等于0的生成1,2,3,……,为0的生成100,101,102……这样大小就区分出来啦。最后形成1,2,3,4,5,100,6,101……这样的新序列。

然后通过sortby函数依据新生成的序列进行排序就可以得到想要的结果。

本例的核心还是if主导下的数组运算,根据条件批量替换原数组,达到想要的结果 。