动态数组行业案例:使用INDIRECT函数制作二级下拉菜单

清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

今天我们继续来聊动态数组的行业应用。我们在统计人员信息的时候,经常会录入人员的二级动态信息(根据一级录入的信息变化二级信息的内容),例如:

让员工选择自己的省份,选择好省份以后,会在相应的市里面进行选择,然后再选择相应的区/县;

让员工选择自己的二级单位,选择好二级单位以后,在相应的下属部门中进行选择,然后再选择相应的科室;

让员工填报自己的政治面貌,选择“中共党员”以后,可以再进行“正式党员”和“预备党员”的选择;选择“非党员”以后,可以再进行“入党积极分子、共青团员、群众、民主党派”等身份的选择;

让员工填报自己的性别,可以计算产假或者陪产假;女性员工还可以根据胎儿个数、是否剖腹产、是否使用助产工具等情况计算对应的产假和哺乳假时间……

以上这些行业的应用,都是我们会遇到的高频需求,其中使用的一个“动态的”、“灵活的”、“定制的”方法,就叫做二级下拉菜单。今天我们就结合动态数组功能和【数据选项卡】的【有效性】工具,教大家制作这个实用的工具。

我们以《某部门人员信息表》为例,根据员工录入的省份信息,返回对应的市信息。

我们复习一下之前讲过的动态数组《动态序号》和《金牌查找公式》,将A列和C:F列填好。

教程回顾链接:

动态数组行业案例:动态序号

动态数组行业案例:XLOOKUP金牌查找函数(上)

接下来我们在G列利用【数据】选项卡→【有效性】→【有效性条件】中选择“序列”→选择<参数表>中的A2:A6单元格→确定,完成一级下拉菜单的制作。

二级下拉菜单的制作一共分为两个步骤:

  1. 在<参数表>中定义名称:首行

如上图所示,我们选中二级下拉菜单的参数框,然后选择【公式】选项卡→【指定】→勾选“首行”→确定,完成第①步的操作。

  1. 生成带公式的“序列”数据有效性

如上图所示,我们选中二级菜单的H3:H10单元格区域,选择【数据】选项卡→【有效性】→【有效性条件】中选择“序列”→【来源】中输入=INDIRECT(G3)→确定,完成第②步的操作。结果如下图所示:

🔔

原理分析:

  1. 我们第①步批量设定名称,实际是将<参数表>中单列各市的名字,作为一个数组,以对应省份的名字命名,便于后面引用。

  1. INDIRECT函数,可以将单元格的文本名称引用为其真实的值。在本例中,G3单元格对应“广东省”,但这个“广东省”并非是这三个汉字,而是以“广东省”为名字的一个动态数组,数组的各元素为下辖的市级行政区。

  1. 我们可以在空白处手工输入=INDIRECT(G3),验证我们的假设(如下图所示)。

  1. 我们在设定第②步的时候,点击G3时,默认生成$G$3(绝对引用),我们需要手工删掉$符号,变成G3。大家思考一下,为什么不能用$G$3呢?

💡

解答:由于我们设置的是一列二级下拉菜单,如果锁定了$G$3,那么整个H列的二级菜单都是“广东省”对应的市啦。这一点需要注意哦!

为便于大家观看,我把每个省份的市都删减到了相等的数量,但实际上,各省份的市通常是不相等的,真实的<参数表>会是下图的效果:

这个时候,如果框选最多的那个矩形单元格区域,就会让生成的菜单多出很多空白格。

市“数量”比较少的省,存在大量的空行

这时候可以在第①步之前,增加一个操作:

选中数据方框,按【Ctrl+G】快捷键→调出【定位】对话框→保持默认状态(“数据”选项保持选中)→确定,然后继续完成第①步的操作,就完美地解决了空单元格的问题。过程及操作结果如图所示:

有数据的单元格已被选中

此时已不存在空行

今天的内容大家都学会了吗?我在源文件中给大家留了<空白参数表><空白汇总表>,供大家从头到尾进行一遍练习,确保你的知识都记牢!

下面是今天练习文档的链接:

【金山文档】 动态数组行业案例:INDIRECT函数制作二级下拉菜单

https://kdocs.cn/l/cdZXspvuZUJ5

为不影响社区其他用户查看初始文件,我关闭了在线协作的功能。大家可以将文档下载到本地,自由操作练习哦!

如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!

同时,你也可以将感悟或者收获在下方留言,或者在评论区留下你的困惑,我会挑选有代表性的问题,推出更多的教程跟大家分享哦!

祝大家国庆节快乐!

欢迎大家阅读我的其他文章:

【动态数组灰度测试】系列

动态数组行业案例:使用SEQUENCE/FILTER函数 × 动态数组 搞定三大高频场景

动态数组行业案例:使用SORTBY函数 × 动态数组 制作多功能成绩单

动态数组行业案例:使用UNIQUE函数 × 动态数组 多场景全能应用

动态数组行业案例:使用SEQUENCE函数 × 动态数组 生成动态序号

动态数组行业案例:使用XLOOKUP × 动态数组 实现金牌查找(上)

动态数组行业案例:使用XLOOKUP × 动态数组 实现金牌查找(下)

动态数组行业案例:使用RANDARRAY × 动态数组 解决授课案例问题

【WPS AI办公】系列

教你一句话找到本次成绩的班级前三名的同学

教你一句话规范身份证号和手机号填写

WPS AI版本体验测评(表格篇)

【菁培班-函高一期PK赛】系列

排序功能平替,等你来设计!

兄弟们,抽奖啦~!

标记正确选项

快来绘制你的专属圣诞树啪

【学习感悟】系列

梦想金山,生生不息——民航小哥的KCT认证备战日记

【我和WPS那些事儿】生生不息,再造未来——一位打工人读者的思考

辽宁省
浏览 1650
2
16
分享
16 +1
7
2 +1
全部评论 7
 
陈一凡
金山文档的表格,如何设置二级下拉菜单呢
· 黑龙江省
回复
 
MusicZone
利害了,太喜欢你写的东西了
· 云南省
1
回复
清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

谢谢您的支持
· 辽宁省
回复
 
TOBY
这个很实用,易上手,用上立显高级
· 陕西省
1
回复
清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

谢谢您的支持
· 辽宁省
回复
 
TOBY
学习
· 陕西省
回复
 
张俊
张俊

社区优秀创作者

泽岩师兄厉害了,国庆期间疯狂创作!
· 贵州省
2
回复