一大早學習群内的人都說要考勤表,好,既然你要,我總結一些我用過的考勤表。考勤表比較特殊,每個公司都略有差異,僅供參考。
1、手工記錄考勤明細
借助手工輸入簡稱,比如Z就表示正常上班。
員工考勤表
統計表
考勤明細
現在要将考勤數據導入到另外一個表格模闆。
轉換表
接下來就是見證奇迹的時刻!
隻需點一下導入考勤,瞬間就将數據實現轉換。如果你眼神比較好,就知道這是我們公司的考勤表。
附源代碼:
Sub Kaoqin()
Dim MxSht, MxsR As Long, MxNRng As Range, NameArr
Dim MaxR As Long, MaxC As Byte, KaoQ() As String
Dim NBoot As Boolean, StaR As Long, TemRng, Cou As Long
Dim iR As Long, iC As Byte, MxR As Long, MxC As Byte
Sheet1.Range("D5:AI104").UnMerge
With Sheet2
Rem
MxsR = .Cells(1, 1).End(xlDown).Row
' MxSht = .Cells(1, 1).Resize(MxsR, 6).Value
Set MxNRng = .Cells(1, 2).Resize(MxsR)
MaxR = Me.Cells(5, 3).End(xlDown).Row - 4
MaxC = Me.Cells(4, Columns.Count).End(xlToLeft).Column - 4
ReDim KaoQ(1 To MaxR, 1 To MaxC)
NameArr = Me.Cells(5, 2).Resize(MaxR).Value
For iR = 1 To MaxR Step 2
Rem 姓名存在否
NBoot = WorksheetFunction.CountIf(MxNRng, NameArr(iR, 1))
Rem 存在時處理考勤數據
If NBoot Then
StaR = WorksheetFunction.Match(NameArr(iR, 1), MxNRng, 0)
Cou = WorksheetFunction.CountIf(MxNRng, NameArr(iR, 1))
TemRng = .Cells(StaR, 2).Resize(Cou, 5).Value
Rem 日期核對數據寫入,上班下班的數據
For MxR = 1 To Cou
KaoQ(iR, Day(TemRng(MxR, 3))) = TemRng(MxR, 4) '對應日期上班時間數據
KaoQ(iR 1, Day(TemRng(MxR, 3))) = TemRng(MxR, 5) '對應日期下班時間數據
Next MxR
End If
Next iR
End With
Me.Cells(5.1).Resize(MaxR) = NameArr
Me.Cells(5, 4).Resize(MaxR, MaxC) = KaoQ
End Sub
3、系統導出考勤表并實現統計工資
這也是我以前公司使用過的考勤表。
系統考勤明細
先通過分列,将内容顯示在3列。
因為我們打卡的時候,有的時候會打不止一次,比如50秒打完卡,51秒又不小心按了一次,這就出現了2條記錄。對于這種需要重新處理,判斷是否為首次出現。
在E2輸入公式,并向下填充。首次出現的顯示1,否則顯示空白。
=IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)=1,1,"")
這邊采用的是日薪的方法統計工資的,日薪采用随機數,你懂的!
在工資表B3輸入公式,并向下填充。上班天數是根據考勤表彙總得到,因為時間段是以半天算,所以最後面乘以0.5。
=SUMIF(考勤記錄!A:A,A3,考勤記錄!E:E)*0.5
日薪:
=VLOOKUP(A3,日薪對應表!A:B,2,0)
基本工資:
=ROUND(B3*C3,0)
我接觸過的考勤系統都算比較标準的,遇到下面這種考勤系統,我就跪了!
一天打N次卡,而且還放在一個單元格,這種系統要你何用?
各種财務和會計模闆,有需要的後台回複關鍵詞“621”領取。
End.
來源:Excel不加班
國統計網,是國内最早的大數據學習網站,歡迎關注!,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!