:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#1

Post by andyliu »

สวัสดีครับ ไม่ได้เข้ามาตั้งนาน แต่ก็ยังคิดถึงกูรูทุกท่านนะครับ
วันนี้มีเรื่องรบกวนเช่นเคยครับ
เรื่องการลงเวลาแบบนับ 8 ชั่วโมงครับ
ไม่ทราบว่าต้องเพิ่มสูตรอย่างไรครับ ผมมีแบบฟอร์มตามที่แนบมานี้นะครับ
อยากให้มันสรุปเวลาให้ครับ คิดจนปวดหัวแล้ว (สูตรในตารางที่แนบมา ต้องบอกก่อนเลยนะครับว่า พนักงานคนเก่าเขาทำไว้ครับ)

ขอขอบพระคุณล่วงหน้าเลยก็แล้วกันนะครับ วานกูรูช่วยทีครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#2

Post by bank9597 »

andyliu wrote:สวัสดีครับ ไม่ได้เข้ามาตั้งนาน แต่ก็ยังคิดถึงกูรูทุกท่านนะครับ
วันนี้มีเรื่องรบกวนเช่นเคยครับ
เรื่องการลงเวลาแบบนับ 8 ชั่วโมงครับ
ไม่ทราบว่าต้องเพิ่มสูตรอย่างไรครับ ผมมีแบบฟอร์มตามที่แนบมานี้นะครับ
อยากให้มันสรุปเวลาให้ครับ คิดจนปวดหัวแล้ว (สูตรในตารางที่แนบมา ต้องบอกก่อนเลยนะครับว่า พนักงานคนเก่าเขาทำไว้ครับ)

ขอขอบพระคุณล่วงหน้าเลยก็แล้วกันนะครับ วานกูรูช่วยทีครับ
:D ลองตามนี้ครับ

ที่ E43 คีย์ =IF(LEN(C43)=1,TIME(C43,0,0),SUBSTITUTE(C43,".",":")*1) คัดลอกลงมา
ที่ F43 คีย์ =IF(LEN(D43)=1,TIME(D43,0,0),SUBSTITUTE(D43,".",":")*1) คัดลอกลงมา

ที่ G43 คีย์ =IF(ISERROR("08:00"-(F43-E43)),IF(COUNT($C43:$D43)=1,"ไม่ปรากฏการสแกนออก","ไม่ปรากฏการสแกนเข้า-ไม่ปรากฏการสแกนออก"),"08:00"-(F43-E43)) คัดลอกลงมา

ที่ H43 คีย์ =IF(ISTEXT(G43),G43,IF(AND(C43>9,C43<=10,G43>0),"มาปฏิบัติราชการหลัง9.00น. ออกก่อน"&TEXT("8:00"-(F43-E43),"hh:mm")&" "&"นาที",IF(C43>9,IF(C43<=10,"มาปฏิบัติราชการหลัง9.00น.",IF(C43>10,"ไม่อยู่ปฏิบัติราชการครึ่งวัน"&" "&"ออกก่อน"&" "&TEXT("8:00"-(F43-E43),"hh:mm")&" "&"นาที")),"ออกก่อน"&" "&TEXT("8:00"-(F43-E43),"hh:mm")&" "&"นาที"))) คัดลอกลงมา

ที่ I43 คีย์ =IF(ISERROR(H43),"",IF(D43>12,IF(D43<=13,"ไม่อยู่ปฏิบัติราชการครึ่งวัน",H43))) คัดลอกลงมา
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#3

Post by andyliu »

ขอบคุณมากๆ ครับ แต่ผมลองดัดแปลงทำลองดูแล้ว ยังพบข้อผิดพลาดเกิดขึ้นครับ คือ ถ้าไม่มีข้อมูลการลงเวลาเข้า แต่ปรากฏเวลาออก สูตรมันยังสรุปเป็น ไม่ปรากฏการสแกนเข้า-ออก ครับ ต้องทำอย่างไรครับ หรือต้องเขียนสูตรอะไรเข้าไปใหม่ครับ รบกวนอีกครั้งนะครับ ความฝันผมใกล้จะเป็นจริงแล้ว

