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