三级下拉列表
问题:制作三级下拉列表
数据源:
省市列表
市县区列表
查询表
数据下拉列表+函数解决。
【数据】》【下拉列表】》【从单元格选择下拉选项】》写入公式》【确定】
一级列表公式:
=OFFSET(省市列表!$A$1,,,,COUNTA(省市列表!$1:$1))
从省市列表的A1起,向下、向右不偏移,默认一行,列数为省级列表第一行有内容的单元格数。
二级列表公式:
=OFFSET(省市列表!$A$2,,MATCH(B4,省市列表!$1:$1,)-1,COUNTA(OFFSET(省市列表!$A:$A,,MATCH(B4,省市列表!$1:$1,)-1))-1)
用MATCH函数查找被选择的一级选项的结果在省市列表里第一行的位置,减1用以修正。
从省市列表的A2起始,向下不偏移,向右偏移MATCH的结果,即一级选项结果在省市列表中所在列第二行单元格的位置。如MATCH的结果是2,OFFSET配合前三个参数的结果就是C2。
选项数量用COUNTA嵌套OFFSET获得,从A列起,向下不偏移,向右偏移MATCH的结果,如MATCH的结果为2,OFFSET的结果为整个C列。经过COUNTA计数后得到包括标题在内所有计数,再减1去掉标题的个数,以此作为第一个OFFSET的第四参数。
三级列表公式:
=OFFSET(市县区列表!$A$2,,MATCH(C4,市县区列表!$1:$1,)-1,COUNTA(OFFSET(市县区列表!$A:$A,,MATCH(C4,市县区列表!$1:$1,)-1))-1)
这一公式除引用区域换成市县区列表,查找值换成二级选项结果所在单元格以外,其他与二级列表公式一样。