-- ผมแนบไฟล์เดิมนะครับ แต่เปลี่ยนสีฟอนต์ตรงแถวที่เกิดปัญหาขึ้นครับ (เป็นสีน้ำเงิน) ท่านจะได้สังเกตได้ง่ายครับ รบกวนอีกครั้งครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#4

Post by bank9597 »

andyliu wrote:ขอบคุณมากๆ ครับ แต่ผมลองดัดแปลงทำลองดูแล้ว ยังพบข้อผิดพลาดเกิดขึ้นครับ คือ ถ้าไม่มีข้อมูลการลงเวลาเข้า แต่ปรากฏเวลาออก สูตรมันยังสรุปเป็น ไม่ปรากฏการสแกนเข้า-ออก ครับ ต้องทำอย่างไรครับ หรือต้องเขียนสูตรอะไรเข้าไปใหม่ครับ รบกวนอีกครั้งนะครับ ความฝันผมใกล้จะเป็นจริงแล้ว

-- ผมแนบไฟล์เดิมนะครับ แต่เปลี่ยนสีฟอนต์ตรงแถวที่เกิดปัญหาขึ้นครับ (เป็นสีน้ำเงิน) ท่านจะได้สังเกตได้ง่ายครับ รบกวนอีกครั้งครับ
:D ลองตามนี้ครับ

ที่ G3 คีย์ =IF(ISERROR("08:00"-(F3-E3)),IF(AND(COUNT($C3:$D3)=1,MATCH(1,IF(ISTEXT($C3:$D3),1),0)=1),"ไม่ปรากฏการสแกนเข้า",IF(AND(COUNT($C3:$D3)=0,MATCH(1,IF(ISTEXT($C3:$D3),1),0)=1),"ไม่ปรากฏการสแกนเข้า-ออก","ไม่ปรากฏการสแกนออก")),"08:00"-(F3-E3)) กด Ctrl+Shift+Enter คัดลอกลองมา
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#5

Post by andyliu »

ขอบคุณครับ แต่ก็ยังมีจุดที่ยังเป็นปัญหาอยู่นะครับ ตรงวงกลมสีแดงที่วงไว้ครับ จะแก้อย่างไรครับ รบกวนอีกครั้งนะครับ เพื่อจะได้สมบูรณ์ขึ้นครับ :cp:

ไฟล์แนบนะครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#6

Post by bank9597 »

andyliu wrote:ขอบคุณครับ แต่ก็ยังมีจุดที่ยังเป็นปัญหาอยู่นะครับ ตรงวงกลมสีแดงที่วงไว้ครับ จะแก้อย่างไรครับ รบกวนอีกครั้งนะครับ เพื่อจะได้สมบูรณ์ขึ้นครับ :cp:

ไฟล์แนบนะครับ
:D ลองตามนี้ครับ

ที่ E3 คีย์

Code: Select all

=TIME(LEFT(IF(LEN(SUBSTITUTE(C3,".",""))=1,0&SUBSTITUTE(C3,".","")&0&0,IF(LEN(SUBSTITUTE(C3,".",""))>3,SUBSTITUTE(C3,".",""),IF(LEN(SUBSTITUTE(C3,".",""))=3,0&SUBSTITUTE(C3,".",""),0&SUBSTITUTE(C3,".","")&0))),2)*1,RIGHT(IF(LEN(SUBSTITUTE(C3,".",""))=1,0&SUBSTITUTE(C3,".","")&0&0,IF(LEN(SUBSTITUTE(C3,".",""))>3,SUBSTITUTE(C3,".",""),IF(LEN(SUBSTITUTE(C3,".",""))=3,0&SUBSTITUTE(C3,".",""),0&SUBSTITUTE(C3,".","")&0))),2)*1,0)
คัดลอกลงมา

ที่ F3 คีย์

Code: Select all

=TIME(LEFT(IF(LEN(SUBSTITUTE(D3,".",""))=3,SUBSTITUTE(D3,".","")&0,IF(LEN(SUBSTITUTE(D3,".",""))=2,SUBSTITUTE(D3,".","")&0&0,IF(LEN(SUBSTITUTE(D3,".",""))=1,0&SUBSTITUTE(D3,".","")&0&0,SUBSTITUTE(D3,".","")))),2)*1,RIGHT(IF(LEN(SUBSTITUTE(D3,".",""))=3,SUBSTITUTE(D3,".","")&0,IF(LEN(SUBSTITUTE(D3,".",""))=2,SUBSTITUTE(D3,".","")&0&0,IF(LEN(SUBSTITUTE(D3,".",""))=1,0&SUBSTITUTE(D3,".","")&0&0,SUBSTITUTE(D3,".","")))),2)*1,0)
คัดลอกลงมา

