Excel多级联动–数据有效性与indirect函数的结合使用
目标:
设置多级联动菜单
数据源:
制作如下,通过颜色和内容,可以看出联动关系:
联动菜单:
步骤一:
设置一级菜单
选中F10单元格,【数据】-【数据验证】-【数据验证】,【设置】选项卡-【验证条件】-【允许】选择【序列】,【来源】选择F2:F3区域,默认为绝对引用:
步骤二:
设置二级联动
①定义名称
选中G2:G4,即“百度”对应的“运营模块”的内容,
【公式】-【名称管理器】(快捷键:ctrl+F3),在弹出框中选择【新建】
【新建名称】的【名称】会默认为是第一个单元格的内容,我们把这个名称改为“百度”,也就是他们的联动上一级的名称;
【范围】根据需要选择【工作簿】或者某个sheet页;
【引用位置】就是刚才我们选定的目标区域范围,默认为绝对引用。
确定。
同样的方法定义另一个二级联动的名称:
②数据有效性和indirect函数
给二级联动的内容定义好名称以后,选中G10单元格(即二级菜单被显示的单元格),【数据】-【数据验证】-【数据验证】,【设置】选项卡-【验证条件】-【允许】选择【序列】,
【来源】填写公式【=INDIRECT($F$10)】,默认为绝对引用,F10单元格显示的是当前单元格G10的上一级菜单。
确定。
这时,二级菜单完成。
步骤三:
设置三级联动菜单
①如上方法,将二级联动对应的项目内容区域,定义名称,分别为各自对应的二级联动菜单的名称:
方法相同,直到最后一个也设置完成:
②给三级联动的内容定义好名称以后,选中H10单元格(即三级菜单被显示的单元格),在【数据验证】-【来源】填写公式
【=INDIRECT( $G$10)】(默认为绝对引用),G10单元格显示的是当前单元格H10的上一级菜单,也就是二级菜单。
完成。
总结:
①四级联动、五级联动,方法同上;
②主要两个步骤:
第一步,定义区域,名称一定要设置为上级的名称,因为indirect函数返回的是参数所指定的单元格的值,也就是我们之前定义好的名称所对应的区域;
第二步,数据验证的来源,使用indirect函参数是当前联动菜单的上一级菜单单元格,因为上一级菜单单元格名称与定义好的名称一致,而indirect函数返回这一单元格定义名称下的区域,这样联动关系就成立了。