本帖最后由 shaowu459 于 2022-6-7 13:40 编辑
SORTBY+SCAN函数的例子,如下图,要完成从左侧到右侧的转换,同一个部门的人员放到一起(不考虑姓名里带“部”字的情况):
首先,用SCAN函数循环填充,如果当前单元格不是部门名称,就重复上面的部门名称,这个示例在前面帖子中有提到。完成效果如下图:
- =SCAN(,A1:A18,LAMBDA(x,y,IF(RIGHT(y)="部",y,x)))
复制代码
这种情况下,按新生成的数组对原数组进行排序就可以将同部门人员放在一起了。但是为了保证和A列从上到下部门顺序相同,用MATCH函数返回一下部门的位置:
- =MATCH(SCAN(,A1:A18,LAMBDA(x,y,IF(RIGHT(y)="部",y,x))),A:A,)
复制代码
现在根据新生成的数字列将A列排序:
- =SORTBY(A1:A18,MATCH(SCAN(,A1:A18,LAMBDA(x,y,IF(RIGHT(y)="部",y,x))),A:A,))
复制代码
最后用UNIQUE函数去重一下即可:- =UNIQUE(SORTBY(A1:A18,MATCH(SCAN(,A1:A18,LAMBDA(x,y,IF(RIGHT(y)="部",y,x))),A:A,)))
复制代码
|