ที่ G3 คีย์

Code: Select all

=IF(ISERROR("08:00"-(F3-E3)),IF(AND(COUNT($C3:$D3)=1,MATCH(1,IF(ISTEXT($C3:$D3),1),0)=1),"ไม่ปรากฏการสแกนเข้า",IF(AND(COUNT($C3:$D3)=0,MATCH(1,IF(ISTEXT($C3:$D3),1),0)=1),"ไม่ปรากฏการสแกนเข้า-ออก","ไม่ปรากฏการสแกนออก")),IF("08:00"-(F3-E3)=0,"","08:00"-(F3-E3)))
กด Ctrl+Shift+Enter คัดลอกลงมา
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#7

Post by andyliu »

:thup: :thup: :thup: :thup: :thup: ขอบคุณมากๆ เลยครับ อย่าเพิ่งหงุดหงิดนะครับ เพราะผมเจอปัญหาจากสูตรอีกแล้วครับ (ตัวหนังสือสีแดง)
คือ เมื่อเรากำหนดเงื่อนไขว่าให้เริ่มนับเวลาเข้าตอน 8.00 น. เวลาออกเวลาแรกก็ควรจะเป็น 16.00 น. แต่ในสูตรยังผิดอยู่ครับ รบกวนอีกครั้งนะครับ ผมเองไม่มีความรู้เรื่องสูตรพวกนี้มาก จะรู้เฉพาะสูตรง่ายๆ จำพวก sum ประมาณนี้ครับ ที่รีบเพราะต้องการเอามาใช้คำนวณเวลาทำงานของพนักงาน เพราะหัวหน้าจะทดลองใช้ระบบนับ 8 ชั่วโมงครับ

ไฟล์แนบนะครับ
You do not have the required permissions to view the files attached to this post.
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#8

Post by andyliu »

:rz: :rz: :rz: :rz: ความฝันใกล้จะเป็นจริงแล้ว :rz: :rz: :rz: :rz: ได้กูรูมาช่วย :lol: :lol: :lol:
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#9

Post by bank9597 »

andyliu wrote::thup: :thup: :thup: :thup: :thup: ขอบคุณมากๆ เลยครับ อย่าเพิ่งหงุดหงิดนะครับ เพราะผมเจอปัญหาจากสูตรอีกแล้วครับ (ตัวหนังสือสีแดง)
คือ เมื่อเรากำหนดเงื่อนไขว่าให้เริ่มนับเวลาเข้าตอน 8.00 น. เวลาออกเวลาแรกก็ควรจะเป็น 16.00 น. แต่ในสูตรยังผิดอยู่ครับ รบกวนอีกครั้งนะครับ ผมเองไม่มีความรู้เรื่องสูตรพวกนี้มาก จะรู้เฉพาะสูตรง่ายๆ จำพวก sum ประมาณนี้ครับ ที่รีบเพราะต้องการเอามาใช้คำนวณเวลาทำงานของพนักงาน เพราะหัวหน้าจะทดลองใช้ระบบนับ 8 ชั่วโมงครับ

ไฟล์แนบนะครับ
:D ลองตามนี้ครับ
ที่ E3 คีย์

Code: Select all

