有考勤系統的請自動略過,網上做考勤表的教程有很多,這裡将考勤表做了一些修改,可實現以下效果:
1、标題《******公司3月考勤表》根據單元格的變動自動更新月份;
2、考勤日期自動更新,考勤明細根據考勤記錄變化,不需要在考勤明細表内用符号标記;
3、自動計算出勤天數和請假天數;
4、自動跳過周末,設置假期和加班後,假期自動變空,加班自動算出勤。
操作步驟如下:
第一步,設置标題,在A1單元格中輸入=V2,使标題顯示為月份的數字,設置A1單元格格式為"******公司"#"月考勤表"(引号需用英文),顯示結果為《******公司3月考勤表》,後面隻需要修改V2單元格數字,标題月份即可自動更新。
第二步,在考勤明細表的A、B列輸入相應的内容(姓名、上午下午),在C3單元格内輸入=DATE(S2,V2,X2),即3月份第一天日期2018年3月1日,設置格式為DD,即隻顯示日,C4單元格輸入=C3,并将格式設置為aaa,即隻顯示星期,效果如圖所示,向右拖動填充。
第三步,新建SHEET2,根據放假時間制作假期和加班時間表,如圖所示:
4月5-7日是清明節假期,上班否列标記為空,4月8日是周日,要上班,标記為√,其他放假和加班時間按照此标準進行标記,如公司内部要求放假或加班,在這裡一并進行标記。為方便運用公式,為A、B、C列定義名稱,分别為“日期”,“時間”,“上班否”。(定義名稱操作:選中A列-公式-定義名稱-輸入名稱即可)
第三步,制作個人出勤情況登記表,如圖所示進行記載,
如覺得用符号輸入比較麻煩,可以設置一個數據源,使用VLOOKUP函數進行查找,在H列輸入狀态,在I列自動生成相應的符号,如可在I2單元格内輸入=VLOOKUP(H2,$L$1:$M$12,2,0),即可自動輸入相應的符号。
再次定義E到I列的名稱為“姓名”,“日期2”,“時間2”,“加班請假”。
第四步,返回考勤明細表,在張三3月1日上午對應的單元格即C5單元格内輸入=IFERROR(LOOKUP(1,0/((姓名=$A5)*(日期2=C$3)*(時間2=$B5)),加班請假),IFERROR(LOOKUP(1,0/((日期=C$3)*(時間=$B5)),上班否)&"",IF(WEEKDAY(C$3,2)>5,"","√")))(注意混合引用),在C6單元格中複制C5的公式,選中C5,C6向右拖動填充,選中C5:AG6單元格向下拖動填充(一定要兩行一起拖動)。
公式有點長,但很好理解,用了三個IF系列函數進行判斷,首先LOOKUP(1,0/((姓名=$A5)*(日期2=C$3)*(時間2=$B5)),加班請假)是判斷該員工是否有個人加班或者請假,如有則按照加班或請假做記錄;
如果沒有就使用LOOKUP(1,0/((日期=C$3)*(時間=$B5)),上班否)判斷該日期時間是否為法定或公司内部規定的放假或加班時間,如有則按照放假或加班做記錄;
如果沒有就使用IF(WEEKDAY(C$3,2)>5,"","√")進行判斷,如果為周六、周日的話,就記為空,否則為出勤。
第五步,計算出勤或請假天數。
使用數組函數,在AH5單元格内輸入=SUM(COUNTIF(C5:AG6,{"√","★","&"}))/2,同時CTRL SHIFT ENTER,這裡"√","★","&"分别代表出勤、加班、公差,都算作出勤(如有其它情況,也可加入{}中一并計算),合并AH5和AH6,向下拖動(合并單元格不能使用數組公式,所以要輸入公式後再合并。)
在AI5單元格内輸入=DAY($AA$2)-AH5-COUNTBLANK(C5:AG6)/2,計算請假天數,意思為當月總天數-出勤天數-空單元格占據的天數,合并AI5、AI6單元格,向下拖動。
要點:
1、使用自定義格式,顯示所需要的格式;
2、使用LOOKUP函數多條件查詢功能;
3、使用IFERROR、IF函數實現多重判斷;
4、使用COUNTIF、COUNTBLANK函數計算個數。
未解決的問題:
每個月的日期不一樣,需要增減日期。建議複制該考勤明細表,在該表的基礎上删去多餘的日期,用4個表記錄考勤(28天,29天,30天,31天)。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!