今天要介紹動態查詢考勤表的方法,效果如下:
選擇不同的月份,就會生成不同月份的考勤表
是不是覺得很“高階”,其實做法不併難。跟高頓君一起做吧。
第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技能。
今天要介紹動態查詢考勤表的方法,效果如下:
選擇不同的月份,就會生成不同月份的考勤表
是不是覺得很“高階”,其實做法不併難。跟高頓君一起做吧。
第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技能。