你会用Excel做 考勤表 吗?(可动态查询)

之前兰色分享了考勤表的做法,今天要介绍动态查询考勤表的方法,效果如下:


选择不同的月份,就会生成不同月份的考勤表



是不觉得很“高级”,其实做法不并难。跟兰色一起做吧


第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技能。


长按下面二维码图片,点上面”识别图中二维码“然后再点关注,每天可以收到一篇兰色最新写的excel教程。


本篇文章来源于微信公众号: Excel精英培训

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注