excel函数技巧:reduce+xlookup+round类函数解决归属问题-趣帮office教程网

如图:目标数据中的数据以两行的形式分布,左为代码,右为名称,如何根据代码的特点将最终端乡镇的上级组织全部按行体现出来?公式如下:

=LET(

s,REDUCE("",--A3:A1000,LAMBDA(x,y,VSTACK(x,IFERROR(UNIQUE(HSTACK(XLOOKUP(ROUNDDOWN(y,-7),--A:A,A:B),XLOOKUP(ROUNDDOWN(y,-5),--A:A,A:B),XLOOKUP(ROUNDDOWN(y,-3),--A:A,A:B),XLOOKUP(ROUNDDOWN(y,0),--A:A,A:B)),1)," ")))),

rr,FILTER(s,ISTEXT(INDEX(s,,8))),

rr

)

公式思路,仔细观察数据可以发现如下规律:数字从右到左越具体级别越小,也就是说个位和十位数不为0的才是街道一级,其它都是上一级组织,而且级别越高,数据位数越高,根据此特点,使用roundown函数进行区分。

110000000 北京市
110100000 市辖区
110101000 东城区
110101001 东华门街道

然后用lookup进行提取,最后以reduce实现循环。