如图,AB两列展现了A列的上级,包括所有人的上级,如何通过公式将E列目标人员的所有上级都显示在F至I列?,公式如下:
=IFERROR(REDUCE(XLOOKUP(E2,$A:$A,$B:$B&""),SEQUENCE(3),LAMBDA(X,Y,UNIQUE(HSTACK(X,XLOOKUP(X,$A:$A,$B:$B&"")),1))),"")
公式思路,找到所有的上级,这就涉及到循环,一址到最后的上级也就是老大,这种循环在以前只能通过手动拖动的方式实现,如f2寻找张三1的上级,然后再以F2为目标,寻找李四的上级,依次向右拉。
reduce函数除了累积之外还可以执行循环任务。如本题公式,lambda的y参数,它本身并不参与计算,只是控制循环的次数。本题的sequence(3),就可以理解为将表达式循环三次。然后通过xlookup进行三次查找,把所有的上级都找出来。
评论 (0)