返回列表 上一主題 發帖

出勤表如何用函數判斷

還卡在一個問題  如果  提早08:00 的是判斷為早到
   但是提早12:00的 是早退  這樣的話 怎麼判斷?   
   提早13:30 的是判斷為早到
但提早17:00的也算是早退  這樣如何判斷?

請問各位大大 這樣還要再加一行?還是?

TOP

回復 9# p212


    大大      =IF($D2-LOOKUP(,0/(MIN(($G$2:$G$3-$D2)^2)=($G$2:$G$3-$D2)^2),$G$2:$G$3)>0,"遲到",IF($D2-LOOKUP(,0/(MIN(($G$2:$G$3-$D2)^2)=($G$2:$G$3-$D2)^2),$G$2:$G$3)<=0,"早到","準時",IF($D2-LOOKUP(,0/(MIN(($G$4:$G$5-$D2)^2)=($G$4:$G$5-$D2)^2),$G$4:$G$5)>0,"遲到",IF($D2-LOOKUP(,0/(MIN(($G$4:$G$5-$D2)^2)=($G$4:$G$5-$D2)^2),$G$4:$G$5)<=0,"早退","準時"))))


這個有辦法縮短?

TOP

本帖最後由 p212 於 2015-3-23 10:10 編輯

回復 12# keovin790916
拙見,請參考!

出勤表設定_2.zip (9.28 KB)

TOP

回復 13# p212

大大真厲害     如果我改成這樣   有辦法能縮短?

IF(($G2>LOOKUP(,0/(MIN((本社-$G2)^2)=(本社-$G2)^2),本社))*($M2="上班"),"遲到",IF((($G2<LOOKUP(,0/(MIN((本社-$G2)^2)=(本社-$G2)^2),本社)))*($M2="下班"),"早退",""))),IF(($G2>LOOKUP(,0/(MIN((本社-$G2)^2)=(本社-$G2)^2),本社))*($M2="下午上班"),"遲到",IF((($G2<LOOKUP(,0/(MIN((本社-$G2)^2)=(本社-$G2)^2),本社)))*($M2="下午下班"),"早退",""))

我想說要上班 下班 分成上午下午  , 會有狀況只有下午上班下班的出現, 還有如果遇到當天只出勤上午上班 之後下午下班的  有函數可以判斷?

TOP

本帖最後由 p212 於 2015-3-24 10:33 編輯

回復 14# keovin790916
13#問的資料欄位配置似乎與原問不同!
可否就13#的檔案資料(或另起範例檔),加註您欲增列的欄位、預期答案...等,以供一同練習、研究?
謝謝!

TOP

回復 15# p212


   
如這些是有比較複雜  條件設的比較多

  


練習.rar (10.69 KB)   請大大 看看

TOP

本帖最後由 p212 於 2015-3-25 08:55 編輯

回復 16# keovin790916
1、14#所提「當天只出勤上午上班 之後下午下班的」(連續值勤者),16#範例檔之K欄應是正確的。而H欄位若欲再標註,則建議公式為
=CHOOSE(MATCH(TEXT(LOOKUP(,0/(MIN((G群組-$F2)^2)=(G群組-$F2)^2),G群組),"hh:mm"),{"08:00";"12:00";"13:30";"17:00"},0),"值班","","值班","")
產生「值班」的結果
2、16#範例檔的資料皆為值勤紀錄,故計算「出席天數」建議公式為
=SUMPRODUCT(1/COUNTIF($D$2:$D$17,$D$2:$D$17))
3、16#範例檔的G6儲存格所述「會遇到有兩天打卡的」,為何?
4、若E2儲存格為手動輸入,則可藉輸入=TEXT(D2,"aaaa"),向下複製公式,產生「星期X」的結果;或輸入=TEXT(D2,"aaa")產生「週X」的結果。
以上拙見,請參考!

TOP

回復 17# p212

感謝大大指導

不過按造值班這樣 似乎沒辦法當天判斷。

遇到兩天打卡的意思 就是  打下午上班 下午下班  此類型  可否判斷特別顯示

TOP

如果改成 上午上班 跟下午上班 這樣後面就沒辦法再判斷 遲到 早退這類?  還是有其他函數可以打在後面

TOP

        靜思自在 : 我們最大的敵人不是別人.可能是自己。
返回列表 上一主題