Page 1 of 1

อยากให้ช่วยแนะนำสูตรหน่อยค่ะ

Posted: Thu May 13, 2010 8:37 am
by ตู้HQเคลื่อนที่
เป็นฟอร์มการเซ็นOTของพนักงานค่ะ
ปกติจะลงข้อมูลด้วยEXCEL เป็นTEAMละแผ่นงานเลย มี 30 TEAM ก็30แผ่นงาน แต่มีปัญหาว่าคนย้ายTEAMบ่อยมากต้องแก้ทุกแผ่นงาน
เลยคิดว่าจะทำเป็นแผ่นงานหลักที่มีรายละเอียดของพนักงานทุกคนรวมทั้งแผนก(team)หน้าที่ไว้แผ่นเดียว หากมีการย้ายTEAM จะได้แก้ข้อมูลที่เดียว ทีนี้ปัญหาคือ จะทำอย่างไรให้ข้อมูลพนักงานของTEAMที่เราเรียกมาแสดงข้อมูลทั้งหมด โดยแยกตามหน้าที่งานด้วย
ตอนนี้ทำไปเรื่อย มั่วไปหมดแล้วค่ะ ไม่รุ้จะเริ่มตรงไหน คือชื่อ นามสกุล มาแล้ว แต่ว่า รหัสพนักงานยังไม่มาค่ะ ปัญหาใหญ่เลย
ต้องคีย์รหัสเอง จะใช้สูตรอะไรคะ

Re: อยากให้ช่วยแนะนำสูตรหน่อยค่ะ

Posted: Thu May 13, 2010 10:42 am
by snasui
:D เนื่องจากใบขอทำงานล่วงเวลามีแบ่งเป็นส่วน ๆ แต่ละส่วนจะอ้างอิงเซลล์ต่างกัน ผมยกตัวอย่างสูตรเฉพาะส่วนแรกเท่านั้นนะครับ สูตรทั้งหมดดูได้จากไฟล์แนบ

ผมสร้าง Sheet ขึ้นมาใหม่ชื่อว่า TEAM (2) สูตรทั้งหมดจะเขียนที่ Sheet นี้

1. A9 คีย์เพื่อนับว่า TEAM ใน D5 และ Sub TEAM ใน C5 มีจำนวนเท่าไร

=SUMPRODUCT(--($D$5=MASTER!$A$2:$A$32),--($C$8=MASTER!$B$2:$B$32))

Enter เพื่อจะนำไปใช้ในสูตรสำหรับหารหัส ชื่อ-สกุลพนักงานต่อไป

2. เซลล์ C9 คีย์สูตรเพื่อแสดงระหัสพนักงาน

=IF(ROWS(C$9:C9)>$A$9,"",INDEX(MASTER!D$2:D$32,SMALL(IF($D$5=MASTER!$A$2:$A$32,IF($C$8=MASTER!$B$2:$B$32,ROW(MASTER!$B$2:$B$32)-ROW(MASTER!$B$2)+1)),ROWS(C$9:C9))))

การกดแป้นให้รับสูตรต้องกด 3 แป้นคือ Ctrl+Shift+Enter จะกด Enter อย่างเดียวไม่ได้ครับ เนื่องจากเป็นสูตร Array หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร

จากนั้นค่อย Copy ไปยังด้านขวาและด้านล่าง :mrgreen:

ผมยกเลิกการ Merge เซลล์และจัดฟอร์แมทใหม่ ทั้ง Sheet Master ก็แยกเป็น Group และ Sub Group ออกมาเพื่อให้สะดวกต่อการอ้างอิงครับ

Re: อยากให้ช่วยแนะนำสูตรหน่อยค่ะ

Posted: Thu May 13, 2010 3:16 pm
by ตู้HQเคลื่อนที่
ขอบคุณมากค่ะ แล้ว INDEX และ SMALL มีไว้ทำไมเหรอคะ ไม่รู้สูตรตัวนี้เลยค่ะ ไม่เคยใช้เลย
ทีนี้ถามใหม่ค่ะ คิดเล่นๆๆ หากเราพิมพ์TEAM 1 อยากให้เลขลำดับที่รันตามมาด้วย ไม่ต้องคีย์ไว้ล่วงหน้าจะได้มั๊ยคะ
เพราะเห็นว่าในช่องจะบอกจำนวนไว้ว่ามีกี่คน (ขอแบบไม่ต้องแยกหน้าที่งานก็ได้ค่ะ คิดเล่นๆๆ)เช่นสูตรบอกว่าTEAM 1 มี 8 คน ก็ให้รันลำดับที่ 1...
ลำดับที่ 2... แล้วตารางด้วย หากมี 8 คนก็มี 8 ลำดับ 8 แถว จะทำได้มั๊ยคะ
แต่แค่นี้ก็ขอบคุณมากๆๆๆๆๆๆๆๆแล้วค่ะ ขอบคุณอีกครั้งค่ะ

Re: อยากให้ช่วยแนะนำสูตรหน่อยค่ะ

Posted: Thu May 13, 2010 7:29 pm
by snasui
:D ดูตัวอย่างการดึงข้อมูลโดยไม่สนใจเรื่อง Sub Team คือเจอทีมที่ต้องการค้นหากี่คนก็ให้ List ออกมาทั้งหมด และในหมายเหตุผม List Sub Team มากำกับ

สำหรับบรรทัดถ้าต้องการให้ลดลงก็ใช้การ Hide แทนการลบทิ้งครับ เพราะไม่เช่นนั้นจะต้องมีการมาแทรกทีหลังกรณีที่มีจำนวนคนเพิ่มขึ้น ไม่เช่นนั้นแล้วจะทับกับข้อมูลด้านล่างได้

สำหรับฟังก์ชั่น Small และ Index ดูคำอธิบายและการใช้งานได้ตามด้านล่างครับ

Index
http://office.microsoft.com/th-th/excel ... 81054.aspx

Small
http://office.microsoft.com/th-th/excel ... 61054.aspx

Re: อยากให้ช่วยแนะนำสูตรหน่อยค่ะ

Posted: Thu May 13, 2010 8:27 pm
by ตู้HQเคลื่อนที่
ขอบคุณมากค่ะ
เดี๋ยวจะกลับไปอ่านการใช้สูตรค่ะ ดูในไฟล์แล้ว ดีมากเลยค่ะ
ถ้ามีปัญหา หรือข้อสงสัยจะถามอีกค่ะ ขอบคุณค่ะ