小夥伴們好啊,今天咱們來分享乙個資料整理的例項。
昨天,群裡有位小夥伴發了這樣乙份考勤資料:
最終希望得到的資料是這樣的:
首先來看看k列姓名的規律:每個姓名之間都間隔一行:
= offset('10月考勤'!k$5,(row(a1)-1)*2,)&""
(row(a1)-1)*2部分,計算結果為0,公式下拉時,會得到從0開始、按2遞增的序號0、2、4、6、8……。
offset函式以「10月考勤」工作表k5單元格為基準,以row函式的計算結果作為向下偏移的行數,也就是公式每下拉一行,就從「10月考勤」工作表k5單元格向下偏移兩行。
當offset函式引用空單元格的時候,會顯示成無意義的0,所以在公式最後加了乙個小尾巴&"",目的就是將這個無意義的0變成空文字,從而顯示成空白了。
接下來就要提取每天的工作時長了, 咱們再來觀察一下打卡時間的規律。
接下來咱們先看看如何定位到這個打卡時間所在的單元格:
= index('10月考勤'!a:a,
match($b2,'10月考勤'!$k:$k,)
+1)match函式的作用是根據指定的查詢值,返回該查詢值在查詢區域中首次出現的位置。
index函式的作用是根據指定的位置資訊,從乙個區域中返回對應位置的內容。
公式中的match($b2,'10月考勤'!$k:$k,)部分,利用b列已經提取出的姓名,借助match函式計算出該姓名首次出現的位置。最後加上1,就是這個人的打卡記錄所在的行了。
再使用index函式,從「10月考勤」工作表的a列提取出該員工1號的打卡記錄。
left函式的作用是從資料的左側開始,提取指定位數的字元。
right函式的作用,是從資料右側開始提取指定位數的字元。
right(
index('10月考勤'!a:a,
match($b2,'10月考勤'!$k:$k,)
+1),5)
left(
index('10月考勤'!a:a,
match($b2,'10月考勤'!$k:$k,)
+1),5)
二者相減,就是每天的工作時長。
如果某一天的打卡記錄是空白,
right
和left函式會返回空文字,空文字再相減的話,就返回錯誤值了,所以要加上乙個iferror函式,來遮蔽錯誤值。
最後咱們把以上兩段公式組合一下,在c2單元格輸入以下公式,向右向下複製即可:
=iferror
(right(index('10月考勤'!a:a,match($b2,'10月考勤'!$k:$k,)+1),5)-left(index('10月考勤'!a:a,match($b2,'10月考勤'!$k:$k,)+1),5)
OA系統如何使用考勤機資料
通達oa 系統使用考勤機資料目前有兩種方法可以實現 一種是通過進行二次開發,將 通達oa 系統與考勤機結合起來使用 另一種是通過將考勤機的資料匯出再匯入oa系統中。進行二次開發的話,需要和定製開發工程師聯絡.下面簡單介紹一下第二種方法的操作步驟。二 將考勤機中的資料匯出,然後將資料錄入到考勤模板中,...
dpkg ihr狀態 考勤機資料無法同步
考勤機資料無法同步 最後更新於 2020 06 29 15 27 45 如果安裝後仍出現資料無法同步的問題,則建議按下面步驟排查 首先在時間管理 時間設定 考勤機中檢視考勤機連線狀態。考勤機連線狀態分為兩種 離線part1 離線 1.確認考勤機型號是否為中控u160 iface702系列,需要帶bs...
mysql匯出資料怎麼看 mysql匯出資料
方法一 select.into outfile mysql select from mytbl into outfile tmp mytbl.txt query ok,3 rows affected 0.00 sec 檢視mytbl.txt中內容如下 mysql system cat tmp myt...