Page 1 of 1

แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Wed May 31, 2017 10:18 pm
by aommyp
มีวิธีไหนคะ ที่จะสามารถแยกข้อมูลเฉพาะเวลาสแกนนิ้วมือ เข้าครั้งแรก และเวลาสแกนนิ้วมือ ออกครั้งสุดท้าย ใน 1 วันค่ะ
เนื่องจากTime Attendance ดึงข้อมูลมาจากเครื่องสแกนลายนิ้วมือของพนักงานซึ่งจะแสดงการรูดบัตรทุกครั้งที่สแกนเข้าออกประตูออฟฟิศค่ะ

ช่วยด้วยนะคะ แยกเวลาเองแล้วปวดตามาก และช้ามากด้วยค่ะ ขอบคุณล่วงหน้านะคะ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Wed May 31, 2017 10:35 pm
by snasui
:D ตัวอย่างสูตรที่เซลล์ F2 ครับ

=IF(B2=MIN(IF($A$2:$A$408=A2,IF($E$2:$E$408=E2,$B$2:$B$408))),"In",IF(B2=MAX(IF($A$2:$A$408=A2,IF($E$2:$E$408=E2,$B$2:$B$408))),"Out",""))

Ctrl+Shift+Enter > Copy ลงด้านล่าง กรุณาอ่าน Note ด้านล่างอย่างละเอียด ไม่เช่นนั้นจะไม่ได้คำตอบครับ

!
Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Thu Jun 01, 2017 11:15 am
by menem
ผมชอบใช้วิธีสร้าง Sheet ขึ้นมาเพิ่ม เพื่อสร้างเงื่อนไขสำหรับการดึงข้อมูล
ตามตัวอย่างในไฟล์ที่แนบมาครับ , แต่ที่สงสัยคือ ทำไม Format ของคอลัมน์ A
ตั้งแต่บรรทัดที่ 361 ถึงต่างกับส่วนก่อนหน้า ?

เพราะอันก่อนหน้า ข้อมูลเป็น Text และแสดงเป็น m/d/yyyy
แต่ตั้งแต่ A361 เป็นต้นไป ข้อมูลเป็น Date และแสดงเป็น dd mm yyyy

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Thu Jun 01, 2017 7:45 pm
by aommyp
คือความจริงแล้วข้อมูลดิบที่ดึงมาจากเครื่องสแกนนิ้วมือเป็นแบบนี้ค่ะ ข้อมูลมาเป็น Notepad นำมาวางที่ Excel เองค่ะ ข้อมูลจะอยู่ที่ช่อง Columns A คอลัมน์เดียวค่ะ ลำบากในการแบ่งข้อความออกเป็นช่องๆ มากเลยค่ะ

1/23/2016 10:42:51 AM FL2 - Security Room (C3:D4) ACCESS GRANTED - CARD sawas
1/23/2016 10:48:01 AM FL1 - HPC (C1:D6) ACCESS GRANTED - CARD sawas

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Fri Jun 02, 2017 6:11 am
by snasui
:D สามารถใช้เมนู Data > Text to columns ในการแบ่ง หากต้องการคำตอบโดยละเอียดให้แนบไฟล์ Excel ตัวอย่างที่ได้จากการนำข้อมูลมาวางครับ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Fri Jun 02, 2017 7:37 am
by menem
ขอตัวอย่างที่มาแบบช่อง A สำหรับวันที่ 5-15 ครับ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Fri Jun 02, 2017 11:22 am
by aommyp
แนบไฟล์ ตัวอย่างที่ได้มาค่ะ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Fri Jun 02, 2017 2:08 pm
by aommyp
แนบไฟล์ ตัวอย่างแล้วค่ะ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Sat Jun 03, 2017 8:00 am
by snasui
:D ตัวอย่างสูตรในชีต "Timeที่ได้จากเครื่องแสกนนิ้วมือ" ครับ
  1. แทรกบรรทัด 2 บรรทัด ข้อมูลจะเลื่อนไปอยู่บรรทัดที่ 3 หากต้องการนำข้อมูลต้นฉบับมาวางก็ให้เริ่มวางที่ A3 ลงไปด้านล่าง
  2. D1:F1 คีย์ข้อความ ':, 'ACCESS, '- CARD ตามลำดับ
  3. B2:H2 คีย์หัวบรรทัดให้กับข้อมูล ได้แก่ Date, Date Time_Excel, Date_System, Place, Type, Name, In/Out ตามลำดับ
  4. D3 คีย์สูตร
    =LEFT($A3,FIND(D$1,$A3)+9)
    Enter > Copy ลงด้านล่าง
  5. E3 คีย์สูตร
    =MID($A3,LEN($D3)+2,FIND(E$1,$A3)-LEN($D3)-2)
    Enter > Copy ลงด้านล่าง
  6. F3 คีย์สูตร
    =MID($A3,FIND(E$1,$A3),FIND(F$1,$A3)+6-FIND(E$1,$A3))
    Enter > Copy ลงด้านล่าง
  7. G3 คีย์สูตร
    =TRIM(MID($A3,FIND(F$1,$A3)+6,255))
    Enter> Copy ลงด้านล่าง
  8. C3 คีย์สูตร
    =TEXT(RIGHT(SUBSTITUTE(LEFT(D3,FIND(" ",D3)-1),"/",REPT(" ",5)),4)&LEFT(TEXT(LEFT(SUBSTITUTE(LEFT(D3,FIND(" ",D3)-1),"/",REPT(" ",5)),2),"00"),2)&LEFT(TEXT(MID(SUBSTITUTE(LEFT(D3,FIND(" ",D3)-1),"/",REPT(" ",5)),3,8),"00"),2),"0000\/00\/00")+MID(D3,FIND(" ",D3)+1,255)
    Enter > Copy ลงด้านล่าง
  9. B3 คีย์สูตร
    =INT(C3)
    Enter > Copy ลงด้านล่าง
  10. H3 คีย์สูตร
    =IF(C3=MIN(IF($B$3:$B$408=B3,IF($G$3:$G$408=G3,$C$3:$C$408))),"In",IF(C3=MAX(IF($B$3:$B$408=B3,IF($G$3:$G$408=G3,$C$3:$C$408))),"Out",""))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  11. กรองข้อมูลโดยใช้คอลัมน์ H เป็นหลักเพื่อนำไปใช้งานตามต้องการ
อย่าลืมปรับช่วงข้อมูลในสูตรด้านบนให้ตรงกับการใช้งานจริง

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Sat Jun 03, 2017 12:02 pm
by menem
ผมเห็นว่ามีการเริ่มงาน หลังเที่ยงคืนด้วย ถูกต้องไหมครับ ?
3/1/2017 0:04:xx

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Sat Jun 03, 2017 3:59 pm
by aommyp
ใช่ค่ะ พนักงานทำงานเป็นกะด้วยค่ะ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Sat Jun 03, 2017 4:24 pm
by aommyp
ขอบคุณมากค่ะ จะลองนำไปทำนะคะ

Re: แยกเฉพาะเวลารูดบัตรเข้า-ออก จากข้อมูลสแกนนิ้วมือ

Posted: Tue Jun 06, 2017 3:52 pm
by aommyp
ทำได้สำเร็จแล้วค่ะ ขอบคุณมากๆๆ นะคะ ช่วยได้เยอะมากๆๆๆ ค่ะ ^___^