写在前面:天杀的CSDN附件下载居然要会员 错怪孩子了 点立即下载不要钱
最近遇到了个需求,要在excel中做省市区三级联动,同时需要其地区代码(例:110101 东城区)网上搜了一圈不是付费就是只有地区名称不含code,估花了点时间自己研究了下,做出来成品。
最终效果如下:
实现思路:
1.创立省市区代码sheet页
2.创建名称管理器,写入市数据/区数据
假设我的三级联动在E2/F2/G2格
市数据引用位置:
=OFFSET('省-市-区'!$B$2,MATCH(LEFT('省-市-区'!$E2,2),LEFT('省-市-区'!$B$2:$B$400,2),0)-1,0,SUMPRODUCT(--(LEFT('省-市-区'!$B$2:$B$400,2)=LEFT('省-市-区'!$E2,2))))
区数据引用位置:
=OFFSET('省-市-区'!$C$2,MATCH(LEFT('省-市-区'!$F2,4),LEFT('省-市-区'!$C$2:$C$4000,4),0)-1,0,SUMPRODUCT(--(LEFT('省-市-区'!$C$2:$C$4000,4)=LEFT('省-市-区'!$F2,4))))
如果想要在其他Sheet页使用,其中市数据-'省-市-区'!$E2&区数据-'省-市-区'!$F2页需要对应更换
原理:由省市区的代码表可见,市的前2位和省代码一致,区前4位和市一致,说白了就是根据省代码在市码表中查找合适数据作为市下拉选,区下来选同理。
公式不懂可以粘下来问文心一言,AI讲解可比我在这打字强多了。
3.选定省市区的有效性
省单元格需要划定范围:
市单元格指向市数据:
区单元格指向区数据: