Excel实现省-市-区/县级联

数据准备

  1. 准备省份-城市映射数据,如下:
    新建sheet页,命名为:省-市数据源,然后准备数据,如下所示:
    在这里插入图片描述
  2. 准备城市-区|县映射数据,如下:
    新建sheet页,命名为:市-区|县数据源,然后准备数据,如下所示:
    在这里插入图片描述

数据管理

数据准备完成之后,将映射数据装入名称管理器,如下:
在这里插入图片描述

  1. 选中所有(鼠标点击第一行、第一列,然后ctrl+A)
  2. 点击“公式”
  3. 选择“指定”
    在这里插入图片描述
  4. 弹窗弹出后,将“最左列”前面的√去掉,然后点击确认
    在这里插入图片描述
  5. 执行完以上操作后,可查看数据是否加入“名称管理器”
  6. 点击公式、点击名称管理器,即可查看

按照以上步骤,将“市-区|县数据源”中的数据也加入名称管理器

引用数据源实现级联

  1. 实现省份下拉选择
    新建sheet页,命名为 “省-市-区|县级联” ,然后按照如图初始化表格:
    在这里插入图片描述
    鼠标移入A2中,点击“数据”,点击“有效性”
    在这里插入图片描述
    允许选择“序列”,然后点击如下图的小图标
    在这里插入图片描述
    小图标点开之后,展示如下,此时我们去选择省份数据
    在这里插入图片描述
    上图的样子保持,不要叉掉 ,sheet页切换到 省-市数据源
    在这里插入图片描述
    此时,我们选择第一行所有列,鼠标移动到1,点击即可
    在这里插入图片描述
    如上图操作完成后,回车、再确定
    在这里插入图片描述
    则省份下拉实现完成
    在这里插入图片描述

  2. 实现城市下拉选择
    省份下拉实现完成后,城市级联下拉就非常容易了,鼠标移入B2,点击数据,点击有效性,允许选择“序列”
    在这里插入图片描述
    此时在来源中输入:

=INDIRECT(A2)

括号中的值就是省份所在的表格,点击确定
在这里插入图片描述
则按照如上图操作后,即可实现省份-城市级联
在这里插入图片描述

  1. 实现区|县下拉选择
    区|县级联下拉与城市一样,鼠标移入C2, 点击数据,点击有效性,允许选择 “序列”
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a539b2ceef5在这里插入图片描述
    c4c73bc0c61376361109c.png)
    此时在来源中输入:
=INDIRECT(B2)

括号中的值就是城市所在的表格,点击确定

在这里插入图片描述

实现省份切换、城市、区|县自动清空,城市切换、区|县自动清空

实现省份切换、城市、区|县自动清空,城市切换、区|县自动清空 需通过VB编程
选择 开发工具、选择 VB编辑器
在这里插入图片描述
打开之后,鼠标点击 “省-市-区|县级联” 的菜单,然后输入如下图所示代码
在这里插入图片描述

Public sourceVal
Private Sub Worksheet_Change(ByVal Target As Range)
'判断是否等于历史
If sourceVal <> Target.Text Then
    If Target.Column = 1 Then
       Range("B" + CStr(Target.Row)).ClearContents
       Range("C" + CStr(Target.Row)).ClearContents
    ElseIf Target.Column = 2 Then
       Range("C" + CStr(Target.Row)).ClearContents
    End If
End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    sourceVal = Target.Text
End Sub

代码输入完成之后,CTRL+S 保存,关闭编辑器,即可实现省份切换、城市、区|县自动清空,城市切换、区|县自动清空

### 如何在 Excel实现省市县三级动 #### 使用 Easypoi 实现带三级下拉动的 Excel 文件导出 为了实现Excel 中创建省市县三级动的效果,可以采用 `Easypoi` 工具来处理。由于 Excel 对公式的命名存在限制——即不允许以数字作为开头字符,在实际操作过程中可以通过给定特定前缀的方式解决这一问题。例如,对于份编码添加 `"xxx"` 这样的字符串前缀,使得最终形成的公式变为类似于 `"xxx1000" = "hiddensheet!$A$5:$A$6"` 的形式[^2]。 #### 动态加载数据并设置隐藏工作 当涉及到动态从数据库提取信息填充到 Excel 格内时,可利用编程手段完成此过程。具体做法是在程序运行期间实时查询所需的省市县列,并按照既定规则写入至专门设计用来保存这些选项的工作里;之后再通过 VBA 或其他宏命令将其设为不可见状态(hidden sheet),从而达到隐藏辅助格的目的[^3]。 #### HTML 和 JavaScript 实现 Web 页面上的省市菜单 虽然这不是直接针对 Excel 的解决方案,但在理解如何构建类似的交互逻辑方面提供了很好的借鉴意义。网页端通常会借助于 `<select>` 标签配合事件监听器以及 AJAX 技术去异步请求服务器返回对应级别的地理域集合,进而更新页面上相应控件的内容显示[^4]。 ```html <form> <select id="province"> <option value="">请选择份</option> <!-- 份选项 --> </select> <select id="city"> <option value="">请选择城</option> <!--选项 --> </select> <select id="district"> <option value="">请选择/县</option> <!-- 区县级选项 --> </select> </form> ``` 上述代码片段展示了简单的HTML结构用于展示三个连续的选择框,分别代不同层次行政划单位之间的关系。而真正要让它们之间形成有效的关依赖于后台脚本的支持,比如JavaScript或jQuery库函数编写相应的回调机制确保每次改变上级选择项都会触发子集重新渲染的过程。 #### 创建基于 Excel 的三级动实例 要在 Excel 中建立这样的功能模块,主要依靠定义名称范围和使用间接引用公式达成目标: 1. **准备工作** - 准备好包含所有可能值的数据源清单; - 将其放置在一个独立且被标记为“VeryHidden”的工作簿页中以便后续调用而不影响用户体验。 2. **配置名称管理器** - 打开【公式】-> 【名称管理器】对话框; - 添加新的自定义名字示各级分类下的成员列路径指向之前整理好的资料位置; - 特别注意这里的名称应当遵循Excel允许使用的语法规范,必要时加上字母标识防止冲突发生。 3. **应用INDIRECT()与MATCH()组合达式** - 在主界面单元格域内输入如下所示的嵌套语句: ```excel =IFERROR(INDEX( INDIRECT("'"&$B$1&"'!"&SUBSTITUTE(ADDRESS(1,MATCH($C$1,$1:$1,0),4),"1","")), MATCH(D2,INDIRECT("'"&$B$1&"'!"&SUBSTITUTE(ADDRESS(1,MATCH($D$1,$1:$1,0)-1,4),"1","")),0)), ""), "") ``` - 此处假设 `$B$1`, `$C$1`, `$D$1` 分别存放着各层标题文字说明,而 D 列则记录了用户选定的结果序列号。 以上方法能够有效地模拟出如同在线服务般流畅自然的操作体验,同时也便于后期维护调整内部参数设定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值