Page 1 of 1
การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Mon Oct 14, 2013 6:27 pm
by andyliu
สวัสดีครับ
กลับมาอีกครั้ง มีปัญหามารบกวนเหมือนเดิมครับ ผมมีไฟล์ Excel ที่มีข้อมูลรายชื่อของพนักงาน และวันเดือนปีที่พนักงานแต่ละคนขาดงานด้วยเหตุต่างๆ ครับ
แต่จะสรุปยอดเป็นรายเดือน รวมกัน 12 รอบ เป็นหนึ่งปี ไม่ทราบว่าพอจะใช้สูตรไหนได้บ้างครับ (เดิมทีผมก๊อปมาวางลงแล้วสรุปเป็นเดือนๆ ไป แต่พอหลายคน และหลายเดือนเข้า ตาเริ่มเบลอลงรายการสรุปผิดบ้างถูกบ้าง จึงขอสอบถามนะครับว่าควรจะใช้สูตรใดครับในการประมวลผลข้อมูลที่มีครับ
รายละเอียดตามไฟล์แนบครับ
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Mon Oct 14, 2013 9:25 pm
by snasui

ลองตามนี้ครับ
ที่ชีท สรุปรวม
- เซลล์ AE7:AE18 ให้คีย์เดือนปีเสียใหม่ โดยคีย์ วันเดือนปีที่เป็น ค.ศ. โดยคีย์ปีเป็นเลข 4 หลัก ไม่ใช่ 2 หลัก
- ที่เซลล์ D7 คีย์สูตร
=SUMPRODUCT(--(LOOKUP(CHAR(255),$B$7:$B7)=DATA!$B$2:$B$131),--(LOOKUP(CHAR(255),$C$7:$C7)=DATA!$C$2:$C$131),--(TEXT(DATA!$I$2:$I$131,"mmyy")=TEXT($AE7,"mmyy")),--(DATA!$M$2:$M$131=D$6))
Enter > Copy ไปด้านขวาและลงด้านล่าง
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Tue Oct 15, 2013 10:33 am
by andyliu
ทำได้แล้วครับ ขอบคุณมากครับ แต่พอเอาไปใช้กับข้อมูล (DATA) ทีมีอยู่จริง มันมีจำนวน Row มากครับ ประมาณ 15,000 Row ครับ เลยทำให้การประมวลผลมันช้าลง ไม่ทราบว่าพอจะแก้ไขสูตรอย่างไรครับ ถึงจะทำให้การประมวลผลมันเร็วขึ้นครับ
ขอบคุณมากครับ
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Tue Oct 15, 2013 10:49 am
by bank9597
andyliu wrote:ทำได้แล้วครับ ขอบคุณมากครับ แต่พอเอาไปใช้กับข้อมูล (DATA) ทีมีอยู่จริง มันมีจำนวน Row มากครับ ประมาณ 15,000 Row ครับ เลยทำให้การประมวลผลมันช้าลง ไม่ทราบว่าพอจะแก้ไขสูตรอย่างไรครับ ถึงจะทำให้การประมวลผลมันเร็วขึ้นครับ
ขอบคุณมากครับ
ลองแทรกคอลัมน์ไปอีก 1 คอลัมน์ แล้วใส่รหัสพนักงาน
เปลี่ยนการอ้างอิงจากชื่อ มาเป็น รหัส แทน จะช่วยลดการคำนวนลงได้ครับ เช่น
=SUMPRODUCT(--($A7=DATA!$A$2:$A$131),--(TEXT(DATA!$I$2:$I$131,"mmyy")=TEXT($AF7,"mmyy")),--(DATA!$M$2:$M$131=E$6))
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Tue Oct 15, 2013 11:40 am
by andyliu
เจอกันอีกแล้วนะครับคุณ bank9597 ต้องขอบคุณอีกครั้งครับ
สำหรับคำแนะนำเมื่อสักครู่ ผมลองทำดูแล้ว แต่ยังช้าอยู่ครับ เนื่องจาก
เวลาใส่ข้อมูลดิบที่มีอยู่จริง มีจำนวน Row มาก (ประมาณ 10000 ต้นๆ) ครับ
ต้องรบกวนอีกครั้งนะครับ
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Tue Oct 15, 2013 12:31 pm
by bank9597
andyliu wrote:เจอกันอีกแล้วนะครับคุณ bank9597 ต้องขอบคุณอีกครั้งครับ
สำหรับคำแนะนำเมื่อสักครู่ ผมลองทำดูแล้ว แต่ยังช้าอยู่ครับ เนื่องจาก
เวลาใส่ข้อมูลดิบที่มีอยู่จริง มีจำนวน Row มาก (ประมาณ 10000 ต้นๆ) ครับ
ต้องรบกวนอีกครั้งนะครับ

ลองดูครับ
ที่ชีท Data
เซลล์ Z2 คีย์ =TEXT(I2*1,"mmyy") คัดลอกลงมา
ชีทสรุปรวม
เซลล์ AG7 คีย์ =TEXT(AF7,"mmyy") คัดลอกลงมา
ที่ E7 คีย์ =COUNTIFS(DATA!$A$2:$A$191,$A7,DATA!$Z$2:$Z$191,$AF7,DATA!$M$2:$M$191,E$6) คัดลอกไปขวามือ ลงล่างพร้อมกัน
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Tue Oct 15, 2013 12:39 pm
by mworawuth
น่าจะใช้ Pivot table
โดยเพิ่มคอลัมน์ "year-mm" และกำหนด Dynamic Range Name ("TransData") ใน Sheet"Data" ตามที่แนบ
TransData = =OFFSET(DATA!$A$1,0,0,COUNTA(DATA!$A:$A),COUNTA(DATA!$1:$1))
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Tue Oct 15, 2013 3:44 pm
by andyliu
Re: การสรุปจำนวนวันขาด ลา มาสาย ครับ
Posted: Wed Oct 16, 2013 4:48 pm
by nattasiray
ให้ดูตัวอย่างการบันทึกข้อมูลที่
http://www.snasui.com/viewtopic.php?f=3&t=5055
แยกรายชื่อพนักงานไปอยู่อีกเวิร์คชีตหนึ่ง ประวัติการป่วยสายขาดลาอยู่อีกเวิร์คชีตหนึ่ง ซึ่งในเวิร์คชีตประวัติการป่วยสายขาดลาจะใช้รหัสจัดเก็บแทน ชีตสรุปผลการลา ก็มีดรอปลิสต์ดึงค่ารหัสพนักงานที่ต้องการสรุปผล