应用环境:

入职的时候见过HR发来的入职信息电子表,其中地址栏,下拉框选择的省市区,是不是觉得有点高大上,没错就是用的数据验证性的序列功能。

可以搜索到相关操作方法:如采用的方法有offset函数、搭配match函数、indirect函数、定义名称等结合数据验证的操作,看起来比较复杂,但是都可以实现一样的功能,之前我用的是indirect和定义名称来做的,实现二级三级四级的下拉菜单,有一点繁琐,今天暂不分享,针对上图中的省市县二级、三级下拉菜单,采用极简方法!

使用Excel工具及函数:

offset函数、数据验证、vlookup,countif函数

先看最后实现效果:

首先简单介绍一下函数及工具:

①数据验证:

数据验证工作中常用的是序列功能,可以强制填表者按照规定的要求填写内容,避免了后续数据填写不规范带来的统计困难,位置在数据→数据验证→数据验证→设置→允许里选择序列→来源选择某一个区域,或者填写以英文逗号分开的内容

②offset函数:offset函数可以根据参考值偏移行列高宽确定单元格的位置获取单元格的内容,也这里可以定位到一个区域(具体用法可以网上搜索,后期再出一个offset函数的详解,职场中offset用的比较多的是在动态图表中)

vlookup函数:常见的匹配函数,这里利用vlookup的重复数值仅支持匹配第一个的特性

countif函数:简单的计数函数,有了区域和条件就能统计出,该区域满足条件的个数

详解步骤

1、 数据准备:这里通过百度获取到的中国省市县明细数据,分三个部分,省份将作为一级菜单;省、市、辅助,这三列用于制作二级菜单;省、市、县、辅助1、辅助2用于制作三级菜单

2、 一级菜单,根据上面介绍的数据验证性用法,将A列省选中作为数据来源;二级菜单

二级菜单,这里详细介绍:

数据验证中数据源处填写内容=OFFSET($E$1,VLOOKUP($O$4,$D:$F,3,0),,COUNTIF($D:$D,$O$4),1)

分解一下这个函数:

参数1,参考值E1,上图中的市

参数2:向下移动的位置,这里用vlookup,根据O4单元格-省匹配出辅助的数字,例如河北省对应数字为3,代表从E1单元格向下移动三个单元格也即是到了石家庄市,

参数3:因为只取1列,不要向左向右取区域,所以此处为空,

参数4:countif函数,统计出D列,省份的这列有多少个重复值,代表这个省有多少个市,决定了区域的高,参数5:写的1,代表宽度是1

至此已经确定了offset函数的各个参数,可以根据省,定位出不同的市,二级菜单已经制作完成

3、 最后就是三级菜单,数据来源

=OFFSET($J$1,VLOOKUP($O$4&$P$4,$K:$L,2,0),,COUNTIF($K:$K,$O$4&$P$4),1)

唯一不同的是vlookup中用&符号拼接了两个参数,对应的是K 列辅助1,其他原理同二级菜单制作

至此一个完整的三级菜单就制作完成了,建议收藏哦。