snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
iamporn
Member
Posts: 7 Joined: Thu Dec 26, 2013 3:37 pm
#1
Post
by iamporn » Sat Dec 28, 2013 4:10 pm
ต้องการคำนวณหาผลรวมเวลาที่เข้าสาย, ออกก่อนเวลาเลิกงาน, ลาระหว่างเวลางาน, ลาพักผ่อน, วันหยุดพิเศษ เพื่อสรุปวันลาที่เหลือตอนสิ้นปีค่ะ
เวลาเข้างานปกติ 08:00
เวลาเลิกงาน 17:00
พักกลางวัน 1 ชั่วโมง
โดยมีเงื่อนไขเอาเวลาจากการสรุปขาดงาน (สาย,ออกก่อนเวลา,ลาระหว่างเวลางาน) และเวลาจากการลาพักผ่อน,หยุดพิเศษารวมกัน แล้วนำมาหักกับสิทธิ์การลาพักผ่อน,วันหยุดพิเศษต่ละคน หากพนักงานรายใดใช้สิทธิ์ลาพักผ่อน,วันหยุดพิเศษหมด ให้แสดงผลลัพธ์วันลาที่เหลือติดลบค่ะ
ขอบคุณมากค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Sat Dec 28, 2013 4:20 pm
ค่อย ๆ ถามตอบกันไปนะครับ
เซลล์ M8 ค่า 0:05:00 มีวิธีการคิดอย่างไรจึงได้ค่านี้ครับ
iamporn
Member
Posts: 7 Joined: Thu Dec 26, 2013 3:37 pm
#3
Post
by iamporn » Sat Dec 28, 2013 4:28 pm
กรณีพนักงานเข้างานสาย เวลาเข้างานปกติ 08:00 แต่พนักงานเข้างานเวลา 08:05 ถือว่าสาย 5 นาทีค่ะ (K8-G8)
ถ้าจะใช้สูตรเฉพาะกรณีสายอย่างเดียว
=IFERROR(IF(TIME(HOUR(K8),MINUTE(K8),SECOND(K8))>"08:00:59"+0,TIME(HOUR(K8),MINUTE(K8),SECOND(K8))-"08:00:00"+0,0),"")
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Sat Dec 28, 2013 4:37 pm
ให้ตอบหลักการได้มาก็เพียงพอ ไม่จำเป็นต้องตอบด้วยสูตรครับ
สำหรับในคอลัมน์ K ให้ลบวันที่ออกเหลือเฉพาะเวลาแล้วใช้การหักลบกันปกติครับ
สูตรที่ M8 สามารถเขียนได้เป็น
=MAX(0,K8-G8)
Enter > Copy ลงด้านล่าง
ไม่ทราบว่ามีเงื่อนไขอื่นใดอีกหรือไม่สำหรับหาค่าในช่องนี้ ให้เขียนมาทั้งหมดในคราวเดียวครับ
iamporn
Member
Posts: 7 Joined: Thu Dec 26, 2013 3:37 pm
#5
Post
by iamporn » Sat Dec 28, 2013 4:54 pm
สิ่งที่ต้องการคือเผลลัพธ์ที่ได้ของคอลัมน์ K โดยมีงื่อนไขประเภทการลาที่คอลัมน์ J ค่ะ
กรณีสาย เข้างานหลัง 08:00 ถือว่าสาย (คอลัมน์ K - คอลัมน์ G)
กรณีีออกก่อนเวลาเลิกงาน 17:00 ให้นับเวลาที่ออกก่อนเวลา (คอลัมน์ K - คอลัมน์ H)
กรณีลาระหว่างเวลางาน ให้นับเวลาที่ออกและเข้ากลับมา (คอลัมน์ L - คอลัมน์ K)
กรณีลาพักผ่อน นับเวลาเป็นชั่วโมงค่ะ เนื่องจากพนักงานบางรายอาจลาเป็นชั่วโมง ไม่ใช่ลาทั้งวัน (สิทธิ์การลาที่มีคือ คอลัมน์ E กำหนดเป็นวัน)
กรณีวันหยุดพิเศษ นับเวลาเป็นชั่วโมงค่ะ เนื่องจากพนักงานบางรายอาจลาเป็นชั่วโมง ไม่ใช่ลาทั้งวัน (สิทธิ์การลาที่มีคือ คอลัมน์ F กำหนดเป็นวัน)
หากมีวิธีการบันทึกข้อมูลที่อาจารย์คิดว่าดีกว่าตัวอย่างงานนี้ก็ขอคำแนะนำด้วยค่ะ
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Sat Dec 28, 2013 5:21 pm
เนื่องจากลักษณะของการออกแบบการเก็บข้อมูลตามไฟล์แนบเป็นแบบรายงาน เพื่อให้ง่ายต่อการคำนวณควรมีคอลัมน์ดังนี้ครับ
เวลาเข้างานปกติ (มีแล้ว)
เวลาออกงานปกติ (มีแล้ว)
เวลาเข้างานจริง
เวลาออกงานจริง
ประเภทการบันทึกให้แยกเป็นคอลัมน์ เช่น
คอลัมน์เวลาเข้าสาย
คอลัมน์เวลาพักผ่อน
คอลัมน์เวลาที่ลาระหว่างเวลางาน
ฯลฯ
สำหรับข้อ 1-4 เอาไว้หาเวลาสาย ออกก่อนเวลา
สำหรับข้อ 5 เอาไว้หาเวลาที่ต้องหักออก
กรณีต้องการให้ง่ายต่อการสรุปข้อมูลควรทำมาเป็น Database ไม่ใช่รายงาน ศึกษาลักษณะของ Database ได้จาก Link นี้ครับ
Database
iamporn
Member
Posts: 7 Joined: Thu Dec 26, 2013 3:37 pm
#7
Post
by iamporn » Sat Dec 28, 2013 6:08 pm
ที่จริงก็มีรูปแบบรายงานแยกเป็นคอลัมน์ตามอาจารย์แนะนำนะคะ แต่คิดว่าข้อมูลเยอะไปเลยลองรวบทุกประเภทการลามาไว้คอลัมน์เดียวกัน จะลองศึกษาตามคำแนะนำนะคะ ขอบคุณสำหรับคำแนะนำดีๆ ที่ช่วยเพิ่มความรู้ค่ะ