Page 2 of 2

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Sat Mar 30, 2013 5:59 pm
by andyliu
ขอบคุณครับ แต่มันเกิด error ตามรูปครับ (ผมใช้ไฟล์ report2 ที่แนบมานะครับ) บางช่องก็ได้ แต่บางช่องยังสรุปผิดอยู่ครับ รบกวนเช็คให้ผมอีกทีนะครับ

ผมมีพื้นฐานการใช้สูตร excel น้อยมากครับ ก็หวังว่าจะได้ทางพี่ๆ กูรูทั้งหลายช่วยแนะนำครับ

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Sat Mar 30, 2013 6:00 pm
by andyliu
วันจันทร์จะมาลุยใหม่นะครับ

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Sat Mar 30, 2013 6:01 pm
by snasui
:lol: ภาพประกอบสูตรครับ หาก Error แสดงว่าสูตรผิดไปจากที่ผมเขียน หรือกดแป้นไม่ถูกต้อง

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Mon Apr 01, 2013 8:11 am
by andyliu
ทำแล้วครับ ยังเหมือนเดิมครับ อย่างไรผมขอแนบไฟล์ที่ทำให้ดูอีกทีก็แล้วกันนะครับ

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Mon Apr 01, 2013 9:37 am
by joo
:D ท่านทำตามวิธีนี้โดย กดแป้น Ctrl+Shift+Enter พร้อมกัน หรือยังครับ
วิธีกดแป้นให้รับสูตรคือ กดแป้น Ctrl+Shift ค้างไว้ก่อน แล้วกดแป้น Enter ตาม
ปล่อยแป้นแล้วสังเกตดูว่าสูตรมีเครื่องหมายปีกกาครอบหรือไม่ หากมีแล้วให้ Copy ไปยังเซลล์อื่น ๆ
คำตอบข้อที่1 หากข้อมูลใน Data Sheet มีมากท่านก็ใช้วิธี กำหนดช่วงข้อมูลเป็นแบบ Dynamic เข้ามาช่วย หรือไม่ก็กำหนดช่วงข้อมูลเผื่อไว้ล่างหน้าแต่แบบแรกจะสะดวดและยืดหยุ่นมากกว่า
คำตอบข้อที่2 ทดลองดูได้เลยครับ

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Mon Apr 01, 2013 10:30 am
by andyliu
ทำได้แล้วครับ ขอบคุณครับ ผมคิดว่าคงทำผิดตอนกด Ctrl+Shift+Enter นี่หละครับ เพราะทำไม่เป็น ก็ได้คุณ joo แนะนำรายละเอียดวิธีทำให้นี่หละครับ
ต้องบอกตรงๆ เลยนะครับ ไม่เก่งเอาเสียเลย ใช้เป็นแต่สูตรง่ายๆ เช่น Sum เป็นต้น (ซึ่งน่าจะเป็นสูตรเดียวที่ใช้เป็น)
ส่วนคำตอบที่แนะนำในส่วนข้อ 1 การทำแบบ dynamic ต้องทำอย่างไร่ ก็คงต้องรอให้สอนกันหละครับ (ป.1 เพิ่งจบ)
ส่วนข้อ 2 จะลองทำดูนะครับ แค่นี้ก็ดีใจแล้ว

Re: การออกแบบรายงานประวัติการอบรมของเจ้าหน้าที่

Posted: Mon Apr 01, 2013 1:18 pm
by joo
:D การสร้าง Range Name แบบ Dynamic ลองแบบนี้ดูครับ
1.ไปที่แถบ Formulas > Define Name
2.พิมพ์ชื่อ Data ลงในช่อง Name
3.ในช่อง Refers to ด้านล่าง (ถ้ามีข้อความใดๆ ก็ลบออกก่อน) พิมพ์สูตร =OFFSET(DATA!$K$2,0,0,COUNTA(DATA!$A:$A)-1,1)
4.คลิกปุ่ม OK
5.ทำเหมือนข้อที่ 2 ในช่อง Name พิมพ์ชื่อ RangeData
6.ในช่อง Refers to ด้านล่าง พิมพ์สูตร
=OFFSET(DATA!$A$2,0,0,COUNTA(DATA!$B:$B)-1,18)
7.ที่เซลล์ A5 จากสูตร =IF(ROWS(A$5:A5)>COUNTIF(DATA!$K$2:$K$39,$C$1),"",ROWS(A$5:A5)) เปลี่ยนเป็น
=IF(ROWS(A$5:A5)>COUNTIF(Data,$C$1),"",ROWS(A$5:A5)) Enter . Copy ลงด้านล่าง
8.ที่เซลล์ B5 จากสูตร
=IF(N($A5),INDEX(INDEX(DATA!$A$2:$R$39,0,MATCH(B$4,DATA!$A$1:$R$1,0)),SMALL(IF(DATA!$A$2:$R$39=$C$1,ROW(DATA!$A$2:$R$39)-ROW(DATA!$A$2)+1),$A5)),"") เปลี่ยนเป็น
=IF(N($A5),INDEX(INDEX(RangeData,0,MATCH(B$4,DATA!$A$1:$R$1,0)),SMALL(IF(RangeData=$C$1,ROW(RangeData)-ROW(DATA!$A$2)+1),$A5)),"") กดแป้น Ctrl+Shift+Enter พร้อมกัน จากนั้นก็ Copy ไปทางขวาและลงมาด้านล่าง ลองนำไปประยุกต์ปรับใช้กับข้อมูลอื่นๆ ดูครับ