=IF(TIME(LEFT(IF(LEN(SUBSTITUTE(C3,".",""))=1,0&SUBSTITUTE(C3,".","")&0&0,IF(LEN(SUBSTITUTE(C3,".",""))>3,SUBSTITUTE(C3,".",""),IF(LEN(SUBSTITUTE(C3,".",""))=3,0&SUBSTITUTE(C3,".",""),0&SUBSTITUTE(C3,".","")&0))),2)*1,RIGHT(IF(LEN(SUBSTITUTE(C3,".",""))=1,0&SUBSTITUTE(C3,".","")&0&0,IF(LEN(SUBSTITUTE(C3,".",""))>3,SUBSTITUTE(C3,".",""),IF(LEN(SUBSTITUTE(C3,".",""))=3,0&SUBSTITUTE(C3,".",""),0&SUBSTITUTE(C3,".","")&0))),2)*1,0)<"08:00:00"*1,"08:00:00"*1,TIME(LEFT(IF(LEN(SUBSTITUTE(C3,".",""))=1,0&SUBSTITUTE(C3,".","")&0&0,IF(LEN(SUBSTITUTE(C3,".",""))>3,SUBSTITUTE(C3,".",""),IF(LEN(SUBSTITUTE(C3,".",""))=3,0&SUBSTITUTE(C3,".",""),0&SUBSTITUTE(C3,".","")&0))),2)*1,RIGHT(IF(LEN(SUBSTITUTE(C3,".",""))=1,0&SUBSTITUTE(C3,".","")&0&0,IF(LEN(SUBSTITUTE(C3,".",""))>3,SUBSTITUTE(C3,".",""),IF(LEN(SUBSTITUTE(C3,".",""))=3,0&SUBSTITUTE(C3,".",""),0&SUBSTITUTE(C3,".","")&0))),2)*1,0))
คัดลอกลงมา

หมายเหตุ หากใช้สูตรไม่ได้ แสดงว่าซ้อน if มากกว่า 7 ชั้น รบกวนแจ้งกลับมาอีกที จะลองดูวิธอื่นให้ครับ

อย่าเพิ่งหงุดหงิดนะครับ
ฟอรั่มนี้ ไม่จำกัดการถามครับ ถามได้เท่าที่ต้องการ ผู้ตอบทุกคนยินดีตอบจนกว่าจะหมดปัญหาครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#10

Post by andyliu »

ขอบคุณมากๆ เลยนะครับ แต่อย่างว่าครับ เงื่อนไขเวลามันเยอะ ฟังก์ชั่น IF ก็ต้องเยอะตามไปด้วย ผมเองไม่มีปัญญาทำได้แน่นอนครับ
ในไฟล์ที่แนบมายังพบข้อบกพร่องในช่องสรุปผลนะครับ ถ้าคีย์ 10.00 น. เป็นเวลาเข้า ขาออกคีย์ 16.01 น. มันจะฟ้องแค่ "มาปฏิบัติราชการหลัง 9.00 น." ครับ
ซึ่งอันที่จริงมันควรจะขึ้นด้วยว่า "ออกก่อน กี่นาที" ครับ รบกวนอีกครั้งครับ (ไม่รู้ครั้งที่เท่าไหร่แล้วนะ อิอิอิ) อันอื่นดูแล้วก็น่าจะโอเคครับ ไว้ผมทดลองคีย์ข้อมูลใหม่ๆ
เข้าไป หากมีปัญหาจะนำมาโพสลงใหม่ครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#11

Post by bank9597 »

andyliu wrote:ขอบคุณมากๆ เลยนะครับ แต่อย่างว่าครับ เงื่อนไขเวลามันเยอะ ฟังก์ชั่น IF ก็ต้องเยอะตามไปด้วย ผมเองไม่มีปัญญาทำได้แน่นอนครับ
ในไฟล์ที่แนบมายังพบข้อบกพร่องในช่องสรุปผลนะครับ ถ้าคีย์ 10.00 น. เป็นเวลาเข้า ขาออกคีย์ 16.01 น. มันจะฟ้องแค่ "มาปฏิบัติราชการหลัง 9.00 น." ครับ
ซึ่งอันที่จริงมันควรจะขึ้นด้วยว่า "ออกก่อน กี่นาที" ครับ รบกวนอีกครั้งครับ (ไม่รู้ครั้งที่เท่าไหร่แล้วนะ อิอิอิ) อันอื่นดูแล้วก็น่าจะโอเคครับ ไว้ผมทดลองคีย์ข้อมูลใหม่ๆ
เข้าไป หากมีปัญหาจะนำมาโพสลงใหม่ครับ

ขอบคุณครับ
:D ลองตามนี้ครับ

ที่ E3 คีย์ =IF(C3<8,"08:00:00"*1,TIME(C3,MOD(C3,1)*100,0)) คัดลอกลงมา
ที่ F3 คีย์ =TIME(D3,MOD(D3,1)*100,0) คัดลอกลงมา
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#12

