Page 1 of 1

ขอสูตรการเช็คนับลงเวลาทำงานพนักงานหลายๆเงื่อนไข

Posted: Thu Feb 23, 2012 11:18 pm
by sopasiri
ความต้องการเปลี่ยนไปขอรบกวนอีกครั้ง

คำนวนนาทีที่มาสาย หากไม่สายหรือกลับก่อนเวลาให้แสดงผลลัพธ์เป็นข้อความเพื่อสะดวกในการเช็ค

รายละเอียดต่างๆอธิบายในไฟล์งานแล้ว ขอบคุณค่ะ

Re: ขอสูตรการเช็คนับลงเวลาทำงานพนักงานหลายๆเงื่อนไข

Posted: Thu Feb 23, 2012 11:45 pm
by snasui
ลองตามนี้ครับ
  1. ที่ชีท EMP-OUT เซลล์ E5 คีย์สูตร
    =IF(ISNA(MATCH(1,IF($B5=CLOCKOUT!$D$1:$D$69,IF(E$4=DAY(CLOCKOUT!$A$1:$A$69),1)),0)),"RO",IF(INDEX(CLOCKOUT!$B$1:$B$69,MATCH(1,IF($B5=CLOCKOUT!$D$1:$D$69,IF(E$4=DAY(CLOCKOUT!$A$1:$A$69),1)),0))>=17/24,"Out",TEXT(17/24-INDEX(CLOCKOUT!$B$1:$B$69,MATCH(1,IF($B5=CLOCKOUT!$D$1:$D$69,IF(E$4=DAY(CLOCKOUT!$A$1:$A$69),1)),0)),"[mm]")+0))
    กดแป้น Ctrl+Shift+Enter แทนการกดแป้น Enter เพียงอย่างเดียว เนื่องจากเป็นสูตร Array > Copy ไปทางขวาและลงด้านล่าง
  2. ที่เซลล์ AJ5 คีย์
    =COUNTIF(E5:AI5,"RO")
    Enter > Copy ลงด้านล่าง

Re: ขอสูตรการเช็คนับลงเวลาทำงานพนักงานหลายๆเงื่อนไข

Posted: Fri Feb 24, 2012 12:06 am
by sopasiri
ขอบคุณมากๆเลยค่ะ

รักษาสุขภาพด้วยนะค่ะ

นอนดึกมากเลย

Re: ขอสูตรการเช็คนับลงเวลาทำงานพนักงานหลายๆเงื่อนไข

Posted: Fri Feb 24, 2012 4:37 am
by sopasiri
สูตรลงเวลาเข้า =IF(ISNA(MATCH(1,IF($B5=CLOCKIN!$D$1:$D$1562,IF(G$4=DAY(CLOCKIN!$A$1:$A$1562),1)),0)),"Ri",IF(INDEX(CLOCKIN!$B$1:$B$1562,MATCH(1,IF($B5=CLOCKIN!$D$1:$D$1562,IF(G$4=DAY(CLOCKIN!$A$1:$A$1562),1)),0))<=8.01/24,"In",TEXT(8/24-INDEX(CLOCKIN!$B$1:$B$1562,MATCH(1,IF($B5=CLOCKIN!$D$1:$D$1562,IF(G$4=DAY(CLOCKIN!$A$1:$A$1562),1)),0)),"[mm]")+0))

สูตรลงเวลาออก=IF(ISNA(MATCH(1,IF($A19=CLOCKOUT!$D$1:$D$1332,IF(T$4=DAY(CLOCKOUT!$A$1:$A$1332),1)),0)),"RO",IF(INDEX(CLOCKOUT!$B$1:$B$1332,MATCH(1,IF($A19=CLOCKOUT!$D$1:$D$1332,IF(T$4=DAY(CLOCKOUT!$A$1:$A$1332),1)),0))>=17/24,"Out",TEXT(17/24-INDEX(CLOCKOUT!$B$1:$B$1332,MATCH(1,IF($A19=CLOCKOUT!$D$1:$D$1332,IF(T$4=DAY(CLOCKOUT!$A$1:$A$1332),1)),0)),"[mm]")+0))

สูตรคำนวนสาย =LOOKUP(9.99999999999999E+307,CHOOSE({1,2},0,TEXT(INDEX(TIME!$B$2:$B$1551,SMALL(IF(TIME!$E$2:$E$1551="Clock In",IF(TIME!$C$2:$C$1551=$B5,IF(TIME!$B$2:$B$1551>"8:01"+0,IF(TIME!$B$2:$B$1551<"8:31"+0,ROW(TIME!$A$2:$A$1551)-ROW(TIME!$A$2)+1)))),COUNT($AJ$4:AJ$4)))-"8:00","[mm]")+0))

ทั้งสามสูตร กดแป้น Ctrl+Shift+Enter แทนการกดแป้น Enter เพียงอย่างเดียว เนื่องจากเป็นสูตร Array > Copy ไปทางขวาและลงด้านล่าง



นั่งแกะสูตรเกือบสว่าง เพราะจำเป็นต้องใช้ด่วน สรุปคือใช้ได้แล้วค่ะ ต้องส่งตรวจก่อนว่าถูกต้องมั้ย

เบื้องต้นถูกต้องแล้ว
ขอบคุณ อาจารย์มากค่ะ

Re: ขอสูตรการเช็คนับลงเวลาทำงานพนักงานหลายๆเงื่อนไข

Posted: Fri Feb 24, 2012 9:53 am
by snasui
sopasiri wrote:สูตรลงเวลาเข้า =IF(ISNA(MATCH(1,IF($B5=CLOCKIN!$D$1:$D$1562,IF(G$4=DAY(CLOCKIN!$A$1:$A$1562),1)),0)),"Ri",IF(INDEX(CLOCKIN!$B$1:$B$1562,MATCH(1,IF($B5=CLOCKIN!$D$1:$D$1562,IF(G$4=DAY(CLOCKIN!$A$1:$A$1562),1)),0))<=8.01/24,"In",TEXT(8/24-INDEX(CLOCKIN!$B$1:$B$1562,MATCH(1,IF($B5=CLOCKIN!$D$1:$D$1562,IF(G$4=DAY(CLOCKIN!$A$1:$A$1562),1)),0)),"[mm]")+0))
จาก 8.01/24 ด้านบน เนื่องจาก 8.01 ไม่เท่ากับ 8:01 กรณีเป็นเศษนาทีควรใช้เป็น "8:01"+0 แทน 8.01/24 ครับ