Excel咨询砖家|下拉菜单的“万能”公式,10级菜单,瞬间搞定【excel教程】( 二 )


如果我们要得到某个省所对应的市 , 必定要在R列确定具体区域 , 因此第一参数使用$R$1就不难理解了 , 但是不同的省 , 范围的起点是变化的 , 例如安徽省就要从第二行开始 , 福建省就要从第五行开始 , 这个问题就需要第二参数也就是行偏移量来起作用了 。
行偏移量是个数字 , 当起始位置固定不变的时候 , 行偏移量的变化能使最终的区域发生变化 。 而要确定行偏移量 , MATCH是最合适的 。
MATCH(G2,Q:Q,0)的作用就是找到G2(某省)在Q列的第几行首次出现 , 例如安徽省首次出现在第二行 , 但是请注意 , 第二行相对于第一行来说 , 行偏移量是1 。 因此OFFSET的第二参数应该是MATCH(G2,Q:Q,0)-1 。
第三参数列偏移量也是同样的道理 , 本例中不涉及 , 所以直接逗号省略 , 进入第四参数 。
可以说在MATCH的协助下 , OFFSET准确定位到了目标区域的起点 , 那么目标区域到底是几个单元格呢?每个省所对应的市不一样多 , 目标区域也就不一样大 。
对于一列数据来说 , 区域的大小就是高度(行数) , 在本例中要确定这个指标用COUNTIF就非常方便了 , COUNTIF(Q:Q,G2)的作用很显然 , 就是确定要引用的省在Q列的个数 。
同样本例的数据都是单列 , 不涉及宽度(列数)的问题 , 第五个参数也就用不到了 。
至此 , OFFSET已经准确得到了区域的起点和高度 , 接下来只需要将这个公式应用到数据验证(数据有效性)中即可 。
方法非常简单 , 在序列中将公式复制进去就好了 。
至此 , 一个智能的二级菜单设置完毕 , 再次说明 , 这里的智能指的是可以按照选项内容的多少自动进行调整 , 避免了空白选项的出现 。
三级菜单的设置方法完全一样 , 只是需要修改一下公式 , 由于公式的原理完全一样 , 只是修改位置 , 所以有个直接用鼠标修改的方法 , 大家可以参考 。
【Excel咨询砖家|下拉菜单的“万能”公式,10级菜单,瞬间搞定【excel教程】】可以说 , 只要掌握了OFFSET-MATCH-COUNTIF这个公式套路 , 你就可以随心所欲的制作多级智能菜单了 。


推荐阅读