Excel 多级联动下拉列表的实现

做表格时想实现下拉框,并且具有联动的下拉,如省市县这种联动的下拉列表

看效果:

核心就是两个步骤:创建数据、引用数据 


一、创建数据

简单来说就是准备好点击弹时出的数据
这些数据不是凭空来的,需要创建

步骤:

第一步:切换到sheet2
第二步:创建两个数据块,省市数据块,市县数据块。(为了介绍多种实现,用了两种排版,横版和竖版)
第三步:导入数据到名称管理器

Gif 示例(F5或Ctrl+F5刷新从头开始)

说明:

上面两个数据块的排版是不一样的,区别就是:
第一个标题在第一行,第二个的标题在最左列。
对应的操作:标题在首行就勾选【首行】,在最左列就勾选【最左列】
完了之后可以看看名称管理器的内容(如下则表明成功将数据导入名称管理器)


二、引用数据

1、切换到sheet1, 创建联动表

2、添加数据源

数据源来源有两处:sheet2和名称管理器

2.1设置一级菜单数据

第一步:框选选择省的两个格
第二步:【数据】>【数据有效性】>【数据有效性】>【序列】>【来源】>选择sheet2的两个省

Gif示例

2.2、设置二三级菜单数据

第一步:框选选择市的两个格
第二步:【数据】>【数据有效性】>【数据有效性】>【序列】>【来源】填 =INDIRECT($A2)
=INDIRECT($A2):表示引用名称管理器的数据,A2就代表上一级的数据。
第三步:框选选择县的两个格
第四步:【数据】>【数据有效性】>【数据有效性】>【序列】>【来源】填 =INDIRECT($B2)
=INDIRECT($B2):表示引用名称管理器的数据,B2就代表上一级的数据。

说明

INDIRECT($A2):表示用A2的数据去查询名称管理器的”名称”, 如果匹配上就返回该名称对应的”数值”

Gif示例

2.4、完整Gif(F5或Ctrl+F5刷新从头开始)


三、结束

如果需要更多级的联动,方法同上

另外,如果需要升级完善,请看我的另一篇博文:

Excel当上级菜单变动时,实现自动清空下级菜单内容【宏实现】

🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌---🐌

👨‍🌾本文结束,希望有帮到阁下。更多问题可以到我博客来搜索

👉【点击搜索

👉【进入博客

如果有用,求关注👇    感谢🙏

  • 13
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
级联下拉列表实现,可以通过前端的JavaScript和Ajax实现。具体实现步骤如下: 1. 在HTML页面中,定义多个下拉列表,每个下拉列表都有一个唯一的ID。 2. 在JavaScript中,定义一个函数,用于获取下拉列表的数据。可以使用Ajax从后台获取数据,也可以在前端定义一个JSON对象存储数据。 3. 给每个下拉列表绑定一个事件,例如onchange事件,在事件中调用获取数据的函数,获取下一级下拉列表的数据,并更新下拉列表的内容。 4. 根据选中的下拉列表的值,获取下一级下拉列表需要显示的数据,并将数据填充到下一级下拉列表中。 5. 重复步骤3和步骤4,直到最后一级下拉列表。 以下是一个简单的示例代码,实现了两级联下拉列表: HTML代码: ``` <select id="province"> <option value="">请选择省份</option> <option value="BJ">北京</option> <option value="SH">上海</option> </select> <select id="city"> <option value="">请选择城市</option> </select> ``` JavaScript代码: ``` // 定义省份和城市的数据 var data = { 'BJ': ['东城区', '西城区', '朝阳区'], 'SH': ['黄浦区', '徐汇区', '长宁区'] }; // 获取城市数据的函数 function getCity() { // 获取选中的省份 var province = document.getElementById('province').value; // 获取城市下拉列表 var citySelect = document.getElementById('city'); // 清空城市下拉列表 citySelect.innerHTML = '<option value="">请选择城市</option>'; // 如果省份为空,直接返回 if (province === '') { return; } // 获取对应的城市数据 var cities = data[province]; // 填充城市下拉列表 for (var i = 0; i < cities.length; i++) { var option = document.createElement('option'); option.value = cities[i]; option.innerHTML = cities[i]; citySelect.appendChild(option); } } // 绑定省份下拉列表的change事件 document.getElementById('province').addEventListener('change', function() { // 获取城市数据 getCity(); }); ``` 以上代码实现了根据选中的省份,显示对应的城市列表。如果需要更多的级联下拉列表,只需要在JavaScript中添加对应的函数和数据即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cy谭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值