excel|如何动态引用 Excel 动态区域,从而成就动态下拉菜单?( 二 )


  • $H2&..:将 $H2 单元格与上述列号连接起来 , 得到一组与 A 列相匹配的值;
  • VLOOKUP(...$A:$C30):在区域 $A:$C 中查找上述值 , 返回第 3 列的值
  • * 请注意:$H2 单元格的列标需要绝对引用 , 行号要相对引用;查询区域 $A:$C 要绝对引用 。
    接下来开始制作下拉菜单 。
    4. 选中 E2 单元格 --> 选择菜单栏的“数据”-->“数据验证”-->“数据验证”
    5. 在弹出的对话框中选择“设置”选项卡 --> 按以下方式设置 --> 点击“确定”:
    • 允许:选择“序列”
    • 来源:输入“=$H$2#”
    * 敲黑板 , 今天的重点知识点来了:

    • 前面已经说了 , sort 函数返回的结果是一个动态区域;
    • 引用这个动态区域的方式 , 只要在区域的第一个单元格后面加个“#”号 , 就能动态地引用这个区域了 。


    然后创建二级联动下拉菜单 。
    6. 按 Ctrl+F3 --> 在弹出的对话框中点击“新建”按钮
    7. 在弹出的对话框中按以下方式设置:
    • 名称:输入“销售一部”
    • 引用位置:选择 I2:K2 区域


    8. 再次点击“新建”按钮 --> 用同样的方式创建其他部门的名称 。
    9. 选中 F2 单元格 --> 选择菜单栏的“数据”-->“数据验证”-->“数据验证”
    10. 在弹出的对话框中按以下方式设置 --> 点击“确定”:

    • 允许:选择“序列”
    • 来源:输入“=INDIRECT($E$2)”
    有关 indirect 函数在二级联动下拉菜单中的应用 , 请参阅 Excel indirect 函数(2) – 制作多级联动菜单(文末彩蛋) 。
    现在选择“部门”下拉菜单中的选项 , “姓名”下拉菜单中的选项就会动态变成相应部门的人员列表 。
    既然今天的重点讲的是动态区域的引用 , 那么我们继续验证一下 , 如果部门列的源数据更新了 , 最终是否会导致下拉菜单自动更新 。
    11. 修改任意一个部门的名称 , 如下图所示 。
    我什么都没做 , H 列就自动增加了这个新的部门名 , 这就是动态数组结果的魅力所在 。
    因为“部门”下拉菜单引用的是动态区域 , 所以下拉选项中也自动新增了这个部门 。

    这简直太方便了 , 所有联动一气呵成 , 连刷新动作都不需要 。

    12. 向下拖动 I 列的公式 , 就能查询出新部门对应的人员 。

    13. 此时只要重复步骤 6、7 , 创建新的名称列表 , 就能在“名称”下拉菜单中增加新的联动列表 。