如图:目标数据中的数据以两行的形式分布,左为代码,右为名称,如何根据代码的特点将最终端乡镇的上级组织全部按行体现出来?公式如下:
=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实现循环。
评论 (0)