Post by andyliu »

ยังมี Error ในช่องสรุปที่ยังผิดอยู่นะครับ :D :D :D :D :D
ตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#13

Post by andyliu »

จากสูตรยาวๆ กลายเป็นสูตรสั้นๆ ทำได้ไง งง ยอมรับว่าเก่งมากครับ ไอสไตน์ จริงๆๆๆๆๆๆๆ ข้าน้อยซูฮก อยากเก่งได้สักเสี้ยวจริงๆ ไม่รู้จะเริ่มต้นยังไงดีกับสูตร ฟังก์ชั่น Excel นี่
นับถือ นับถือ และนับถือครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#14

Post by bank9597 »

:D ลองตามนี้ครับ

ที่ G3 คีย์

Code: Select all

=IF(ISERROR("08:00:00"-(F3-E3)),IF(AND(COUNT($C3:$D3)=1,MATCH(1,IF(ISTEXT($C3:$D3),1),0)=1),"ไม่ปรากฏการสแกนเข้า",IF(AND(COUNT($C3:$D3)=0,MATCH(1,IF(ISTEXT($C3:$D3),1),0)=1),"ไม่ปรากฏการสแกนเข้า-ออก","ไม่ปรากฏการสแกนออก")),IF(F3-E3>="08:00:00"*1,"08:00:00"*1,"08:00:00"-(F3-E3)))
กด Ctrl+Shift+Enter

ที่ H3 คีย์

Code: Select all

=IF(ISTEXT(G3),G3,IF(AND($E3>="08:00:00"+0,$E3<="09:00:00"+0,$G3="08:00:00"+0),1,IF(AND($E3>"09:00:00"+0,$E3<="10:00:00"+0,$G3="08:00:00"+0),2,IF(AND($E3>"09:00:00"+0,$E3<="10:00:00"+0,$G3<>"08:00:00"+0),3,IF(AND($E3>"10:00:00"+0,$G3="08:00:00"+0),4,IF(AND($E3>"10:00:00"+0,$G3<>"08:00:00"+0),5,6))))))
คัดลอกลงมา

ที่ i3 คีย์

Code: Select all

=IF(ISTEXT($H3),$H3,IF($H3=1,"",IF($H3=2,"มาปฏิบัติราชการหลัง 9.00 น.",IF($H3=3,"มาปฏิบัติราชการหลัง 9.00 น. ออกก่อน"&" "&TEXT($G3,"HH:MM")&" "&"นาที",IF($H3=4,"ไม่อยู่ปฏิบัติราชการครึ่งวัน",IF($H3=5,"ไม่อยู่ปฏิบัติราชการครึ่งวัน ออกก่อน"&" "&TEXT($G3,"HH:MM")&" "&"นาที","ออกก่อน"&" "&TEXT($G3,"HH:MM")&" "&"นาที"))))))
คัดลอกลงมา

ที่ J3 คีย์ =IF(ISERROR($I3),"",IF($D3>12,IF($D3<=13,"ไม่อยู่ปฏิบัติราชการครึ่งวัน",$I3))) คัดลอกลงมา
จากสูตรยาวๆ กลายเป็นสูตรสั้นๆ ทำได้ไง งง ยอมรับว่าเก่งมากครับ ไอสไตน์ จริงๆๆๆๆๆๆๆ ข้าน้อยซูฮก อยากเก่งได้สักเสี้ยวจริงๆ ไม่รู้จะเริ่มต้นยังไงดีกับสูตร ฟังก์ชั่น Excel นี่
นับถือ นับถือ และนับถือครับ
ไม่ได้เก่งครับ เพิ่งคิดได้มากกว่าครับ :lol: หากเก่งจริงต้องตอบครั้งเดียวด้วยสูตรที่รัดกุมครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#15

Post by andyliu »

