Page 1 of 1
ทำใบลงเวลาทำงาน แบบมีเงื่อนไข
Posted: Mon Jun 06, 2022 10:39 pm
by yangkodza
ผมมีแผ่นงานดังนี้ครับ
1. รายชื่อปกติ จะมีรายชื่อและเวรรายวันของแต่ละคนครับ
2. ใบลงเวลาทำงาน เช็คพวก ขาด ลา มาสายครับ
3. ฐานช้อมูลรายวัน จะได้ข้อมูลเวลาที่สมาชิกครูมาแตะบัตรครับ
โดยกำหนดว่า
ถ้าเวร มาไม่เกิน 07.00 ให้เวลาแสดงเวลาในคอลัมน์ C ถ้าเกิน ให้แสดงเวลาไปในคอลัมน์ D ที่ช่องมาสาย
ส่วนที่ไม่ใช่เวรให้มาไม่เกิน 07.15 ให้เวลาแสดงเวลาในคอลัมน์ C ให้แสดงเวลาไปในคอลัมน์ D ที่ช่องมาสาย
โดยที่เวร จะอ้างอิงจากแผ่นงาน รายชื่อปกติ ที่ I1
ส่วนใครที่ไม่มีเวลาเข้าออก ให้แจ้งที่คอลัมน์ G ไม่รูดเข้าออก แสดงคำว่า ขาด ครับ
และอีกส่วนนึงในแผ่นงาน ฐานข้อมูลรายวัน บางคนสแกนบัตรหลายครั้ง เวลาดึงข้อมูลไปให้ดึงข้อมูลเวลาครั้งแรกและครั้งสุดท้ายเท่านั้น
รบกวนช่วยชี้แนะด้วยครับ ขอบคุณมาก
ใบลงเวลาทำงาน.xlsm
Re: ทำใบลงเวลาทำงาน แบบมีเงื่อนไข
Posted: Tue Jun 07, 2022 6:47 am
by snasui

กรุณาคีย์ตัวอย่างที่ถูกต้องมาสักสองสามรายการในชีต ใบลงเวลาทำงาน พร้อมคำอธิบายที่มาของค่านั้น ๆ เพื่อที่เพื่อนสมาชิกจะได้ทำความเข้าใจได้ง่าย ๆ ครับ
Re: ทำใบลงเวลาทำงาน แบบมีเงื่อนไข
Posted: Tue Jun 07, 2022 10:53 am
by yangkodza
Capture.PNG
ดึงข้อมูลมาจากแผ่นงานฐานข้อมูล แล้วเอาไปแปรผลหาวันเวรที่ แผ่นงานรายชื่อปกติ
สุดท้ายไปแสดงผลที่ แผ่นงานใบลงเวลาทำงาน
ประมาณนี้ครับผม
Re: ทำใบลงเวลาทำงาน แบบมีเงื่อนไข
Posted: Tue Jun 07, 2022 7:21 pm
by snasui

ตัวอย่างการแสดงข้อมูลประกอบและการแสดงผลในชีต ใบลงเวลางาน ลองนำไปปรับใช้ดูครับ
ที่ชีต ฐานข้อมูลรายวัน
- ที่ G1:J1 คีย์หัวคอลัมน์เป็น เข้า, ออก, สถานะ และ บันทึกเวลา ตามลำดับ
- ที่ G2 คีย์
=LEFT(E2,5)+0
Enter > Copy ลงด้านล่าง
- ที่ H2 คีย์
=IF(LEN(E2)=5,"",RIGHT(E2,5)+0)
Enter > Copy ลงด้านล่าง
- ที่ I2 คีย์
=INDEX(รายชื่อปกติ!$C$2:$G$112,A2+0,MATCH(TEXT(D2,"วววว"),รายชื่อปกติ!$C$1:$G$1,0))&""
Enter > Copy ลงด้านล่าง
- ที่ J2 คีย์
=IF(E2="","เช้าขาด",IF(H2="","ไม่รูดเข้า/ออก",IF(AND(I2="เวร",G2<=7/24),"เข้าปกติ",IF(AND(I2="เวร",G2>7/24),"สาย",IF(AND(I2="",G2<="7:15"+0),"เข้าปกติ",IF(AND(I2="",G2>"7:15"+0),"สาย",""))))))
Enter > Copy ลงด้านล่าง
ที่ชีต ใบลงเวลาทำงาน
- ที่ C7 คีย์
=LOOKUP(2,1/((ฐานข้อมูลรายวัน!$J$2:$J$112=C$6)*(ฐานข้อมูลรายวัน!$A$2:$A$112+0=$A7)),ฐานข้อมูลรายวัน!$G$2:$G$112)
Enter > Copy ลงด้านล่าง
- ที่ H7 คีย์
=LOOKUP(2,1/(ฐานข้อมูลรายวัน!$A$2:$A$112+0=$A7),ฐานข้อมูลรายวัน!$H$2:$H$112)
Enter > Copy ลงด้านล่าง
Re: ทำใบลงเวลาทำงาน แบบมีเงื่อนไข
Posted: Wed Jun 08, 2022 11:42 am
by yangkodza
snasui wrote: Tue Jun 07, 2022 7:21 pm

ตัวอย่างการแสดงข้อมูลประกอบและการแสดงผลในชีต ใบลงเวลางาน ลองนำไปปรับใช้ดูครับ
ที่ชีต ฐานข้อมูลรายวัน
- ที่ G1:J1 คีย์หัวคอลัมน์เป็น เข้า, ออก, สถานะ และ บันทึกเวลา ตามลำดับ
- ที่ G2 คีย์
=LEFT(E2,5)+0
Enter > Copy ลงด้านล่าง
- ที่ H2 คีย์
=IF(LEN(E2)=5,"",RIGHT(E2,5)+0)
Enter > Copy ลงด้านล่าง
- ที่ I2 คีย์
=INDEX(รายชื่อปกติ!$C$2:$G$112,A2+0,MATCH(TEXT(D2,"วววว"),รายชื่อปกติ!$C$1:$G$1,0))&""
Enter > Copy ลงด้านล่าง
- ที่ J2 คีย์
=IF(E2="","เช้าขาด",IF(H2="","ไม่รูดเข้า/ออก",IF(AND(I2="เวร",G2<=7/24),"เข้าปกติ",IF(AND(I2="เวร",G2>7/24),"สาย",IF(AND(I2="",G2<="7:15"+0),"เข้าปกติ",IF(AND(I2="",G2>"7:15"+0),"สาย",""))))))
Enter > Copy ลงด้านล่าง
ที่ชีต ใบลงเวลาทำงาน
- ที่ C7 คีย์
=LOOKUP(2,1/((ฐานข้อมูลรายวัน!$J$2:$J$112=C$6)*(ฐานข้อมูลรายวัน!$A$2:$A$112+0=$A7)),ฐานข้อมูลรายวัน!$G$2:$G$112)
Enter > Copy ลงด้านล่าง
- ที่ H7 คีย์
=LOOKUP(2,1/(ฐานข้อมูลรายวัน!$A$2:$A$112+0=$A7),ฐานข้อมูลรายวัน!$H$2:$H$112)
Enter > Copy ลงด้านล่าง
นำไปประยุกต์เพิ่มเติม ตรงตามที่ใช้งานครับผม ขอบคุณมากครับ