zoukankan      html  css  js  c++  java
  • excel省市区三级分类级联

    前言:同事正好需要一个这样的地址类型给用户使用下载模板,改好地址再导入,这样就不会出现地址不匹配问题。所以就自己也整理了一套,以备不时之需。

    效果展示

    图一:省级

    图二:市级

    图三:区级

    图四:各乡镇

    当更换一级菜单时二、三、四级会提示更新级联选项,否则提示错误。依次类推,二级改变时,三、四级提示错误

    首先,要实现上面效果,需要二大部:

    第一部:准备做级联的数据源;(主要就是看你的数据来源,是通过数据库还是其它)

    第二部:excel函数及规则应用;(主要使用OFFSET, MATCH, CONTIF),即可实现上面效果。

     在使用上面excel函数之前,首先要熟悉一下几个函数的作用,如果已经知道可忽律

    OFFSET(reference,rows,cols,height,width)
    Reference 作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,函数 OFFSET 返回错误值#VALUE!。
    Rows相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用 5 作为参数 Rows,则说明目标引用区域的左上角单元格比 reference 低 5 行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方)。
    Cols 相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用 5 作为参数 Cols,则说明目标引用区域的左上角的单元格比 reference 靠右 5 列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。
    Height高度,即所要返回的引用区域的行数。Height 必须为正数。不可为负
    Width宽度,即所要返回的引用区域的列数。Width 必须为正数。不可为负
    offset 在汇编中可以获得操作数的偏移地址。用法:
    
    MATCH(lookup_value, lookup_array, match_type)
    lookup_value:需要在数据表(lookup_array)中查找的值。可以为数值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。可以包含通配符、星号 (*) 和问号 (?)。星号可以匹配任何字符序列;问号可以匹配单个字符。
    lookup_array:可能包含有所要查找数值的连续的单元格区域,区域必须是某一行或某一列,即必须为一维数据,引用的查找区域是一维数组。
    match_type:表示查询的指定方式,用数字-1、0或者1表示,match_type省略相当于match_type为0的情况。
    为1时,查找小于或等于lookup_value的最大数值在lookup_array中的位置,lookup_array必须按升序排列:否则,当遇到比lookup_value更大的值时,即时终止查找并返回此值之前小于或等于lookup_value的最大数值的位置。
    为0时,查找等于lookup_value的第一个数值,lookup_array按任意顺序排列:
    为-1时,查找大于或等于lookup_value的最小数值在lookup_array中的位置,lookup_array必须按降序排列。利用MATCH函数查找功能时,当查找条件存在时,MATCH函数结果为具体位置(数值),否则显示#N/A错误。
    注:当所查找对象在指定区域未发现匹配对象时将报错!
    建议使用match方法同时使用 On Error Resume Next;或者 On Error goto 100 语句。
    
    HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)(HLOOKUP函数是Excel等电子表格中的横向查找函数,它与LOOKUP函数和VLOOKUP函数属于一类函数,HLOOKUP是按行查找的,VLOOKUP是按列查找的。)
    Lookup_value为需要在数据表第一行中进行查找的数值。Lookup_value 可以为数值、引用或文本字符串。
    Table_array为需要在其中查找数据的数据表。使用对区域或区域名称的引用。
    Row_index_num为table_array 中待返回的匹配值的行序号。Row_index_num 为 1 时,返回 table_array 第一行的数值,row_index_num 为 2 时,返回 table_array 第二行的数值,以此类推。如果 row_index_num 小于 1,函数 HLOOKUP 返回错误值#VALUE!;如果 row_index_num 大于 table_array 的行数,函数 HLOOKUP 返回错误值 #REF!。
    Range_lookup为一逻辑值,指明函数 HLOOKUP 查找时是精确匹配,还是近似匹配。如果为TURE或者1,则返回近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。
    如果 range_lookup 为 FALSE或0,函数 HLOOKUP 将查找精确匹配值,如果找不到,则返回错误值#N/A。如果range_lookup 省略,则默认为近似匹配。
    表格或数值数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)的首行查找指定的数值,并在表格或数组中指定行的同一列中返回一个数值。当比较值位于数据表的首行,并且要查找下面给定行中的数据时,请使用函数 HLOOKUP。当比较值位于要查找的数据左边的一列时,请使用函数 VLOOKUP。 HLOOKUP 中的 H 代表“行”。

    通过上述相关知识点,我们来操作实现省一级菜单

    省一级

     excel--公式--定义名称(或CTRL+F3)

    由第一部分我们可以看到,A列为省份,所以,我们的引用位置使用A列,确定。

    之后则使用,我们选择A2单元格使用一级菜单(数据--数据有效性)

    到这里,我们一级菜单制作完成。

    市二级

     类似第一步省一级,先制作函数后使用:

     区三级

    各乡镇四级

    完成上述操作。那么级联已经完成。

    下面是当上一级改变时,后续级联地址提示错误

    然后再点击【格式】

    确认,完成。这样就二级就应用了一级改变二级提示错误,后面依次类推。

    祝顺利完成

  • 相关阅读:
    sql server 操作文件
    sql server T-sql查询执行顺序
    js 时间相关函数
    js页面 :函数名 is not defined
    C# 通过文件路径获取文件名
    WRAR下载及注册
    Java 中xml解析
    string 与 byte[] 互转时的注意事项
    Spring MVC表单标签
    java 中基本类型与字符串之间的互相转换
  • 原文地址:https://www.cnblogs.com/wangwiz/p/9019806.html
Copyright © 2011-2022 走看看