ดูเหมือนจะได้ตามที่ต้องการแล้วนะครับ เดี๋ยวทดลองคีย์ตัวเลขลงหลายๆ ชุด ถ้าไม่ ERROR ก็ใช้ได้แล้วครับ อย่างไรก็ต้องขอชมนะครับว่า "เยี่ยมมากๆ เลย" ผมนับถือเป็นปรมาจารย์ของผมเลยหละครับคุณ bank9597
ขอบคุณจากใจจริงอีกครั้งนะครับ ถ้ายังพบ ERROR อยู่ ก็จะลงโพสเพื่อขอคำแนะนำอีกนะครับ :cp: :cp: :cp: :cp: :cp:
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#16

Post by andyliu »

อ้อ ลืมถามครับ ในคอลัมภ์ I และ J มันต่างกันอย่างไรครับ (ต่างที่ตรงสูตร) หรือเอาไว้สำหรับตรวจสอบความถูกต้องครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#17

Post by bank9597 »

andyliu wrote:อ้อ ลืมถามครับ ในคอลัมภ์ I และ J มันต่างกันอย่างไรครับ (ต่างที่ตรงสูตร) หรือเอาไว้สำหรับตรวจสอบความถูกต้องครับ
:D เอาไว้ตรวจสอบเงื่อนไขสุดท้ายครับ โดยที่เซลล์ D21 ลงเวลาออก 12.05 แล้วคุณให้แสดงผลเป็น "ไม่อยู่ปฏิบัติราชการครึ่งวัน" ซึ่งเงื่อไขต่างจากใครทั้งหมด ผมจึงต้องแยกออกมา อีกทั้ง Excel ที่คุณใช้ เป็นเวอร์ชัน 2003 ไม่สามารถซ้อน IF ได้มากกว่า 7 ชั้น ผมเลยจำเป็นต้องแยกออกมาครับ
อย่างไรก็ต้องขอชมนะครับว่า "เยี่ยมมากๆ เลย" ผมนับถือเป็นปรมาจารย์ของผมเลยหละครับคุณ bank9597
:lol: ท่านอื่นๆ ก็สามารถตอบแบบนี้ได้ครับ เพียงแต่ผมเป็นคนตอบคนแรก จึงต้องรับผิดชอบจนกว่าจะลุล่วงครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
andyliu
Member
Member
Posts: 47
Joined: Tue Feb 19, 2013 3:21 pm

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#18

Post by andyliu »

ประะทานโทษนะครับ excel ที่ผมใช้เป็นเวอร์ชัน 2010 แล้วนะครับ แสดงว่าไฟล์ที่คนเก่าทำไว้เป็นเวอร์ชันเก่าสิครับ
ต้องขอความรู้เพิ่มเดิมด้วยนะครับว่า 2010 กับ 2003 เงื่อนไขการใช้สูตรไม่เหมือนกันเหรอครับ

ปล. ตอนนี้ทดลองคีย์ข้อมูลบ้างแล้ว ยังไม่พบปัญหาครับ

ขอบคุณครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#19

Post by bank9597 »

andyliu wrote:ประะทานโทษนะครับ excel ที่ผมใช้เป็นเวอร์ชัน 2010 แล้วนะครับ แสดงว่าไฟล์ที่คนเก่าทำไว้เป็นเวอร์ชันเก่าสิครับ
ต้องขอความรู้เพิ่มเดิมด้วยนะครับว่า 2010 กับ 2003 เงื่อนไขการใช้สูตรไม่เหมือนกันเหรอครับ

ปล. ตอนนี้ทดลองคีย์ข้อมูลบ้างแล้ว ยังไม่พบปัญหาครับ

ขอบคุณครับ
:D ไฟล์ที่แนบมาเป็น .xls ซึ่งเป็นเเวอร์ชั่น 2003 ครับ หาก 2007 - 2010 ต้องเป็น .xlsx ครับ

:D ความต่างของสองเวอร์ชั้นคือ การใช้สูตรบางสูตรมีความสามารถไม่เท่ากันครับ เช่น สูตร IF หากเวอร์ชั่น 2010 จะซ้อนได้ถึง 100 กว่าชั้น แต่เวอร์ชั่น 2003 ซ้อนได้แค่ 7 ชั้นครับ

โจทย์ที่คุณถามมามีเงื่อนไขเยอะครับ ต้องใช IF ซ้อนกันหลายชั้น ทำให้สูตรยาว ทางที่ดีควรทำตารางเงื่อนไขไว้เลยให้ชัดเจน จะได้ใช้สูตรสั้นกว่านี้ครับ

