相信大家都知道下拉清单应该怎么制作!
那么如果你有以下这个需求的话:
当我选择姓名时,第二级的下拉清单只能选择姓名系列,
当我选择负责区域的时候,第二级下拉清单只能选择地区系列.
逻辑关系:
右侧的"姓名"和"小陈"单元格是2个下拉清单,
这两个上下关系的下拉清单中,当上边的下拉清单选择姓名,那么下边的下拉清单则只能在左侧的列表中的姓名列进行选取(小红,小李,小陈等等)
同理,当选择负责区域时,下边的下拉清单是能够选择左侧数据源的负责区域所在的列表数据(西南部,西部,东南部等等)
制作步骤:
1)首先我们建立第一个"单纯"的下拉清单.
2)然后找一个空单元格,输入以下的公式:
这个公式:
=INDEX($B$4:$D$10,,MATCH($G$3,$B$3:$D$3,0))
含义:
范围:不包括表头的区域
由于我们第二个下拉清单是存在于一个范围,所以可以忽略第二个参数(行数)
第三个参数原本为列数,但是我们会切换第一个下拉清单,所以这个时候,我们可以使用MATCH函数来找到第一个下拉清单选定数据所在的列数,用这个列数来替代我们整个INDEX函数中的第三个参数
3)做完这一步之后,你就可以把这一段公式复制,然后选择第二个需要添加下拉清单的单元格进行数据验证的设置,将之前的公式复制黏贴进来源:
这个时候,你的两级下拉清单就制作好了.
另外一种情况:
当你选择一级下拉清单的时候,
下方的列表能够多重的显示,对应区域的所有数据.
其实你只需要在下拉清单下的第一个单元格,如上"小红"的位置输入公式:
=INDEX($A$4:$C$10,,MATCH($H$3,$A$3:$C$3,0))
含义:
范围:不包括表头的区域
第二个参数,其实是一组数据,例如,你选择输入好的单元格公式,"双击"且按一下F9键,你会发现:
小红排在第一位,当你往下拉这个函数的时候,你会发现单元格的显示会按照这组数据的排序来填充进每个单元格.
所以,基于这些第二个参数(行数)你是可以忽略的.
注:你也可以在这个地方填写ROW()函数来做,你如果彻底的理解了INDEX+MATCH函数,你会发现没有必要增加这一步.
第三个参数原本为列数,但是我们会切换下拉清单,所以这个时候,我们可以使用MATCH函数来找到下拉清单选定数据所在的列数,用这个列数来替代我们整个INDEX函数中的第三个参数
总之相信某一天你会用到这样的方式.