ARTICLE · 1235060
Excel省-市-区三级联动菜单:级联选择,录入效率翻倍还不出错
在做客户信息表的时候,选择省份为广东之后,城市需要手动填写,区县也要再次查找,很麻烦,并且很容易出错。其实使用Excel的数据验证和INDIRECT函数可以制作出省、市、区三级联动的下拉菜单。
一、准备省级、市级、区级的数据
创建一个新的工作表,并命名为“基础数据”,按照如下方式进行整理:
省份,对应的城市
广东省,广州市、深圳市
浙江省,杭州市、宁波市
准备好的城市对应的区县名单为:
城市 对应区县
广州市,天河区、越秀区
深圳市,南山区、福田区
杭州市,西湖区、滨江区
宁波市,海曙区、鄞州区
主要做法是给每一组数据取一个名字。
例如,在连续的两个单元格里输入“广州市、深圳市”,选中这两个单元格,在左上角的名字框里输入:
广东省
按下回车键进行确定。
同样把“天河区、越秀区”的地方叫做:
广州市
其他省份、城市也按照上面的方法来设置。
小贴士:名称要和上一级菜单中文字完全一样,不然联动就会出问题。
二选择制作省份下拉框
创建一个新的“信息录入”工作表。
A列填上省份、B列填上城市、C列填上区县。
把基础数据中省份的列表命名为“省份列表”。
选择A2单元格,然后点击:
数据->数据校验->准许:序列
来源处填写:
= 省份列表
点击“确定”。
这样A2就可以直接选择“广东省”或者“浙江省”,不需要手动输入。
三让城市随着省份的变化而变化
这是整个过程当中最为重要的一步。
选择B2单元格,进行数据验证设置,类型为序列,来源处填写:
=INDIRECT($A2)
点击“确定”按钮。
那么我们开始吧:
A2选择广东的话,B2就会出现广州和深圳。
A2改为浙江省的时候,B2下拉框的内容就会变成杭州市和宁波市。
INDIRECT函数的作用就是把A2单元格里的省份名称转换为相应的命名区域。
四让区县随着城市发展而自然发展
选中C2单元格之后接着进行数据验证的设置,来源处输入如下内容:
=INDIRECT($B2)
完成之后就创建好三级菜单了。
实际的情况是:
text
广东省→广州市→天河区
广东省→深圳市→南山区
浙江省 → 杭州市 → 西湖区
不同的城市,区县下拉选项也会随之变化。
当需要输入多行数据的时候,可以将A2:C2复制到下面的区域中,用“选择性粘贴→验证”就可以把下拉规则应用到其他的行上了。
五、两个需要注意的地方
问题1:下拉菜单没有数据。
检查命名区域是否正确,在省份和城市的名称里面是否有多余的空格。
问题2:改变省份之后原来的城市仍然存在。
因为数据验证只更新下拉选项,并不会自动清空已填入的内容。
因此,在更改省份之后要重新选择城市、区县;在更改城市之后也应重新选择区县。
要实现自动清空下级内容的话,就需要用到VBA宏了。
六、做一做
可以试着做一个员工籍贯登记表,包括姓名、省份、城市、区县四栏。
先准备好基本的数据,然后设置三级下拉菜单,在此之后测试切换省份的时候,城市以及区县的选项是否正确。
掌握了该方法之后,客户地址、员工籍贯、门店区域之类的表格都可以使用了。
Excel好与不好,并不是看记住了多少函数,而是要看能否使日常重复性工作更简单。















































