อีกทั้งมีสูตรใหม่เพิ่มเข้ามา เช่น IFERROR ที่ช่วยตรวจจับ Error ได้ทุกชนิด และไม่ทำให้สูตรยาว ยังมีหลายสูตรที่เพิ่มมา

ดังนั้น ทำให้ขั้นตอนการทำงาน ลดลงครับ ผมได้ปรับสูตรให้ใหม่แล้ว เป็นไฟล์เวอร์ชั่น 2010 ครับ โดยตัดคอลัมน์ J ออกไปได้เลย

ตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
nattasiray
Bronze
Bronze
Posts: 284
Joined: Thu Feb 11, 2010 8:32 pm
Contact:

Re: การคำนวนเวลาเข้างาน แบบนับ 8 ชั่วโมงต้องทำอย่างไรครับ

#20

Post by nattasiray »

อยาทราบว่า เครื่องบันทึกเวลาที่คุณดึงข้อมูลออกมานั้น บันทึกเวลาโดยใช้เครื่องหมาย มหัพภาค (.) คั่นระหว่างเลข ชั่วโมง เลขนาที เลขวินาที หรือว่าใช้เครื่องหมายทวิภาค (:) ครับ เพราะผมทราบว่า เครื่องบันทึกเวลา ไม่ว่าจะเป็นการใช้ตอกบัตร หรือ ใช้การสแกนนิ้วมือ จะใช้เครื่องหมาย : คั่นระหว่างเลขชั่วโมง เลขนาที เลขวินาที ครับ

ตอนนี้ผมใช้ฟังก์ชัน AND ฟังก์ชัน ISNUMBER ตรวจสอบว่าถ้ากรอกเวลาเข้างาน และ เวลาออกงาน ทั้งคู่ เป็นตัวเลขหรือไม่ หากพบว่าใช่จึงจะคำนวณ ซึ่งทำให้ใช้ฟังก์ชัน IF ซับซ้อนได้สูงสุด 7 ขั้นใน MS Excel 2003 ลงไป

นอกจากนี้ผมใช้คุณลักษณะการจัดรูปแบบให้กับเซลล์อย่างมีเงื่อนไข (Conditional Formatting) เน้นข้อมูลที่ตรงกับเงื่อนไขครับ หากข้อมูลเวลาเข้างานหรือข้อมูลเวลาเลิกงานเปลี่ยนแปลง จะปรับสีให้อัตโนมัติ สะดวกต้องการตรวจสอบ

ข้อควรทราบของการบันทึกวันเดือนปี และเวลาในไมโครซอฟต์เอ็กเซล

๑ การกรอกวันเดือนปี ต้องใช้ปีคริสตศักราชเท่านั้นและต้องกรอกปีให้ครบ ๔ หลัก
๒ การกรอกเวลา ต้องใช้เครื่องหมาย : คั่นระหว่างเลขชั่วโมง เลขนาที เลขวินาที เท่านั้น

อีกหัวข้อหนึ่งคือ คุณต้องศึกษาการปรับแบบอักษรเริ่มต้นให้กับแฟ้มและโปรแกรมให้ถูกวิธีครับ เพราะที่คุณปฏิบัติด้วยการกดแป้น Ctrl+A แล้วเปลี่ยนแบบอักษรนั้น ไม่เกิดผลกับเวิร์คชีตใหม่ที่แทรกเข้าไปครับ ให้คุณศึกษาที่ http://www.snasui.com/viewtopic.php?f=9&t=4936 ครับ

เรื่องการจัดรูปแบบให้กับเซลล์อย่างมีเงื่อนไข (เทคนิคจิ้งจกเปลี่ยนสี) การคำนวณเรื่อง วันและเวลา รวมถึง การใช้สูตร IF AND ISNUMBER มีอยู่ในหนังสือ จัดการฐานข้อมูลด้วยไมโครซอฟต์เอ็กเซล 2010 ลองหาอ่านดูครับ

สำหรับของผมใส่ลงในเซลล์เดียว จบคำตอบตรงกับความต้องการครับ
You do not have the required permissions to view the files attached to this post.
ณัฐศิระ เยาวสุต
(N. Yauvasuta)
Post Reply