制作动态查询考勤表的方法,动态考勤表是什么样子的?我们先来看看~,选择不同的月份,就会生成不同月份的考勤表!具体显示效果如下:
是不觉得很牛逼,其实做法不并难。第1步:在B3单元格中设置下拉菜单,显示月份。(和工作表名称一致),数据验证(有效性) - 允许 - 序列,在文本框中输入1月,2月,3月,4月,5月,6月,7月,8月 (英文逗号分隔)
第2步 在单元格D4中设置公式并复制到其他单元格中
考勤表的查询最关键就是这个查询公式:=INDIRECT($B$3&"!"&ADDRESS(ROW(D3),COLUMN(D3)))
公式说明:ROW(D3),COLUMN(D3) : Row取得单元格所在行数,Column函数到得单元格所在列数。使用这两个函数的目的是在公式复制时可以返回动态的行号和列数。ADDRESS:可以根据行号和列数返回单元格地址,如Address(3,3) 返回第3行第3列的地址$C$3,($B$3&"!"& :用单元格B3(工作表名称)连接后面的地址,正好可以根据选取不同的工作表名称,生成对应的工作表地址。如B3的值为1月,那么会返回 1月!$D$3!
INDIRECT :用&连接成的引用地址只是字符串,无法取得单元格的值,这时用indirect函数可以从字符串地址中取得值。
其实完成动态查询就是 下拉菜单 + Indirect公式,而难点在后者。这个查询功能适合于所有类型表格,所以同学们一定要掌握这个Excel技能。