Professional Documents
Culture Documents
้
ฉลาดใชสารพั ดสูตร Excel
ี
อย่างมืออาชพ
โดย
www.ExcelExpertTraining.com
www.XLSiam.com
excel@XLsiam.com
ิ ธิต
สงวนลิขสท ์ ามกฎหมาย
17 เมษายน 2555
Copyright of www.ExcelExpertTraining.com
2
สารบ ัญ
1. วิธป ้
ี รับ Excel ให ้พร ้อมต่อการใชงานอย่ ี
างมืออาชพ 6
2. การกําหนดตําแหน่งอ ้างอิง 9
3. วิธค
ี ้นหาสูตร 17
4. วิธแ
ี กะสูตร 21
5. วิธส ้
ี ร ้างสูตรซอนสู
ตร 23
6. วิธส ื่ ซอนช
ี ร ้างชอ ้ อื่ 25
7. เรือ
่ งทีไ่ ม่คอ
่ ยรู ้กันเกีย
่ วกับสูตร 26
8. การแบ่งขอบเขตพืน
้ ทีต
่ าราง 41
ี หรือข ้ามแฟ้ ม
9. การกําหนดตําแหน่งอ ้างอิงข ้ามชท 44
ื่ และใชช้ อ
10. หลักการตัง้ ชอ ื่ ใน Excel 54
14. หลักการแยกตัวแปร 79
Copyright of www.ExcelExpertTraining.com
3
17. หลากหลายแนวทางการใชสู้ ตร IF 90
้ ได ้ใน Excel
25. ของจริง ของปลอม ของใชไม่ 143
Copyright of www.ExcelExpertTraining.com
4
35. การกําหนดขอบเขตตารางแบบยืดหยุน
่ 281
37. การคํานวณยอดรวมเพือ
่ จัดทํารายงาน 304
38. วิธส
ี ร ้างสูตรบนกราฟ 312
39. วิธจ
ี ัดการกับความอ ้วนอุ ้ยอ ้าย...ของแฟ้ ม 315
Copyright of www.ExcelExpertTraining.com
5
คํานํา
ิ ปี ทีผ
ในระยะเวลาหลายสบ ่ า่ นมา แม ้ Excel ถูกพัฒนาให ้เป็ นโปรแกรมทีเ่ ป็ นประโยชน์มากขึน
้ มี
คําสงั่ และมีเครือ ้
่ งมือใหม่ๆเตรียมไว ้ให ้เลือกใชมากขึ
น ้ กว่าแต่กอ
่ นก็ตาม ทัง้ ๆที่ Excel จะเป็ น
Excel ได ้ก็เพราะการมีสต
ู รเพือ ้
่ ใชในการคํ านวณ แต่ตวั สูตรที่ Excel มีอยูก
่ ลับมีการเปลีย
่ นแปลง
น ้อยมาก มีสต
ู รใหม่ทจ ้
ี่ ําเป็ นต่อการใชงานเกิ
ดขึน ้ สว่ นทีเ่ ปลีย
้ เพียงเล็กน ้อยเท่านัน ่ นแปลงสูตร
ใน Excel 2010 ก็มงุ่ ปรับปรุงให ้มีความละเอียดในการคํานวณยิง่ ขึน
้
้
หลักสูตรฉลาดใชสารพั ี ก็ผา่ นร ้อนผ่านหนาวมาหลายปี เชน
ดสูตร Excel อย่างมืออาชพ ่ กัน
้ งุ่ ให ้ผู ้ใช ้ Excel รู ้จักคิด ฉลาดเลือกใชสู้ ตร Excel ให ้ถูกกับสถานการณ์ โดยเลือก
หลักสูตรนีม
เฉพาะสูตรทีม
่ ค ้
ี วามจําเป็ นต ้องนํ ามาใชงานขึ
น ้ มาอบรมเพือ ี และข ้อควรระวัง
่ ทราบข ้อดี ข ้อเสย
แนะนํ าวิธค
ี ด
ิ ออกแบบตารางให ้เหมาะสมกับการคํานวณ และหาทางกระตุ ้นให ้ผู ้เข ้าอบรมเรียนรู ้
วิธแ
ี ก ้ปั ญหาได ้ด ้วยตัวเอง
อย่างไรก็ตามเนือ
่ งจากระยะเวลาอบรมมีเพียง 3 วัน ไม่สามารถแนะนํ าเรือ
่ งราวและถ่ายทอด
ประสบการณ์การใชสู้ ตรได ้ครบถ ้วน จึงขอแนะนํ าให ้อ่านคูม
่ อ ้ งึ่ มีเนือ
ื เล่มนีซ ้ หาทีอ
่ าจไม่มโี อกาส
หยิบยกขึน
้ มาอบรมอยูอ
่ ก
ี มาก
คูม
่ อ
ื ประกอบการอบรมเล่มนีไ ้ หาสําคัญของหลายหลักสูตร ทัง้ หลักสูตรสุดยอด
้ ด ้รวบรวมเนือ
เคล็ดลับและลัดของ Excel หลักสูตรหันมาใช ้ Excel จัดการฐานข ้อมูลแทน Access กันดีกว่า
และหลักสูตรประยุกต์ใช ้ Excel เพือ
่ วางแผนความต ้องการวัสดุและจัดตารางการผลิต ตลอดจน
การใชสู้ ตรใน VBA อีกทัง้ ได ้นํ าตัวอย่างคําถามคําตอบและสูตรแบบแปลกๆจากเว็บหลายแห่ง
มารวมไว ้ จึงหวังว่าผู ้เข ้าอบรมจะได ้เปิ ดหูเปิ ดตาและได ้แนวทางนํ ากลับไปสร ้างงานของตน
17เมษายน 2555
Copyright of www.ExcelExpertTraining.com
6
วิธป
ี ร ับ Excel ให้พร้อม
ต่อการใชง้ านอย่างมืออาชพ
ี
คําสงั่ นีย
้ งั มีผลทําให ้เมือ
่ ดับเบิลคลิกทีเ่ ซลล์สต
ู รแล ้ว Excel จะย ้ายตําแหน่งไปยังตําแหน่ง
เซลล์ต ้นทางทีอ
่ ้างอิงในสูตรนัน
้ และเมือ
่ กดปุ่ ม F5 > Enter จะย ้ายกลับมาทีเ่ ซลล์เดิมที่
เคยดับเบิลคลิก
Copyright of www.ExcelExpertTraining.com
7
หมายเหตุ ระบบการคํานวณจะเปลีย
่ นตามระบบของแฟ้ มแรกทีเ่ ปิ ดขึน
้ ก่อนเสมอ
้ จากนัน
เลือกเมนู Trusted Locations จากเมนูด ้านซาย ้ กดปุ่ ม Add new location... เพือ
่
Copyright of www.ExcelExpertTraining.com
8
Copyright of www.ExcelExpertTraining.com
9
การกําหนดตําแหน่งอ้างอิง
บทความนีม
้ จ ุ ประสงค์ให ้ผู ้ทีเ่ คยใช ้ Excel มาก่อนและมีพน
ี ด ื้ ฐานมาบ ้างจนพอทราบว่าตําแหน่ง
อ ้างอิง (Cell Reference) ในตาราง Excel คืออะไรและนํ าไปใชกั้ นอย่างไร จะได ้เปิ ดหูเปิ ดตา
เรียนรู ้เคล็ดลับทีค
่ นทัว่ ไปอาจมองข ้ามหรือไม่นก
ึ ฝั นว่าจะเป็ นไปได ้ แล ้วสามารถนํ าตําแหน่ง
อ ้างอิงไปใชกั้ บสูตรและคําสงั่ ได ้อย่างพลิกแพลงมากยิง่ ขึน
้ โดยเฉพาะการเลือกใสเ่ ครือ
่ งหมาย
$ ให ้กับตําแหน่งอ ้างอิงนัน
้ ไม่วา่ จะเป็ น $ ในเซลล์สต
ู ร, $ ใน Conditional Format, $ ใน
Data Validation, หรือ $ ในในเครือ ่ ๆของ Excel ก็ตาม ผมถือว่า $ เป็ นหัวใจของการใช ้
่ งมืออืน
Excel ทีเดียว
ตงหล
ั้ ักก ันก่อนว่าจะใช ้ Excel อย่างคอมพิวเตอร์
แน่นอนทีส
่ ด
ุ ว่าเครือ
่ งคอมพิวเตอร์ยอ
่ มทํางานเร็วกว่าเครือ
่ งคิดเลข และเครือ
่ งคอมพิวเตอร์รน
ุ่
ใหม่ยอ
่ มทํางานได ้เร็วกว่าเครือ ุ่ เก่า ยิง่ ใช ้ Excel ทีต
่ งคอมพิวเตอร์รน ิ ตัง้ บนเครือ
่ ด ่ งคอมพิวเตอร์
รุน ้ ซงึ่ ถ ้าใครหลงเข ้าใจว่าตัวเองใช ้ Excel
่ ล่าสุด ก็ยงิ่ ได ้คําตอบผลลัพธ์จากการคํานวณเร็วขึน
แบบคอมพิวเตอร์เป็ นอยูแ
่ ล ้วเพียงเพราะดูจากความเร็วของเครือ ้ ่ ก็เป็ น
่ งคอมพิวเตอร์ทใี่ ชอยู
ความเข ้าใจทีถ ู ต ้องเพียงบางสว่ น (และเป็ นสว่ นทีไ่ ม่สําคัญเท่าใดเสย
่ ก ี ด ้วย) เพราะถ ้าคุณใช ้
Excel อย่างคอมพิวเตอร์เป็ น ต่อให ้ยกเครือ
่ งคอมพิวเตอร์รน
ุ่ โบราณทีท ้ นเต่า ก็จะ
่ ํางานชาเป็
ี เวลาต่างกันมากนัก
พบว่าคุณไม่ได ้เสย
Copyright of www.ExcelExpertTraining.com
10
้
2. หากจําเป็ นต ้องแก ้ไข ต ้องสามารถแก ้ไขปรับปรุงแฟ้ มได ้ง่าย ใชเวลาไม่
มาก และไม่
สง่ ผลกระทบต่อการคํานวณเดิมทีถ
่ ก
ู ต ้องอยูแ
่ ล ้ว ทัง้ นีไ
้ ม่วา่ จะกําหนดให ้ผู ้ทีท
่ ําหน ้าที่
้ คือคุณซงึ่ เป็ นผู ้สร ้างแฟ้ มนัน
แก ้ไขนัน ่ ซงึ่ ไม่เคยใชแฟ้
้ เอง หรือแม ้แต่จะเป็ นผู ้อืน ้ มนัน
้ มา
ก่อนก็ตาม
3. สามารถลดจํานวนคนและไม่ต ้องเพิม
่ อัตรากําลังคนตามปริมาณงานทีเ่ พิม
่ ขึน
้
4. ประหยัดเงินลงทุน เพราะไม่ต ้องจ่ายเพือ ื้ เครือ
่ ซอ ่ งหรือโปรแกรมคอมพิวเตอร์รน
ุ่ ใหม่
5. คุณต ้องมีความสุขและมีเวลาว่างให ้กับชวี ต
ิ มากขึน
้
ในโครงสร ้างของตัวสูตรฉลาดอาจใชวิ้ ธก
ี ําหนดตําแหน่งอ ้างอิงแบบเซลล์เดียวหรือแบบกําหนด
ขอบเขตตารางก็ได ้ โดยไม่วา่ จะใชวิ้ ธใี ดก็หลีกหนีการกําหนดตําแน่งอ ้างอิงทีม
่ เี ครือ
่ งหมาย $
กํากับตําแหน่ง 3 แบบต่อไปนีไ
้ ปไม่พ ้น
Copyright of www.ExcelExpertTraining.com
11
เพือ
่ คงตําแหน่ง Column A ไว ้ตามเดิมตลอด ไม่วา่ จะ Copy นํ าสูตรไป Paste ที่
ตําแหน่งอืน
่ ก็ตาม
วิธส
ี ร ้างสูตรให ้มีตําแหน่งอ ้างอิงทีม
่ เี ครือ
่ งหมาย $ นํ าหน ้าตําแหน่งของ Row และหรือ Column
นี้ ให ้ใชวิ้ ธ ี Pointing แล ้วกดปุ่ ม F4 ซํ้าไปเรือ
่ ยๆจนกว่าจะได ้ตําแหน่ง $ ตามต ้องการ
1. ให ้เริม
่ จากพิมพ์เครือ
่ งหมายเท่ากับ = ลงไปในเซลล์ทต
ี่ ้องการสร ้างสูตร (เพือ
่ แสดงการ
ยึดครองเซลล์นัน
้ ไว ้ก่อนว่า เป็ นเซลล์ทจ
ี่ ะรับสูตรลงไปเมือ
่ เรากดปุ่ ม Enter)
้ ใชวิ้ ธช
2. จากนัน ี้ งไปในเซลล์ทต
ี ล ี่ ้องการ (Pointing แปลว่า ช)ี้ โดยใช ้ Mouse คลิกเลือก
เซลล์ทต
ี่ ้องการ ไม่วา่ จะอยูต ี หรือต่างแฟ้ มกันก็ตาม เชน
่ า่ งชท ่ คลิกทีเ่ ซลล์ A1 จะได ้
สูตร =A1
3. จากนัน
้ ให ้กดปุ่ ม F4 ไปเรือ
่ ยๆ จะพบว่ามีเครือ
่ งหมาย $ แทรกลงในสูตรให ้เองตามลําดับ
ทีม
่ ก
ี ารกดปุ่ ม F4 ดังนี้ A1 Æ $A$1 Æ A$1 Æ $A1 Æ A1 Æ แล ้วจะมีเครือ
่ งหมาย $
วนซํ้าไปอีก
4. เมือ
่ ได ้ตําแหน่ง $ ควบคุมตําแหน่ง Row และหรือ Column ตามต ้องการแล ้วให ้กดปุ่ ม
่ รับสูตรลงไปในเซลล์ แล ้วจะพบว่า Excel จะพากลับมาทีเ่ ซลล์ซงึ่ พิมพ์
Enter เพือ
เครือ
่ งหมายเท่ากับนํ าหน ้าสูตรเอาไว ้ตัง้ แต่แรกนั่นเอง
การใสเ่ ครือ
่ งหมาย $ เพือ
่ เป็ นการควบคุมตําแหน่งอ ้างอิงไว ้ไม่ให ้เขยือ
้ นนี้ นอกเหนือจากการทํา
้
ให ้คุณสามารถ Copy สูตรไปใชในเซลล์
อน ่ งน่าสงั เกตว่าชว่ ยทําให ้แฟ้ ม
ื่ ได ้ทันทีแล ้ว ยังเป็ นเรือ
มีขนาดเล็กลงกว่าแฟ้ มทีม
่ ส ู รซงึ่ ไม่ม ี $ กําหนดไว ้เลย (ขอให ้ทดลองลบเครือ
ี ต ่ งหมาย $ ทิง้
่ เปรียบเทียบดูขนาดแฟ้ ม โดยใชคํ้ าสงั่ Replace เครือ
จากสูตรในตารางขนาดใหญ่เพือ ่ งหมาย $
แต่ไม่ได ้ Replace with ด ้วยเครือ
่ งหมายใด)
Copyright of www.ExcelExpertTraining.com
12
้ ําแหน่งอ้างอิงเซลล์เดียว
ต ัวอย่าง Smart Formula แบบใชต
ขัน
้ ตอนการสร ้าง
1. เริม
่ จากเลือกเซลล์ C3 แล ้วพิมพ์เครือ
่ งหมายเท่ากับ = ลงไป
2. จากนัน
้ คลิกเซลล์ C2 จะได ้สูตร =C2
3. กดปุ่ ม F4 เพือ
่ เปลีย
่ นสูตรให ้เป็ น =C$2
4. พิมพ์เครือ
่ งหมายคูณ *
5. จากนัน
้ คลิกเลือกเซลล์ B3 จะได ้สูตร =C$2*B3
6. กดปุ่ ม F4 เพือ
่ เปลีย
่ นสูตรเป็ น =C$2*$B3
7. กดปุ่ ม Enter เพือ
่ รับสูตรลงไปในเซลล์ C3
8. Copy ไปทับตาราง C3:F5
คําอธิบาย
Copyright of www.ExcelExpertTraining.com
13
้ ําแหน่งอ้างอิงตามขอบเขตพืน
ต ัวอย่าง Smart Formula แบบใชต ้ ทีห
่ ัว
ตาราง
วิธก
ี ารสร ้างคล ้ายกับวิธแ
ี รก แทนทีจ
่ ะคลิกเลือกเซลล์ C2 หรือเซลล์ B3 วิธน
ี ใี้ ห ้คลิกเลือกเซลล์
C2:F2 และ B3:B5 ซงึ่ เป็ นหัวตารางด ้านบนและด ้านซายทั
้ ง้ หมด แล ้วกดปุ่ ม F4 เพือ
่ ทําให ้เกิด
สูตร =$C$2:$F$2*$B$3:$B$5
1. เริม
่ จากเลือกเซลล์ C3 แล ้วพิมพ์เครือ
่ งหมายเท่ากับ = ลงไป
2. จากนัน
้ คลิกเลือกเซลล์บนหัวตารางด ้านบนจากเซลล์เลข 2 - 5 จะได ้สูตร =C2:F2
Copyright of www.ExcelExpertTraining.com
14
3. กดปุ่ ม F4 เพือ
่ เปลีย
่ นสูตรให ้เป็ น =$C$2:$F$2
4. พิมพ์เครือ
่ งหมายคูณ *
5. จากนัน ้
้ คลิกเลือกเซลล์บนหัวตารางด ้านซายจากเซลล์
เลข 10 - 30 จะได ้สูตร
=$C$2:$F$2*B3:B5
6. กดปุ่ ม F4 เพือ
่ เปลีย
่ นสูตรเป็ น =$C$2:$F$2*$B$3:$B$5
7. กดปุ่ ม Enter เพือ
่ รับสูตรลงไปในเซลล์ C3
8. Copy ไปทับตาราง C3:F5
คําอธิบาย
Copyright of www.ExcelExpertTraining.com
15
ขัน
้ ตอนการสร ้าง
1. แทนทีจ
่ ะเลือกเซลล์ C3 เพียงเซลล์เดียว คราวนีใ้ ห ้เลือกพืน
้ ทีต
่ ารางจากเซลล์ C3:F5
ทัง้ หมดพร ้อมกันไว ้ก่อน
2. จากนัน
้ พิมพ์เครือ
่ งหมายเท่ากับ =
3. คลิกเลือกเซลล์ C2:F2 บนหัวตาราง จะได ้สูตร =C2:F2
4. พิมพ์เครือ
่ งหมายคูณ *
5. คลิกเลือกเซลล์ B3:B5 จากข ้างตาราง จะได ้สูตร =C2:F2*B3:B5
6. จากนัน
้ แทนทีจ
่ ะกดปุ่ ม Enter ให ้กดปุ่ ม Ctrl+Shift+Enter พร ้อมกันทีเดียว 3 ปุ่ ม จะ
ทําให ้เกิดเครือ
่ งหมายวงเล็บปี กกาปิ ดหัวท ้ายสูตรให ้เองกลายเป็ น {=C2:F2*B3:B5}
คําอธิบาย
• สาเหตุทต
ี่ ้องเลือกพืน
้ ทีต
่ าราง C3:F5 ไว ้ก่อนแทนการเลือกเซลล์ C3 เพียงเซลล์เดียว
เพือ
่ ทําให ้ผลลัพธ์ทไี่ ด ้จากสูตร Array คืนค่ากระจายคําตอบลงไปในตารางให ้ครบทุก
ตําแหน่ง
• ลองใช ้ Mouse คลิกลงไปในชอ
่ ง Formula Bar เลือกเฉพาะสว่ นของสูตร C2:F2 แล ้ว
กดปุ่ ม F9 จะพบว่าตําแหน่งอ ้างอิงสว่ นนีเ้ ปลีย
่ นเป็ น {2,3,4,5} จากนัน
้ ให ้กดปุ่ ม Esc
เพือ
่ คืนสภาพสูตรตามเดิม
Copyright of www.ExcelExpertTraining.com
16
Copyright of www.ExcelExpertTraining.com
17
วิธค
ี น
้ หาสูตร
เมือ
่ เจอปั ญหาในงาน ให ้ค่อยๆวิเคราะห์ปัญหาทีละขัน
้ ตอน แบ่งปั ญหาแยกออกเป็ นขัน
้ ๆ
ิ ใจ ควรลองสร ้างแนวทางแต่ละขัน
ตามลําดับการคํานวณ ตามลําดับการตัดสน ้ ลงบนกระดาษ
่ จัดลําดับการสง่ ค่าไปทีละขัน
ก่อน เพือ ้ ให ้ถูกต ้อง แล ้วลองใชมื้ อ ใชเครื
้ อ ่ งคิดเลข คิดคํานวณ
อย่างคร่าวๆก่อนว่า จะใชสู้ ตรคํานวณอย่างไร และได ้ผลลัพธ์ออกมาเป็ นเท่าใด
ปั ญหานีท ้
้ ําให ้ง่ายลง โดยใชเลขตั
วกลมแทนตัวเลขจริงไปก่อน ลองคํานวณต ้นทุน 100 บาท
แทน 127 บาท ลองกําหนดกําไรเป็ น 10% แทน 13.45% จะคํานวณได ้ผลลัพธ์งา่ ยขึน
้ จริง
ไหม
แทนทีจ ี เงินซอ
่ ะเสย ื้ หนังสอ
ื เรือ
่ งสูตร ให ้เปิ ดดูจาก Excel Help ซงึ่ ติดมากับโปรแกรม Excel อยู่
ื เรือ
แล ้ว (หนังสอ ่ ายกัน สว่ นมากมักลอกคําอธิบายจาก Excel Help ไปใช ้ มีน ้อยเล่ม
่ งสูตรทีข
มากทีเ่ ขียนอธิบายด ้วยตัวเอง)
Copyright of www.ExcelExpertTraining.com
18
วิธท ื่ สูตร
ี ี่ 1 ค้นหาตามชอ
เลือกเซ
ซลล์วา่ งๆทียั
ย่ งั ไม่มส
ี ต คํ้ าสงั่ Formulas > Insert Functioon หรือคลิกที
ู รใดๆ แล ้วใชค ก ป ่ ม ุ่ fx
บน Forrmula Bar
ถ ้าไม่รว่
ู ้ว่าสูตรนัน
้ ๆอ
อยูใ่ นกลุม
่ ไห
หน ให ้คลิก
เลือก A ่ ง se
All ในชอ elect a category แล ้ว
คลิกลงไ ่ ง Select
ไปในชอ S a fun
nction ตรง
สูตรใดก็
ก็ได ้ แล ้วพิมพ์
ม ตวั อักษรนํ าของสูตร
นัน ไป Excel จะเลือ
้ ๆลงไ ่ นไปหา ื่ สูตรตาม
าชอ ม
ตัวอักษ ่ ้องการใให ้ทันที สว่ นด ้านล่างใต
ษรทีต ต้
จอจะแส
สดงรูปแบบข ่ ําวว่า
ของสูตร หรืรือคลิกทีค
Help on
n this funcction ด ้านล่างซ ้ ดเพื
า ายสุ พือ่
เปิ ดดูราายละเอียดของสูตร
เมือ
่ เปิ ด
ดสูตรทีต
่ ้องก
การ แล ้วเลือนจอไปด
อ่ ้าน
นล่าสุด ใหคลิ
้ค กคําว่า See Also เพื
พอเปิ
่ ื่ ตรที่
ดรายชอสู
อ
เกีย
่ วของกั
้อ น
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
19
ให ้เริม
่ พิมพ์ = ตาม ื่ สูตรที
มด ้วยชอ ร ต ้
่ ้องการใใชงานก่
อน แล ้วกดปุ่ ม Ctrl+a
C ่ อเปิ ด Help สําหรับ
เพือ
ชว่ ยเลือ
อกตัวแปรใน
นสูตรให ้เอง
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
20
วิธท
ี ี่ 4 ค้นหาข้อ
้ จําก ัดของสูตร
เมือ
่ เปิ ด
ดดูรายละเอียดของสู
ย ตรใใน Excel Heelp แล ้วให ้ดู้ ข ้อจํากัดของสู
ข ks ซงึ่
ตรได จ้จ าก Remark
อธิบายข
ข ้อแม ้หรือข ้อจํ
้ ากัดในก ้
การใชงานขอ
องสูตรเอาไว ้
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
21
วิธแ
ี กะสูตร
=INDEX(Begin,COUNTIF(Cum_Hour,"<"&(I10+((INDEX(Cum_Hour,MATCH(VLOOKU
P(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH(VLOOKUP(J10,Begin,1)
,Begin,1),1))+((J10-VLOOKUP(J10,Begin,1))*24))))+1,1)+(((I10+((INDEX(
Cum_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH
(VLOOKUP(J10,Begin,1),Begin,1),1))+((J10 - VLOOKUP(J10, Begin, 1))*24)))-
(INDEX(Cum_Hour,(COUNTIF(Cum_Hour,"<"&(I10+((INDEX (Cum_Hour,MATCH(
VLOOKUP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH( VLOOKUP(J10,
Begin,1),Begin,1),1))+((J10-VLOOKUP(J10,Begin,1))*24))))+1),1)-INDEX(
Working_Hour,(COUNTIF(Cum_Hour,"<"&(I10+((INDEX(Cum_Hour,MATCH(VLOOK
UP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH(VLOOKUP(
J10,Begin,1),Begin,1),1))+((J10-VLOOKUP(J10,Begin,1))*24))))+1),1)))/24)
• ่ จากสงั เกตเครือ
เริม ่ งหมายเท่ากับ เครือ ่ งหมายวงเล็บ และเครือ ่ งหมายลูกนํ้ า ซงึ่ เป็ น
องค์ประกอบแยกโครงสร ้างของสูตร
• สงั เกตตัวอักษรตัวใหญ่ เป็ นชอ ื่ สูตรและตําแหน่งอ ้างอิง
• เมือ ่ กดปุ่ ม F2 หรือคลิกลงไปในสูตรบน formula bar จะพบว่า Excel เปลีย ่ นสแี ต่ละ
สว่ นของสูตร พร ้อมกับมีกรอบสต ี รงกันล ้อมรอบเซลล์ เพือ ่ ชใี้ ห ้เห็นตําแหน่งของ
เซลล์ซงึ่ ถูกนํ าไปอ ้างอิงในสูตร
• ให ้คลิกลงบนสูตร แล ้วใชแป้ ้ นพิมพ์เลือ ่ นลูกศรผ่านเครือ
่ งหมายวงเล็บ จะพบว่า
เครือ ่ งหมายวงเล็บคูก ่ นั ทัง้ ด ้านหน ้าและด ้านหลัง จะเปลีย ่ นเป็ นสด ี ําเข ้มประมาณ 2
วินาที เพือ ่ บอกว่าเป็ นวงเล็บคูเ่ ดียวกัน
• เมือ่ พบวงสูตรทีเ่ ป็ นวงเล็บชุดเดียวกันแล ้ว ให ้คลิกเลือกสูตรนัน ้ ในชอ ่ ง Formula
Bar แล ้วกดปุ่ ม F9 จะเห็นผลลัพธ์เฉพาะสว่ นทีเ่ ลือกไว ้ แล ้วให ้กดปุ่ ม Esc เพือ ่
ย ้อนกลับไปแสดงสูตรตามเดิม
• ให ้ double คลิกลงไปในเซลล์สต ู ร จะพบว่า Excel ย ้ายตําแหน่งตัวชไี้ ปเลือกเซลล์
ต ้นทางทีใ่ ชในสู ้ ตร ทัง้ นีต ้ ้องตัดกาชอ ่ ง Allow editing directly in Cells ในคําสงั่
File > Options > Advanced ไว ้ก่อน และเมือ ่ ไปยังเซลล์ต ้นทางแล ้วหากต ้องการ
ย ้ายกลับมายังเซลล์สต ู รเดิม ให ้กดปุ่ ม F5 แล ้วกดปุ่ ม Enter
• ควรใสว่ รรคระหว่างเครือ ่ งหมายทีใ่ ชในสู ้ ตร เพือ ่ แยกให ้ห่างออกจากกัน จะได ้
สะดวกในการแกะสูตร หากต ้องการแยกสูตรขึน ้ บรรทัดใหม่ในสูตรเดิม ให ้กด
Alt+Enter
• หากอยูร่ ะหว่างการแก ้ไขสูตร แต่ยงั แก ้ไขไม่เสร็จ ให ้พิมพ์เครือ ่ งหมายคําพูดใส่
ด ้านหน ้าเครือ ่ งหมายเท่ากับ เพือ ่ ทําให ้สูตรกลายเป็ นตัวอักษรไปก่อน หากไม่ใชวิ้ ธน ี ี้
ต ้องคอยระวังอย่ากด Enter เพราะ Excel จะรับสูตรลงไปและเตือนข ้อผิดพลาดหรือ
แก ้ไขสูตรต่างไปจากทีต ่ ้องการ
Copyright of www.ExcelExpertTraining.com
22
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
23
วิธส ้ นสูตร
ี ร้างสูตรซอ
้ นสูตร
หล ักการสร้างสูตรซอ
วิธส ้ นสูตร
ี ร้างสูตรซอ
จากนัน
้ จึงสร ้างสูตรอืน ่ นํ าผลลัพธ์จากสูตร Match ไปใช ้ เชน
่ คร่อมข ้างนอกเพือ ่
Copyright of www.ExcelExpertTraining.com
24
=IF(คะแนน>80,"A","BC")
=IF(คะแนน>80,"A",IF(คะแนน>50,"B","C"))
้
ถ ้าไม่ถนัดสร ้างสูตรต่อกันซอนกั
นไปเลยทีเดียว ให ้สร ้างสูตรแยกแต่ละขัน
้ ตอนออกไปลงใน
เซลล์แยกจากกันก่อน แล ้วจึง copy ตัวสูตร ไป paste ทับในตําแหน่งอ ้างอิง เชน่
A1: =NOW()
A2: =DAY(A1)
้
ให ้ copy สูตร NOW() จากเซลล์ A1 ไปทับคําว่า A1 ในเซลล์ A2 จะได ้สูตรซอนกั
นเป็ น
=DAY(NOW())
Copyright of www.ExcelExpertTraining.com
25
วิธส
ี ร้างชอ ้ นชอ
ื่ ซอ ื่
วิธน ื่ ทีต
ี ํ าชอ ่ งั ้ ไว ้มาใสใ่ นสูตร ให ้กดปุ่ ม F3 เพือ ื่ ทีต
่ เลือกชอ ่ งั ้ ไว ้ เพือ
่ สร ้างสูตรลงไปในเซลล์กอ
่ น
แล ้วจึง Copy สูตรไปใสต ่ อ ่ งสูตรของ Define Name
่ ในชอ
้
เวลาใชงานก็ ื่ Calc14 ไปใชเท่
นําสูตรชอ ้ านัน
้ ก็จะคํานวณสูตรทัง้ หมดตัง้ แต่ Calc1 – Calc13
ให ้อัตโนมัต ิ
Copyright of www.ExcelExpertTraining.com
26
เรือ
่ งทีไ่ ม่คอ
่ ยรูก
้ ันเกีย
่ วก ับสูตร
ทําอย่างไรให้เก่งสูตร Excel
ื้ หนังสอ
1. ไม่จําเป็ นต ้องซอ ื เกีย
่ วกับสูตร เพียงแค่เปิ ดโปรแกรม Excel แล ้วกดปุ่ ม F1 ก็จะ
เปิ ด Excel Help ขึน ื้ หนังสอ
้ มาค ้นหาสูตรที่ Excel มีอยูไ่ ด ้แล ้ว ถ ้าคุณต ้องการซอ ื
เกีย ื้ หนังสอ
่ วกับสูตร ขอให ้หาซอ ื ทีอ
่ ธิบายเรือ ่ ใี น Help (ซงึ่ หา
่ งสูตรได ้ละเอียดกว่าทีม
ื มักเขียนอธิบายต่างจาก Help ไม่มาก)
ได ้ยากมาก เพราะคนแต่งหนังสอ
ื้ หนังสอ
2. ถ ้าซอ ื Excel มาแล ้ว ขอให ้เปิ ดอ่านตัง้ แต่หน ้าแรกจนถึงหน ้าสุดท ้ายโดยไม่ต ้อง
เปิ ดคอมพิวเตอร์ เพราะถ ้ามัวเปิ ดอ่านไปทําตัวอย่างไปบนหน ้าจอพร ้อมกัน กว่าจะอ่าน
้ นปี ครึง่ (ซงึ่ Excel จะมีรน
หมดเล่มก็จะใชเวลาเกิ ้
ุ่ ใหม่ให ้พวกเราได ้ใชงานกั
นประมาณ
Copyright of www.ExcelExpertTraining.com
27
ื้ หนังสอ
ทุกปี ครึง่ แล ้วคุณจะต ้องซอ ื Excel รุน
่ ใหม่มาตัง้ ต ้นอ่านกันตัง้ แต่หน ้าแรกกันใหม่
ั ที)
อีก สุดท ้ายก็ไม่สามารถรู ้จัก Excel ครบทัง้ หมดสก
ื้ หนังสอ
3. ถ ้ายังไม่ได ้ซอ ื ขอให ้ไปที่ www.xlfdic.com ซงึ่ จะมีแฟ้ มตัวอย่างการใชสู้ ตร
ึ ษากันได ้ฟรี
Excel กว่า 150 สูตรให ้ download มาศก
4. ขอให ้พยายามรอบรู ้ก่อนรู ้ลึก คุณควรรอบรู ้ไว ้ก่อนว่า Excel มีสต
ู รอะไรบ ้าง จากนัน
้ เมือ
่
้
ถึงเวลาทํางานจึงค่อยใชเวลารู ้ลึกเรียนรู ้สูตรแต่ละสูตรให ้คล่องในภายหลัง
5. ตัง้ หลักไว ้เลยว่า Excel มีสต
ู รทีค ุ สามารถนํ ามาใชกั้ บงานทุกอย่างของคุณได ้อยูแ
่ ณ ่ ล ้ว
ถ ้าไม่มส ู รสําเร็จรูปทีค
ี ต ่ ํานวณลัดหาคําตอบได ้โดยตรง ให ้หาทางนํ าสูตรหลายสูตรมาใช ้
งานร่วมกัน
6. เริม ่ ดลองใชสู้ ตร ควรใชกั้ บโจทย์งา่ ยๆทีท
่ แรกทีท ่ ราบคําตอบทีถ
่ ก
ู ต ้องอยูแ
่ ล ้ว จะได ้
เข ้าใจหลักการคํานวณที่ Excel ใชว่้ ามีขน
ั ้ ตอนการคิดคํานวณอย่างไร และเมือ
่ ได ้
่ ราบ จะชว่ ยทําให ้คุณเกิดความมัน
คําตอบตรงกับทีท ่ ใจ และเกิดความกล ้าทีจ
่ ะนํ าสูตรไป
้
ใชในปั ญหาอืน
่ ต่อไป ลองคิดดูวา่ =2*3 กับ =123*4.56 สูตรใดทีง่ า่ ยกว่ากัน
7. ถ ้าสูตรคํานวณได ้คําตอบอืน
่ ต่างจากทีต
่ ้องการ อย่าคิดว่าตัวเองสร ้างสูตรผิด แต่ควร
พยายามคิดค ้นหาให ้ได ้ว่าคําตอบทีไ่ ด ้นัน
้ หมายถึงการคํานวณของอะไร หลายๆครัง้
ทีเดียวทีค
่ ณ
ุ จะได ้สูตรลัดและลับแปลกๆทีค
่ นอืน
่ ไม่รู ้จักกัน
8. อย่ารีรอทีจ
่ ะสร ้างสูตรให ้เห็นผลลัพธ์กบ
ั ตาว่าถูกหรือผิด ถ ้าคุณเอาแต่กลัวๆกล ้าๆไม่ยอม
ั ทีก็จะไม่มวี น
สร ้างสูตรสก ั เก่งสูตรได ้หรอก ขอให ้สร ้างสูตรบ่อยๆ สูตรทีผ
่ ด
ิ หรือถูก
เหล่านัน
้ จะเป็ นบทเรียนสอนคุณให ้เก่งกว่าคนอืน
่ ทีไ่ ม่เคยยอมทําผิด
ั ซอนยากมาก
9. ถ ้าปั ญหาการคํานวณซบ ้ ้
ควรแยกเซลล์ให ้ใชเซลล์
หลายๆเซลล์แยก
คํานวณสูตรแต่ละขัน
้ จากนัน
้ จึงค่อยหาวิธน
ี ํ าสูตรมาต่อกันเป็ นสูตรยาวๆสูตรเดียวใน
เซลล์เดียว
10. พยายามหาทางแก ้ปั ญหาสร ้างสูตรด ้วยตัวเองให ้ได ้ ถ ้าทําได ้เองแล ้วคุณจะเกิดความ
ภาคภูมใิ จ เกิดความกล ้าและอยากลอง ทําให ้เก่งขึน ่ มาใช ้
้ ไปได ้เอง อย่าลอกสูตรคนอืน
่ ะเอ่ย
ถ ้าพยายามอย่างไรแล ้วคิดสูตรไม่ออก ขอให ้ค ้นหาคําตอบจาก Google ก่อนทีจ
ปากถามใคร
Copyright of www.ExcelExpertTraining.com
28
Formula vs Function
ทัง้ สองคํานีถ
้ ้าแปลเป็ นไทยก็แปลว่า “สูตร” เหมือนกัน โดยคําว่า Formula เป็ นคําทีม
่ ี
ความหมายกว ้างกว่า Function กล่าวคือ
ดังนัน
้ เพือ ้ ะใชคํ้ าว่า สูตร ซงึ่ หมายถึงทัง้ Formula และ
่ ทําความเข ้าใจให ้ตรงกัน ในบทความนีจ
ื อะไรก็ตามทีม
Function หรืออีกนัยหนึง่ สูตรก็คอ ่ งหมาย = นํ าหน ้า สว่ นตัวผมเองจะเขียน
่ เี ครือ
่ งสูตรในกระดาษโดยใชตั้ วใหญ่ปนตัวเล็ก เชน
อธิบายเรือ ่ Sum หรือ VLookup เพือ
่ ชว่ ยให ้อ่าน
แต่ละคําของสูตรได ้ง่าย แต่เมือ ้ Excel โปรดพิมพ์สต
่ ถึงคราวนํ าไปใชใน ู รด ้วยตัวเล็กทัง้ หมด
เสมอ
Text vs Number
ค่าทีพ
่ ม
ิ พ์บน
ั ทึกลงไปในเซลล์หรือผลจากการคํานวณมีอยูเ่ พียง 3 อย่างคือ ค่าทีถ
่ อ
ื เป็ นText
ค่าทีถ ื เป็ น Number และค่าที่ error ไม่สามารถนํ าไปใชคํ้ านวณต่อได ้
่ อ
Copyright of www.ExcelExpertTraining.com
29
o #N/A เมือ
่ สูตรหาข ้อมูลทีต
่ ้องการไม่พบ (Not Available)
o #NAME? เมือ ื่ ทีต
่ สูตรหาชอ ่ =answer โดยทีใ่ นแฟ้ มนัน
่ ้องการไม่พบ เชน ้
ื่ Range Name ว่า answer ไว ้ก่อน
ไม่ได ้ตัง้ ชอ
o #NULL! เมือ
่ สูตรหาตําแหน่งทีต
่ ด ่ =A:A B:B
ั กันไม่ได ้ เชน
่ สูตรใชตั้ วเลขทีเ่ ป็ นไปไม่ได ้ในการคํานวณ เชน
o #NUM! เมือ ่ =Sqrt(-1)
o #REF! เมือ
่ ตําแหน่งเซลล์ทเี่ คยอ ้างไว ้ในสูตรถูก delete ทิง้ ไป
o #VALUE! เมือ ่ นํ าตัวเลขคูณตัวอักษร =123*a
่ สูตรไม่สามารถคํานวณได ้ เชน
ขนาดแฟ้ม vs ประเภทข้อมูล
ขนาดของแฟ้ มขึน
้ กับประเภทของข ้อมูล โดยเรียงลําดับขนาดแฟ้ มจากเล็กไปใหญ่ได ้ตามนี้
่ 1, 111, 123
1. แฟ้ มทีเ่ ก็บข ้อมูลเป็ น Number เชน
่ a, aaa, abc
2. แฟ้ มทีเ่ ก็บข ้อมูลเป็ น Text เชน
3. แฟ้ มทีเ่ ก็บข ้อมูลเป็ นสูตรทีค
่ น ่ =1, =111, =123
ื ค่าเป็ น Number เชน
4. แฟ้ มทีเ่ ก็บข ้อมูลเป็ นสูตรทีค
่ น ่ =”a”, =”aaa”, =”abc”
ื ค่าเป็ น Text เชน
ทีแ
่ ปลกก็คอ
ื ขนาดของแฟ้ ม ไม่ขน ่ ถ ้าเซลล์มค
ึ้ กับความยาวของค่าในเซลล์ เชน ี า่ ทีบ
่ น
ั ทึกไว ้
่ ความยาวตัวเลขเป็ น 111 หรือ 123 ก็จะมีขนาดแฟ้ มเท่ากันกับ 1 ตัวเดียว หรือ
เป็ น 1 หรือเพิม
ถ ้าสร ้างเป็ นสูตร =1 หรือเพิม
่ ความยาวตัวเลขเป็ น =111 หรือ =123 จะมีขนาดแฟ้ มเท่ากันกับ
=1
ดังนัน
้ ถ ้าต ้องการลดขนาดแฟ้ มให ้เล็กทีส
่ ด
ุ แทนทีจ
่ ะพิมพ์เลข 1 แล ้วสร ้างสูตรบวกเลขต่อกันไป
ทีละเซลล์ให ้กลายเป็ นลําดับตัวเลข 1, 2, 3, 4, 5 ก็ควรพิมพ์เลขลงไปในเซลล์โดยตรงแทน
การสร ้างสูตร และสูตรใดๆทีค
่ ํานวณเสร็จเรียบร ้อยไปแล ้วและไม่มก
ี ารเปลีย
่ นแปลงคําตอบต่าง
จากเดิมอีกแล ้ว เราก็ควร Copy แล ้ว Paste Special ให ้กลายเป็ น Value จะทําให ้แฟ้ มเล็กลง
ไปมากทีเดียว
Copyright of www.ExcelExpertTraining.com
30
ซงึ่ ตัวผมเอง นิยมใชสู้ ตร =IF( IsError(A1), 0, A1) ทัง้ ในกรณีทเี่ ดิมคืนค่าเป็ น Number หรือ
Text ก็ตาม เพราะสามารถใช ้ Format ปรับการแสดงเลข 0 ให ้แสดงเป็ นค่าอืน
่ หรือแม ้แต่ทําให ้
ดูเหมือนกลายเป็ นเซลล์วา่ งได ้ต่อไป
วิธท
ี ดสอบสูตรทีค
่ ณ
ุ หรือใครสร ้างขึน ้ ้หรือไม่ ให ้ทดลองย ้ายเซลล์สต
้ ว่าเป็ นสูตรทีใ่ ชได ู รไปทีอ
่ น
ื่
ย ้ายไปเรือ ้ ทดลองย ้ายตารางข ้อมูลทีใ่ ชอ้ ้างอิงไปทีอ
่ ยๆหลายๆตําแหน่ง พร ้อมกันนัน ่ น
ื่ ด ้วย ลอง
Insert Row หรือ Column แทรกตารางข ้อมูลเข ้าไปอีก ถ ้าสูตรนัน
้ ยังคงหาคําตอบได ้
เหมือนเดิม แสดงว่าสูตรนัน ้
้ ใชงานได ้
สาเหตุทห
ี่ ้าม เพราะการสร ้างสูตรใดๆทีม
่ ต
ี ําแหน่งอ ้างอิงไปยังค่าในแนวเดียวกับตารางข ้อมูล
อาจคืนค่าเป็ นคําตอบเป็ นค่าในตารางตามแนวเดียวกันก็ได ้
Copyright of www.ExcelExpertTraining.com
31
หากสร ้างสูตรในเซลล์ซงึ่ ไม่ได ้อยูใ่ นแนวเดียวกับชว่ ง Column B ถึง D และชว่ ง Row 2 ถึง 5
แล ้วคุณหาทางปรับสูตรนัน
้ ให ้คํานวณหาคําตอบทีต
่ ้องการ ย่อมรับประกันได ้ว่า สูตรนัน
้ เป็ นสูตร
้
ทีใ่ ชงานได ้จริงและจะยังคงคืนค่าเป็ นคําตอบเดิมไปตลอด ไม่วา่ จะย ้ายเซลล์สต
ู รไปทีต
่ ําแหน่ง
อืน
่ ก็ตาม
สูตรก็มจ
ี ังหวะหายใจด้วยนะ
่ เซลล์ C2 ซงึ่ เป็ นเลขตัวหารมีคา่ เป็ น 0 ให ้คืนค่า 0 เป็ นตัวเลขคําตอบแทน แต่ถ ้าเซลล์ C2
เมือ
ไม่ได ้เป็ นเลข 0 ก็ยอ
่ มนํ า C2 มาหาร B2 ได ้ตามปกติ ผู ้ทีส
่ ร ้างสูตรหารกันจะหลีกเลีย
่ งสูตร
ดังกล่าวนีไ
้ ม่ได ้
ขอถามว่า เวลาทีค
่ ณ
ุ สร ้างสูตร คุณมีพฤติกรรมในการสร ้างสูตรกันอย่างไร คุณจะพิมพ์ลงไปใน
เซลล์วา่ =if(c2=0,0,b2/c2) รวดเดียวให ้ครบทัง้ หมดแล ้วจึงกดปุ่ ม Enter หรือไม่ หรือจะค่อยๆ
ื กหนึง่ จึง
พิมพ์ =if แล ้วหยุดหายใจพักหนึง่ แล ้วจึงพิมพ์ c2=0 ต่อ แล ้วก็หยุดพักหายใจอีกเฮอ
ค่อยๆพิมพ์สว่ นทีเ่ หลือต่อ
Copyright of www.ExcelExpertTraining.com
32
ขอยกสูตรทัง้ หมดมาดูกน
ั อีกครัง้
=IF(C2=0, 0, B2/C2)
มาดูกน
ั ว่าถ ้าเป็ นวิธข
ี องผม จะสร ้างสูตรนีโ้ ดยหยุดพักเพือ
่ หายใจกันตรงไหนบ ้าง เอ ้าหายใจเข ้า
แล ้วนะ จากนัน ่ สร ้างสูตรโดยใชวิ้ ธต
้ เริม ี ามลําดับต่อไปนี้
1. พิมพ์เครือ
่ งหมายเท่ากับ
2. พิมพ์คําว่า if(
3. หยุดเพือ
่ หายใจ จากนัน
้ สร ้างสูตรต่อด ้วยขัน
้ ต่อไป
์ ลิกเซลล์ C2
4. หยิบเมาสค
5. แล ้วพิมพ์ =0, ต่อ
6. หยุดเพือ
่ หายใจ
7. ในใจอ่านสูตรทีไ่ ด ้ตามนี้ =if(C2=0, ว่าถ ้าเซลล์ตวั หารมีคา่ เท่ากับ 0 ล่ะก ้อ
8. พิมพ์ 0, ต่อ
9. หยุดเพือ
่ หายใจ
10. ในใจอ่านสูตรทีพ
่ ม
ิ พ์ 0, ว่า ให ้คําตอบทีไ่ ด ้เป็ น 0 แทนนะ จากนัน
้
์ ลิกเซลล์ B2
11. หยิบเมาสค
12. พิมพ์เครือ
่ งหมายหาร /
์ ลิกเซลล์ C2
13. แล ้วหยิบเมาสค
14. หยุดเพือ
่ หายใจ
15. ในใจอ่านสูตร B2/C2 ทีไ่ ด ้มาว่า แต่ถ ้าตัวหารไม่ใชเ่ ลข 0 ให ้คําตอบทีไ่ ด ้เป็ นสูตรหาร
กันตามปกติ
16. จากนัน
้ จึงกดปุ่ ม Enter รับสูตรลงไปในเซลล์ โดยไม่ต ้องพิมพ์เครือ
่ งหมายวงเล็บปิ ด
เพราะถ ้ามีวงเล็บเปิ ดตัวเดียว Excel จะพิมพ์เครือ
่ งหมายวงเล็บปิ ดให ้เอง
Copyright of www.ExcelExpertTraining.com
33
=if(.........C2=0,.........0,......... B2/C2
ฝึ กหยุดเพือ
่ พักหายใจให ้ได ้จังหวะ วิธน ี้ ะชว่ ยลดข ้อผิดพลาดหลงลืมการใสเ่ ครือ
ี จ ่ งหมายวงเล็บ
หรือเครือ
่ งหมาย Comma ในการสร ้างสูตรไปได ้เยอะทีเดียว
ธรรมชาติของสูตร
Copyright of www.ExcelExpertTraining.com
34
ต ัวอย่างลําด ับการคํานวณตามเครือ
่ งหมายบวกลบคูณหาร
1. คํานวณเครือ
่ งหมายยกกําลัง ^ ก่อน นั่นคือจะคํานวณ 5^6
2. ตามด ้วยการคํานวณคูณหรือหาร แล ้วแต่วา่ เครือ ้
่ งหมายใดมาก่อนจากซายไปขวา นั่นคือ
จะคํานวณ 3*4 แล ้วจึงนํ าผลคูณทีไ่ ด ้ไปหารด ้วยคําตอบทีไ่ ด ้จาก 5^6
3. ตามด ้วยการคํานวณบวกหรือลบ แล ้วแต่วา่ เครือ ้
่ งหมายใดมาก่อนจากซายไปขวา นั่นคือ
จะคํานวณ 1+2 แล ้วจึงนํ าผลบวกทีไ่ ด ้ไปลบกับผลลัพธ์ทไี่ ด ้จาก 3*4/5^6
จะสร้างสูตรให้วน
ุ่ ก ันไปได้แค่ไหน
ข ้อกําหนดเหล่านีน
้ ับว่าเพียงพอกับการคํานวณทัว่ ไป นานๆทีจงึ มีโจทย์ทต ้
ี่ ้องใชจนเกิ
นกว่า
ขีดจํากัด ซงึ่ แก ้ไขได ้ง่ายๆโดยแยกการคํานวณเป็ นสว่ นๆ แล ้วแบ่งแต่ละเซลล์ให ้แยกคํานวณ
แต่ละสว่ นของสูตร จากนัน
้ จึงนํ าผลการคํานวณทีไ่ ด ้มาคํานวณร่วมกันต่อเป็ นขัน
้ ๆ หรือไม่ก็ต ้อง
ฉลาดเลือกใชสู้ ตรอืน
่ ทีค
่ ํานวณได ้คําตอบแบบเดียวกันแทน
Copyright of www.ExcelExpertTraining.com
35
1. ในวงเล็บของสูตรสําเร็จรูป สามารถซอนสู
้ ตรเข ้าไปได ้อีก 64 สูตร (Nested levels of
functions)
2. ในวงเล็บของสูตรสําเร็จรูป สามารถแบ่งออกเป็ น 255 arguments (Arguments in
Functions)
3. ในเซลล์หนึง่ ๆรับสูตรได ้ยาวทีส
่ ด
ุ 8,192 characters (Length of formula contents)
ดังนัน
้ การที่ Microsoft ปรับข ้อจํากัดของสูตรให ้ยืดหยุน
่ มากขึน
้ นี้ ถ ้าสูตรใดทีค
่ ณ
ุ คิดว่ามีเงือ
่ นไข
ของการคํานวณไม่ยากนัก"ต่อการจําของคุณ"และง่ายทีจ ิ ซอนสู
่ ะย ้อนกลับมาแก ้ไข ก็เชญ ้ ตรเข ้า
ั ้ ได ้ตามใจ แต่ถ ้ามีทางเลือกอืน
ไปหลายๆชน ่ ทีด
่ ก ่ มีสต
ี ว่า เชน ู รอืน
่ หรือต ้องปรับโครงสร ้าง
ี ใหม่เพือ
ตารางเสย ่ ให ้เข ้ากับสูตรนัน ิ ใจเลือกให ้ดี
้ ก็ขอแนะนํ าให ้ตัดสน
สูตรทีห ้ อกตําแหน่งได้
่ าค่าได้ ก็ใชบ
ื่ ไหมว่าเรือ
เชอ ่ งทีจ ้ ทบทุกคนทีใ่ ช ้ Excel ทราบกันดีอยูแ
่ ะอธิบายนีแ ่ ล ้ว ใชกั้ นอยูท
่ ก
ุ วัน แต่นก
ึ ไม่
ถึงว่าสูตรทีห ้
่ าค่าได ้ จะใชบอกตํ าแหน่งทีแ
่ ปลกแตกต่างจากทีเ่ ข ้าใจกันอย่างไร
Copyright of www.ExcelExpertTraining.com
36
สงิ่ ทีอ
่ ธิบายข ้างต ้นนีเ้ คยอธิบายมาหลายต่อหลายครัง้ ในการอบรมและในเว็บ
ExcelExpertTraining.com ซงึ่ พฤติกรรมแบบนีแ ่ ํ าไปสูเ่ รือ
้ หละทีน ่ งแปลกทีค
่ าดไม่ถงึ จากเดิม
ทีเ่ ขียนว่า "สูตรทีห ้
่ าค่าได ้ ก็ใชบอกตํ ั เจนกว่าเดิมว่า
าแหน่งได ้" ขอเขียนใหม่ให ้ละเอียดชด
สูตรใดๆทีส
่ ามารถหาค่าทีเ่ ก็บไว ้จากตารางได ้โดยตรง สูตรนัน
้ ย่อมเป็ นสูตรทีบ
่ อก
ตําแหน่งได ้ โดยอย่าสร ้างสูตรนัน
้ ลงไปในเซลล์ แต่ต ้องนํ าสูตรนัน ้
้ ไปซอนในสู
ตรอืน
่ ก็จะ
กลายเป็ นสูตรทีบ
่ อกตําแหน่ง
ยิง่ กว่านัน
้ ถ ้า Copy สูตร =INDEX($A$1:$B$10,5,2) ไว ้ก่อนแล ้วกดปุ่ ม F5 แล ้วกดปุ่ ม Ctrl+v
เพือ
่ Paste สูตรนีล ่ ง Reference แล ้วกดปุ่ ม Enter จะพบว่า Excel พาคุณย ้าย
้ งไปในชอ
ตําแหน่งไปทีเ่ ซลล์ B5 ให ้เลย (สงั เกตว่าวิธน
ี ต
ี้ ้องกําหนดตําแหน่งอ ้างอิงเป็ น Absolute คือ
$A$1:$B$10 ก่อนด ้วย)
ยิง่ กว่านีข ้
้ อีก ถ ้านํ าสูตร INDEX(A1:B10,5,2) ไปซอนในสู
้ องยิง่ กว่านัน ตรอืน ่ สูตร Offset
่ เชน
จะทําให ้สูตร INDEX(A1:B10,5,2) ทําหน ้าทีช ี้ ําแหน่งต่อให ้กับ Offset
่ ต
แต่ถ ้าสร ้างสูตร =INDEX(A1:B10,5,2) ไว ้ในเซลล์ D12 แล ้วใชสู้ ตร Offset อ ้างถึง D12 ใน
แบบ =OFFSET(D12,2,3) จะพบว่า D12 ไม่ได ้ชว่ ยบอกตําแหน่งต่อให ้กับสูตร Offset เพราะ
สูตร Index ในเซลล์ D12 ทําหน ้าทีห
่ าค่าจากเซลล์ B5 มาแสดงเสร็จก็จบหน ้าทีไ่ ปแล ้ว
Copyright of www.ExcelExpertTraining.com
37
ดูตวั อย่างประกอบบทความนีไ
้ ด ้จาก
"www.excelexperttraining.com/forums/content.php?r=191-สูตร-ตําแหน่งอ ้างอิง"
จํานวนเซลล์สต
ู รเดียว
Copyright of www.ExcelExpertTraining.com
38
จากนัน
้ ให ้แกะดูคา่ ทีแ
่ ท ้จริงในสูตร โดยกดปุ่ ม F2 ตามด ้วยปุ่ ม F9 จะพบว่าสูตร =A1:A3
เปลีย
่ นเป็ น ={11;22;33}
พอเห็นค่าแล ้วว่าสูตรนีม
้ ี 3 ค่าและแต่ละค่าอยูต
่ ามแนวตัง้ ก็ให ้กดปุ่ ม Esc เพือ
่ ย ้อนกลับไปเป็ น
สูตร =A1:A3 ตามเดิม
่ ้องการนี้ จะชว่ ย
ประโยชน์ของการเลือกจํานวนเซลล์ให ้ครบเหมาะกับจํานวนและแนวของค่าทีต
ให ้เราเห็นค่าทุกค่ากระจายตัวลงไปในเซลล์แต่ละเซลล์ ทําให ้ประหยัดเวลาไม่ต ้องคอยกดปุ่ ม
่ แกะสูตรเป็ นครัง้ ๆไป อีกทัง้ สูตรทีส
F2 ตามด ้วย F9 เพือ ่ ร ้างขึน
้ พร ้อมกันทีเดียวหลายเซลล์ จะ
ี เวลาในการคํานวณเพียงครัง้ เดียว
ทําให ้ Excel เสย
วิธแ
ี ก้ error #VALUE! ด้วย Lotus 1-2-3
เมือ
่ นํ าเซลล์ทม
ี่ ค
ี า่ เป็ นตัวเลขมาบวกด ้วยเซลล์ทม
ี่ ค
ี า่ เป็ นตัวอักษรโดยการสร ้างสูตรบวกทีน
่ ํา
่ =A1+A2 จะพบว่าได ้คําตอบเป็ น #VALUE! นัน
เซลล์มาบวกกัน เชน ้ เราสามารถสงั่ ให ้ Excel
คํานวณหาคําตอบเป็ นยอดรวมเฉพาะตัวเลขได ้โดยใชส้ งั่ ให ้ Excel คํานวณแบบ Lotus 1-2-3
Copyright of www.ExcelExpertTraining.com
39
่ ง Transition formula evaluation (Excel 2007 ให ้คลิกปุ่ ม Office แทน File หรือ Excel
ชอ
2003 สงั่ Tools > Options > Transition > กาชอ
่ ง Transition formula evaluation)
คําสงั่ Transition formula evaluation นีเ้ กิดขึน ่ นทัง้ โลกยังนิยมใช ้ Lotus 1-2-3 กัน
้ ในสมัยทีค
ดังนัน ่ ชว่ ยทําให ้คนเปลีย
้ เพือ ่ นใจมาใช ้ Excel ได ้ง่ายขึน
้ ทางไมโครซอฟท์จงึ สร ้างคําสงั่ นีข
้ น
ึ้
เพือ
่ ให ้พวกเราสามารถนํ าแฟ้ มทีส ้ Excel ต่อได ้ทันทีโดย
่ ร ้างจาก Lotus 1-2-3 มาเปิ ดใชใน
Excel จะเปลีย ี ทีเ่ ลือกไว ้ให ้คํานวณตามแบบที่ Lotus 1-2-3 ใชนั้ ่นคือ
่ นระบบการคํานวณในชท
ใน Lotus 1-2-3 ถือว่าตัวอักษรมีคา่ เท่ากับ 0 (สว่ น Excel ถือว่าตัวอักษรมีคา่ มากกว่าเลขทัง้
ปวง)
สว่ นชอ
่ ง Transition navigation keys จะเปลีย
่ นพฤติกรรมของปุ่ มลูกศร ปุ่ ม Tab หรือปุ่ มใดๆที่
่ นย ้ายตําแหน่งเซลล์ทเี่ ลือก ให ้ทําตามที่ Lotus 1-2-3 ใช ้ ซงึ่ ชว่ งแรกกว่าผมจะ
ทําหน ้าทีเ่ คลือ
หันมาใช ้ Excel อย่างเต็มตัว ต ้องอาศย
ั กาชอ
่ งนีอ
้ ยูน
่ านเพราะมือยังไม่คุ ้นกับปุ่ มทีเ่ คยเลือ
่ นไป
เลือ
่ นมาตามแบบทีต ิ
่ วั เองเคยชน
Copyright of www.ExcelExpertTraining.com
40
ต ัวอ ักษรมิได้มค
ี า่ เท่าก ับ 0
Excel ถือว่าตัวอักษรใดๆมีคา่ มากกว่าเลขทัง้ ปวง อีกนัยหนึง่ มีคา่ เป็ น Infinity หากสร ้างสูตร
=Sum(A1,123) แล ้วได ้คําตอบเท่ากับ 123 เป็ นเพราะ Excel จะละเลยไม่นําตัวอักษรมา
คํานวณในสูตร Sum นีแ
่ หละเป็ นเรือ
่ งทีห
่ ลายๆคนชอบเข ้าใจผิดกันว่า ตัวอักษรมีคา่ เป็ น 0
ถ ้าสร ้างสูตร =A1+123 จะได ้คําตอบเป็ น #VALUE! เพราะ Excel จะไม่ยอมรับการนํ าตัวอักษร
มาบวกกับตัวเลข แต่เราสามารถเปลีย
่ นพฤติกรรมของ Excel ให ้คิดแบบ Lotus 1-2-3 ได ้ตาม
คําอธิบายข ้างต ้น
้ ธใี ดกับงานสําคัญ
ถ ้าถามว่าระหว่างสูตรบวกกับสูตร Sum เราจะเลือกใชการบวกเลขวิ
Copyright of www.ExcelExpertTraining.com
41
้ ทีต
การแบ่งขอบเขตพืน ่ าราง
อย่าว่าแต่ขนาดของตารางทีม
่ ข ้ นีเ้ ลย ต่อให ้ใช ้ Excel 2003
ี นาดใหญ่สามารถรับข ้อมูลได ้มากขึน
ทีม ี นาดตารางเล็กกว่า หากผู ้ใช ้ Excel ไม่เป็ น พอนํ าข ้อมูลมาเก็บไว ้ในชท
่ ข ี อย่างไม่มห
ี ลักการ
่ ถึงเวลาจะต ้องแยกข ้อมูลออกจากกันเป็ นสว่ นๆก็จะทําได ้ยาก จึงขอเสนอให ้ใชหล
แล ้วเมือ ้ ัก
ICO แบ่งขอบเขตพืน
้ ทีต
่ าราง กล่าวคือ
Copyright of www.ExcelExpertTraining.com
42
้
2.3. ต ้องเว ้นขอบตารางไม่วา่ จะเป็ นขอบด ้านบนล่างซายขวาอย่
างน ้อยข ้างละ 1 เซลล์ ห ้าม
่ ซงึ่ ไม่ใชข
นํ าตาราง Input ไปติดกับเซลล์ข ้อมูลอืน ่ ้อมูลเรือ
่ งเดียวกับตารางข ้อมูลนัน
้
้ ้างสูตรคํานวณ ไม่จําเป็ นต ้องมีโครงสร ้างตามแบบ
3. ตาราง Calculate คือ ตารางทีใ่ ชสร
ของตาราง Input แต่ในตาราง Calculate นีค
้ ณ
ุ ต ้องหาทางสร ้างสูตรทีเ่ ซลล์หวั มุมเป็ นสูตร
ฉลาดทีส ่ ร ้างสูตรต ้องใชปุ่้ ม F4 เพือ
่ ามารถปรับตําแหน่งอ ้างอิงได ้เอง และในขณะทีส ่ ใส่
เครือ
่ งหมาย $ เพือ
่ ควบคุมตําแหน่งอ ้างอิงในสูตรไปยังเซลล์ทบ ั ทึกค่าตัวแปรทีใ่ ชคํ้ านวณ
ี่ น
ไว ้ ซงึ่ โดยทัว่ ไปเซลล์คา่ ตัวแปรจะวางไว ้ตามแนวคูข
่ นานกับแนวของตาราง Calculate เพือ
่
ชว่ ยให ้เครือ
่ งหมาย $ ทีใ่ สไ่ ว ้ในสูตร ทําหน ้าทีค
่ วบคุมตําแหน่งของแนวของเซลล์ตวั แปรไว ้
่ นํ าค่ามาใชคํ้ านวณนั่นเอง
เพือ
ี่ ้องการ โดยตารางนีจ
4. ตาราง Output คือ ตารางแสดงผลลัพธ์ทต ้ ะออกแบบให ้มีหน ้าตา
่ งั่ พิมพ์
อย่างไรก็ได ้ตามแต่วา่ จะนํ าไปแสดงผลบนจอภาพหรือในหน ้ากระดาษทีส
ข ้อผิดพลาดทีพ
่ บเห็นบ่อยครัง้ เกิดจากการออกแบบตารางตามแบบรายงานทีต ่
่ ้องพิมพ์ เชน
หากมีรายงานยาว 100 หน ้า ก็มก
ั ออกแบบตารางใน Excel ให ้ยาวเหยียดต่อๆกันลงมาทัง้ 100
หน ้าแล ้วจึงสงั่ พิมพ์ออกไปทีละหน ้า ซงึ่ วิธน ี้ ําให ้แฟ้ มมีขนาดใหญ่และยากต่อการแก ้ไขเพราะ
ี ท
จําเป็ นต ้องย ้อนกลับไปไล่แก ้ไขในตารางแต่ละหน ้า
สมมติวา่ หน ้ากระดาษทีพ
่ ม
ิ พ์ม ี 30 บรรทัดต่อหน ้า ดังนัน
้ พอพิมพ์เลขหน ้าที่ 1 ลงไป ต ้องสร ้าง
สูตรดึงผลลัพธ์บรรทัดที่ 1 - 30 มาแสดงในหน ้านี้ จากนัน
้ พอเปลีย
่ นเลขหน ้าเป็ นเลข 2 ก็จะได ้
บรรทัดที่ 31 – 60 มาแสดง พอเป็ นหน ้า 3 ก็ได ้บรรทัดที่ 61 - 90 มาแสดง ซงึ่ สูตรทีด
่ งึ ข ้อมูล
่ นีไ
เชน ้ ด ้ก็คอ
ื สูตร VLookup, Match, Index เป็ นต ้น
Copyright of www.ExcelExpertTraining.com
43
แฟ้ มทีส ้
่ ร ้างเสร็จพร ้อมใชงาน ต ้องมีระบบแยกแยะตําแหน่งตารางทีเ่ ปิ ดให ้รับค่าใหม่ได ้พร ้อมทัง้
หาทางป้ องกันตารางทีไ่ ม่ต ้องการให ้ใครเข ้าไปแก ้ไข โดยต ้องพิจารณาจากพืน
้ ทีต
่ ารางแต่ละ
สว่ น กล่าวคือ
1.3. สงั่ Review > Protect Sheet (Excel 2003 ใชคํ้ าสงั่ Tools > Protection > Protect
Sheet)
1.4. หลังจากที่ Protect Sheet เสร็จ เมือ
่ พิมพ์ข ้อมูลใหม่ลงไปในเซลล์ทเี่ ป็ น Input แล ้ว
ให ้กดปุ่ ม Tab ซงึ่ จะพบว่า Excel จะกระโดดไปเลือกเซลล์ Input ต่อไปให ้เอง
2. ตาราง Calculate และตาราง Output เป็ นพืน ่ งึ่ มีเซลล์สว่ นใหญ่เป็ นสูตรซงึ่ เมือ
้ ทีซ ่ สร ้าง
ู ร แก ้ไขสูตร หรือลบสูตรทิง้ ได ้อีก โดยมีขน
เสร็จแล ้ว ควรป้ องกันไม่ให ้ใครเข ้าไปดูสต ั ้ ตอน
ในการจัดเตรียมพืน
้ ทีด ี ถูก Protect อยูต
่ งั นี้ (ถ ้าชท ่ ้อง Unprotect Sheet ก่อน)
2.1. คลิกเลือกพืน ่ ารางสว่ นทีเ่ ป็ นตาราง Calculate และตาราง Output
้ ทีต
่ ง Hidden เพือ
2.2. คลิกขวา สงั่ Format Cells > Protection > แล้วกาชอ ่ นการ
่ ซอ
แสดงสูตรทีจ
่ ะเห็นบน Formula Bar และยังป้ องกันไม่ให ้ Copy สูตรออกไปได ้ด ้วย
โดยจะ Copy เฉพาะค่าผลลัพธ์ออกไปได ้เท่านัน ่ ง Locked ทิง้ อย่าง
้ (ห้ามต ัดกาชอ
เด็ดขาด) และต ้องทําขัน
้ ตอนต่อไปก่อนด ้วยจึงจะเห็นผล
2.3. สงั่ Review > Protect Sheet (Excel 2003 ใชคํ้ าสงั่ Tools > Protection > Protect
Sheet)
Copyright of www.ExcelExpertTraining.com
44
การกําหนดตําแหน่งอ้างอิง
ี หรือข้ามแฟ้ม
ข้ามชท
ผมเริม ้
่ ต ้นใชโปรแกรม Excel ตัง้ แต่ยค ี ให ้ใชงานได
ุ ทีใ่ นแฟ้ มหนึง่ ๆยังมีชท ้ ี เดียวและยัง
้เพียงชท
ไม่สามารถใชสู้ ตรเชอ
ื่ มข ้อมูลจากแฟ้ มอืน ้
่ มาใชงานร่
วมกัน ในยุคนัน
้ ต ้องออกแบบตารางทัง้ หมด
ี เดียว ต่อมา Excel ถูกพัฒนาให ้สามารถสง่ ข ้อมูลจากแฟ้ มหนึง่ ออกไปยังแฟ้ มอืน
ลงไปในชท ่ ได ้
่ งั ้ รับทัง้ สง่ ข ้อมูลกลับไปกลับมาระหว่างแฟ้ มเชน
แต่ก็ยงั ไม่สามารถทําหน ้าทีท ่ ที่ Excel ในรุน
่
ั ทําได ้ ซงึ่ ถ ้าดูให ้ดีจะพบว่าสงิ่ ที่ Excel สามารถสง่ ข ้อมูลกลับไปกลับมาได ้นัน
ปั จจุบน ้ เป็ นเพราะ
ี หรือมีหลายแฟ้ ม...แค่นัน
เราถูก Excel หลอกให ้ดูเหมือนว่ามีหลายชท ้ เอง
ี นัน
การทีเ่ ราเห็นว่าในแฟ้ มหนึง่ ๆมีหลายชท ่ ว่ ยให ้ผู ้ใชงานสามารถแยกเก็
้ เป็ นภาพลวงตาทีช ้ บ
ข ้อมูลต่างเรือ ี ต่างกันไป สว่ นข ้อมูลที่ link ข ้ามแฟ้ มได ้นัน
่ งไว ้ในชท ้ ถ ้าคุณใช ้ Excel รุน
่ แรกๆมา
ก่อนอย่างผม พอสงั่ Unhide Sheet จะพบว่าในแฟ้ มปลายทางมีชท ่ นไว ้ โดยชท
ี หนึง่ ถูกซอ ี นีใ้ ช ้
ี ต ้นทางไว ้ทัง้ หมด ดังนัน
เก็บข ้อมูลจากชท ้ ข ้อมูลทีไ่ ด ้มาจากสูตร link ข ้ามแฟ้ ม ถ ้าว่ากันให ้
ี ที่
ถูกต ้อง ไม่ได ้เป็ นผลจากสูตรที่ link มาจากแฟ้ มต ้นทางโดยตรง แต่เป็ นข ้อมูลทีไ่ ด ้มาจากชท
่ นไว ้ภายในชท
ซอ ี ปลายทางในแฟ้ มเดียวกันกับแฟ้ มทีม
่ ส
ี ต
ู ร link นั่นเอง โดยเรียกข ้อมูลทีเ่ ก็บ
ี นีว้ า่ Cache Data ซงึ่ สง่ ผลให ้แฟ้ มปลายทางมีขนาดแฟ้ มใหญ่กว่าปกติตามไปด ้วย
ในชท
่ นชท
(ต่อมา Microsoft ได ้ปรับปรุงให ้ Excel ซอ ี นีไ ่ แต่กอ
้ ว ้โดยไม่สามารถค ้นหาพบเชน ่ น)
1. วิธย
ี อ
้ นปลายกล ับมาหาต้น
1.1. ให ้เริม
่ จากพิมพ์เครือ
่ งหมายเท่ากับ = ทีเ่ ซลล์ปลายทาง
Copyright of www.ExcelExpertTraining.com
45
Copyright of www.ExcelExpertTraining.com
46
• ี เดียวกันเป็ น =A1
จากเดิมสร ้างสูตร link ในชท
• พอ Cut ไปทีช ี อืน
่ ท ่ สูตรนีจ
้ ะปรับตัวใหม่เป็ น =Sheet1!A1
• พอ Cut ต่อไปทีแ
่ ฟ้ มอืน
่ สูตรนีจ
้ ะปรับตัวใหม่เป็ น =[Source.xlsx]Sheet1!A1 โดย
คําว่า Source ก็คอ ื่ แฟ้ มต ้นทาง และคําว่า Sheet1 คือชอ
ื ชอ ื่ ชท
ี ต ้นทาง
• ต่อมาถ ้าปิ ดแฟ้ มต ้นทางทีช ื่ Source ทิง้ สูตรนีจ
่ อ ้ ะปรับตัวใหม่เป็ น
='D:\Dummy\[Source.xlsx]Sheet1'!A1
ซงึ่ การทีม
่ ช ื่ Drive D และชอ
ี อ ื่ โฟลเดอร์วา่ Dummy แสดงไว ้ด ้านหน ้าสูตร แสดงว่า
แฟ้ มต ้นทางทีช ื่ Source นัน
่ อ ้ ในขณะนัน
้ ถูกจัดเก็บไว ้ทีใ่ ดแต่ยงั ไม่ได ้ถูกเปิ ดขึน
้ มา
Copyright of www.ExcelExpertTraining.com
47
Copyright of www.ExcelExpertTraining.com
48
ระบบการร ักษาความปลอดภ ัย
ในการ Link File ของ Excel 2010
1. เริม
่ ต ้นจากทดสอบขนาดแฟ้ มทีเ่ ปิ ดขึน ี ้อมูลอะไรเลย สง่ั Save แฟ้ มตัง้
้ มาโดยยังไม่มข
ื่ ว่า Target.xlsx พบว่ามีขนาดแฟ้ ม 8.18 KB
ชอ
ื่ Target นี้ ทดลองพิมพ์คําว่า Operations ลงไปในเซลล์ B2 พบว่า จากแฟ้ ม
2. ในแฟ้ มชอ
ว่างๆซงึ่ มีขนาด 8.18 KBแฟ้ มมีขนาดใหญ่ขน
ึ้ เล็กน ้อยเป็ น 8.55 KB พอพิมพ์ตวั เลข
20496 ลงไปในเซลล์ C2 แฟ้ มมีขนาดใหญ่เพิม
่ ขึน
้ เป็ น 8.57 KB (แสดงว่าข ้อมูลตัวเลข
ทําให ้แฟ้ มมีขนาดใหญ่ขน ้ าข ้อมูลทีเ่ ป็ นตัวอักษร)
ึ้ ชากว่
Copyright of www.ExcelExpertTraining.com
49
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
50
Target)
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
51
8. ทดลองย ้อน
นกลับไปที่ Home
H nable Content แล ้วใช คํ้ าว่า R&D หายอด
โดย ยังไม่ได ้ En
รวมแทนคําว่
า า Operatiions พบว่าส
สามารถหาย
ยอดรวมของ
ง R&D ได ้เช
ชน่ เดิม
9. เมือ
่ เปิ ดแฟ้ ม Source ขึน
้ มา พบว่าาคําเตือน Se
ecurity Warning ในแฟ้
ฟ้ ม Target หายไป
แสดงว่ามีการ Enable Content เพื
พือ่ Update Link ให ้เอง
งทันทีเมือ
่ เปิปิ ดแฟ้ มต ้นท
ทางคูก
่ บ
ั
ทาง
แฟ้ มปลายท
10. ปิ ดแฟ้ ม Ta
arget
11. ในแฟ้ ม Sou
urce ทดลอ
องลบตัวเลข
ข Actual ขอ
อง Departm
ment ทีเ่ ป็ น Operations ให ้
กซงึ่ มีคา่ เท่าากับ 2562 แล ้วสงั่ Sav
เหลือเฉพาะะรายการแรก ve แฟ้ ม Souurce เก็บยอ
อดใหม่น้ี
ไว ้ เพือ
่ ทดส
สอบว่า ถ ้าเปิ
ปิ ดแฟ้ ม Ta rget ทีป
่ ิ ดไปก่
ไ อนแล ้วจ
จะแสดงยอด
ดรวมของ
Operationss เท่ากับเท่าใดเมือ
่ เปิ ด
ดแฟ้ ม Targe
et เพียงแฟ้ มเดียว
12. ปิ ดแฟ้ ม So
ource แล ้วเปิ
ปิ ดแฟ้ ม Tarrget ขึน
้ มาเเพียงแฟ้ มเดี
ดียวจะพบคําาเตือน Secu
urity
Warning และยอดรวม
แ ของ Operaations เท่าเดิ ่ เดียวกั
เ มเชน ว บการทดล
ลองในข ้อ 7-8
7
13. คราวนีก
้ ดปุ่ ม Enable Content
C ทําาให ้คําเตือน Security Warning
W หาายไปและได
ด ้ยอด
Operationss รวมเท่ากับ 2562 ตาม
มยอดใหม่ที
ทเ่ี ก็บไว ้ในแฟ
ฟ้ ม Sourcee แสดงว่ากา
ารกดปุ่ ม
การสงั่ ให ้ Exxcel update
Enable Content เป็ นก e cache da
ata ในแฟ้ ม Target ตาม
มข ้อมูล
ใหม่ทแ
ี่ ก ้ไข
ขและเก็บไว ้ในแฟ้
้ ม Sou
urce
14. ปิ ดแฟ้ ม Ta ม่ต ้องสงั่ Saave แล ้วเปิ ดแฟ้
arget โดยไม ด ม Targ
get ขึน
้ มาอีก
กครัง้ หนึง่ ไม่พบว่า
Excel 2010
0 เตือน Seccurity Warn
ning และยอ
อดรวมของ Operationss แสดงตัวเล
ลข
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
52
เท่ากับ 256
62 ทันที แส
สดงว่าเมือ ปิ ดเดิมแฟ้ มซํ้าอีก Exce
่ เปิ el จะเปิ ดตาม
มวิธท
ี ผ ้ คยเปิ ด
ี่ ู ้ใชเค
ให ้ทันที
15. ตรวจสอบระะบบของ Trrust Centerr พบว่า ระบ
บบตามปกติของ นดให ้ใช ้
ข Excel 22010 กําหน
Trusted Do
ocument ไว
ไ ้เป็ น defau
ult โดยไม่ได ่ ง Disable
ไ ้กาชอ D Trussted Docum
ments
เอาไว ้ตัง้ แต
ต่แรกแล ้ว ทําให ้ Excel ถือว่าแฟ้ ม Target เป็ นแฟ้ ื่ ถือได ้เพราะะคราว
น มทีเ่ ชอ
แ มนี้ ได ้สงั่ Enable Co
ก่อนทีเ่ ปิ ดแฟ้ ontent (Ex
xcel จะจําไว
ว ้ให ม่ได ้สงั่ save
้ ้ทัง้ ๆทีไ่ ม e เก็บ
แฟ้ ม Targe
et ไว ้ก็ตาม))
16. ตามภาพใน
นข ้อ 15 ทดล
ลองกดปุ่ ม C
Clear เพือ
่ กําหนดให ้ทุกแฟ้
ก มทีเ่ คย
ยเปิ ดถือว่าเป็
ป็ นแฟ้ ม
ทีไ่ ม่เคยไวใจ
้ใ แล ้วเปิ ดแฟ้ ม Targeet ขึน
้ มาใหม
ม่ พบว่า Excel เตือน SSecurity Wa
arning
ตามการทด
ดลองในข ้อ 7 ตามเดิม
17. ตามภาพใน
นข ้อ 15 ทดล ่ ง Disable Trrusted Doc
ลองกาชอ cuments เพื
พือ ้ บบ
่ เลิกใชระบ
Trusted Do
ocument แล ํ้
แ ้วเปิ ดแฟ้ ม Target ซาหลายๆครั
ง้ พบว่า Exccel เตือน Se
ecurity
Warning ตามข
ต ้อ 7 ทุกครั
ก ง้ แม ้จะก ble Contentt แล ้วสงั่ Saave แฟ้ ม Ta
กดปุ่ ม Enab arget
บันทึกค่าให
หม่ท ี่ Updatte ไปแล ้วก็ต
ตาม
18. จากข ้อ 17 ซงึ่ เลิกใชระ
้ ะบบ Trusteed Docume
ent ไปแล ้ว ให ้ทดลองใใช ้ Trusted
Locations โดยกําหนด
ดให ้โฟลเดอ
อร์ทเี่ ก็บแฟ้ ม Source และ Target เป็ นโฟลเดอร์ท ี่
ไว ้ใจได ้ พบ
บว่าเมือ
่ เปิ ดแฟ้ ม Targeet จะไม่มก
ี ารเตื
า อน Sec
curity Warnning อีกต่อไป
ไ
การทดล
ลองข ้างต ้นท
ทําให ้ต ้องเพ
พิม
่ ความระมั ้ ม Excel
มัดระวังในกาารใชแฟ้ E ที่ linkk กันมากขึนกว่
น้ าแต่
ก่อน โด
ดยเฉพาะอย ชเครื
ย่างยิง่ การใช ้ อ ่ งคอม
มพิวเตอร์และแฟ้ มร่วมกันหลายคน
น ผู ้ใช ้
เพราะหากผู
Excel ค
คนใดคนหนึงเข
ง่ ้าไปปรับแก
บ ้ระบบกาารเตือน Seccurity Warn
ning ของ Exxcel 2010 ให ้ต่าง
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
53
ไปจากเเดิมหรือแตก
กต่างจากทีเคยใช
เ่ ร่้ วมกั
กัน ย่อมสง่ ผลให ้ผู ้ใช ้ Ex
xcel คนอืน ั
่ เเกิดความสบสนและ
บ
้ างผิ
นํ าข ้อมูลไปใชอย่ ง ดพลาดขึ
ขึน
้ มาได ้
เ้ อ
หากจําเเป็ นต ้องใชเครื ่ งคอมพิ
พิวเตอร์และแ ่ ง Disable Trusted
แฟ้ มร่วมกันหลายคน ขอให ้กาชอ
Docum
ments เพือ
่ เลิ ้
ลิกใชระบบ Trusted Do
ocument และห
แ ้ามกําหนดโฟลเดอ
ห อร์ใดเป็ น Trrusted
Locatio
ons ไว ้อย่างเด็
ง ดขาด
นอกจาก
กนีเ้ มือ
่ ทดล ่ Ask to u
ลองตัดกาชอง
อ update auto
omatic link
ks ตามภาพใในข ้อ 6 ทิง้ โดย
บให ้ไม่ใช ้ Trusted
จัดระบบ T Loccations และะไม่ใช ้ Trussted Docum
ment พบว่า Excel 201
10 จะ
ยังคงเตื
ตือน Securitty Warning คาสงั่ Ask to update aautomatic links
g เสมอ ทําใให ้เข ้าใจว่าคํ l นี้
่
ไม่ได ้สงงผลต่ ้
อการใใชงานใน Ex
xcel 2010 อีกต่อไป อาจยังคงมีประโยชน์
ร กบั แ
แฟ้ มทีส
่ ร ้างขึน
้ จาก
Excel 2
2003 หรือ Excel
E รุน
่ ก่อนหน ้านัน
้ ทีน
่นํ ามาเปิ ดดวย
้ว Excel 20
010 ก็เป็ นได
ด้
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
54
หล ักการตงช
ั้ อ ้ อ
ื่ และใชช ื่ ใน Excel
ื่ และใชช้ อ
การตัง้ ชอ ื่ เป็ นหัวใจสําคัญของการนํ าตําแหน่งอ ้างอิงไปใชซ
้ ํ้า เนือ
่ งจากหากปราศจาก
ื่ ทีด
การตัง้ ชอ ่ ข
ี น ้
ึ้ มาใชแทนตํ ั ้ ๆทีด
าแหน่งอ ้างอิงของเซลล์แล ้ว สูตรสน ่ ไู ม่มพ
ี ษ
ิ ภัยอะไร จะกลับ
กลายเป็ นปั ญหาอย่างมาก ยิง่ ใน Excel 2007 มีพน
ื้ ทีต
่ ารางกว่าหมืน
่ Column และล ้านกว่า
Row จะทําให ้ สูตร =JAN2009 ซงึ่ เป็ นสูตรทีน
่ ํ าค่ามาจากเซลล์ใน Column JAN ตัดกับ Row
2009 สามารถดูผาดๆและถูกตีความว่าเป็ นค่าของเดือน Jan ปี ค.ศ.2009 แทนก็เป็ นได ้
Copyright of www.ExcelExpertTraining.com
55
ื่ ทีต
4. ชอ ้ ควรใชตั้ วอักษรตัง้ แต่ 4 ตัวขึน
่ งั ้ ขึน ่ มิให ้ซํ้ากับชอ
้ ไปเพือ ื่ ของ Column แต่ถ ้า
ื่ ทีม
จําเป็ นต ้องตัง้ ชอ ่ ต ื่ ทีใ่ ชตั้ วอักษรตัวใหญ่ผสมตัว
ี วั อักษร 2-3 ตัวก็ทําได ้ เพราะการตัง้ ชอ
เล็กจะชว่ ยในการแยกแยะให ้เห็นได ้ชด
ั อยูแ
่ ล ้วว่า Jan2009 มิได ้มีความหมายเดียวกับ
ื่ ทีเ่ ป็ นตัวอักษร
JAN2009 ทีเ่ ป็ นเซลล์ใน Column JAN ตัดกับ Row 2009 (ถ ้าต ้องการตัง้ ชอ
่ งตัว C และ R เพราะซํ้ากับตัวย่อของ Row และ Column)
ตัวเดียว ขอให ้หลีกเลีย
ื่ Range Name ทีม
5. Excel จะไม่ยอมรับชอ ี ารเว ้นวรรค โดยหากสงั่ ให ้ Excel ใชข้ ้อความใน
่ ก
ื่ โดยอัตโนมัต ิ จะถูกแก ้ไขเครือ
เซลล์ตามขอบตารางมาเป็ นชอ ่ งหมายวรรคเป็ นเครือ
่ งหมาย
ื่ Range Name ทีเ่ ป็ นตัวเลข
ขีดล่าง _ (Underscore) ให ้เอง และ Excel จะไม่ยอมรับชอ
ล ้วนหรือเป็ นตัวเลขนํ าหน ้าตัวอักษร
6. แม ้จะไม่มข ื่ เป็ นภาษาไทย แต่ก็แนะนํ าให ้ตัง้ ชอ
ี ้อห ้ามในการตัง้ ชอ ื่ เป็ นภาษาอังกฤษจะ
เหมาะสมกว่า เพราะหากใช ้ Excel version ภาษาอังกฤษ เปิ ดแฟ้ มทีม ี ารใชช้ อ
่ ก ื่ ภาษาไทย
ื่ ภาษาไทยไม่ออก
จะอ่านชอ
ื่ ชท
7. ในการตัง้ ชอ ี ห ้ามตัง้ ชอ
ื่ ว่า History เนือ ื่ ที่ Excel สํารองไว ้ใชภายใน
่ งจากเป็ นชอ ้
ื่ Range Name ห ้ามตัง้ ชอ
8. ในการตัง้ ชอ ื่ ว่า Criteria หรือ Extract เพราะชอ
ื่ Criteria นีจ
้ ะถูก
่ นแปลงตําแหน่ง Extract จากเดิมได ้เองทันทีทใี่ ชคํ้ าสงั่ Advanced Filter
ลบทิง้ หรือเปลีย
9. หากต ้องการได ้รับความสะดวกจากคําสงั่ Data Form ให ้ตัง้ ชอ
ื่ ตารางฐานข ้อมูลว่า
Database เพือ ้ Data Form ได ้เองโดยทีค
่ ทําให ้ Excel ดึงข ้อมูลมาใชใน ่ ณ
ุ ไม่ต ้องเลือก
ตารางฐานข ้อมูลนัน
้ ไว ้ก่อน
10. โปรดเข ้าใจเพิม ื่ สูตรและชอ
่ เติมว่า ในการเขียนชอ ื่ ต่างๆทีใ่ ชในการอบรมตลอดจนข
้ ้อมูลบน
้ ใชวิ้ ธเี ขียนชอ
เว็บ www.ExcelExpertTraining.com นัน ื่ โดยใชอั้ กษรตัวใหญ่ผสมตัวเล็ก
่ ชว่ ยในการอ่านให ้สามารถแยกแต่ละสว่ นของคําได ้ง่ายขึน
เสมอ เพือ ่ VLookup,
้ เชน
SumIF, SumProduct เป็ นต ้น ซงึ่ เมือ
่ ใดทีต ื่ ไปใช ้ ให ้พิมพ์ตวั เล็กตลอดตาม
่ ้องการนํ าชอ
หลักการข ้างต ้น
Copyright of www.ExcelExpertTraining.com
56
ื่ หลายชอ
2. หากต ้องการตัง้ ชอ ื่ และสามารถย ้อนกลับมาแก ้ไขหรือตัง้ ชอ
ื่ อืน
่ ใหม่อก
ี ได ้ในทันที
ให ้สงั่ ผ่าน Formulas > Name Manager
นอกจากนัน ื่ ให ้สนองตอบต่อการใชงานใน
้ Excel 2007 เป็ นต ้นมา ได ้ปรับปรุงระบบการตัง้ ชอ ้
ระดับ File Level หรือ Sheet Level ได ้สะดวกกว่าแต่กอ
่ นมาก กล่าวคือ
• การตงช
ั้ อ ่ ใชใ้ นระด ับ File Level เป็ นระบบมาตรฐานที่ Excel เลือก Scope เป็ น
ื่ เพือ
Workbook ไว ้ให ้ตัง้ แต่ต ้น เพือ ื่ ทีต
่ ทําให ้ชอ ่ งั ้ ขึน ้ ามารถนํ าไปใชร่้ วมกันได ้ทุก
้ ในระดับนีส
ี
ชท
• การตงช
ั้ อ ่ ใชใ้ นระด ับ Sheet Level โดยคลิกเปลีย
ื่ เพือ ื่ ชท
่ น Scope เป็ นชอ ี ที่
ื่ ทีต
ต ้องการ ทําให ้ชอ ่ งั ้ ขึน ี เป็ นชอ
้ ในระดับชท ื่ ทีใ่ ชในช
้ ที นัน ี อืน
้ และเป็ นอิสระจากชท ่
สง่ ผลให ้สามารถตัง้ ชอ
ื่ ซํ้ากันได ้ในแฟ้ มเดียวกัน (น่าสงั เกตว่าเราสามารถกําหนด Scope
ให ้อยูต ี กับชท
่ า่ งชท ี ที่ Refers to ก็ยงั ได ้)
Copyright of www.ExcelExpertTraining.com
57
ื่ ทีต
Constant Name เป็ นชอ ่ งั ้ ให ้กับค่าคงที่ ซงึ่ ตามปกติในการดําเนินธุรกิจต ้องเกีย
่ วข ้องกับ
ค่าคงทีม ื่ บริษัท ทีอ
่ ากมาย นับตัง้ แต่ ชอ ื่ ผู ้บริหาร รหัสทีเ่ ป็ นความลับ หมายเลขบัญช ี
่ ยู่ ชอ
่ อัตราดอกเบีย
ตัวเลขทางการเงินต่างๆ เชน ื่ มราคา ตัวเลขเงินเดือน ดังนัน
้ ค่าเสอ ้ แทนทีจ
่ ะต ้อง
้ ํ้าลงไปในเซลล์โดยตรง นอกจากจะเสย
บันทึกค่าเหล่านีซ ี เวลาพิมพ์เองใหม่ทก
ุ ครัง้ แล ้ว ยังอาจ
่ื ให ้กับค่าคงทีท
พลัง้ เผลอบันทึกข ้อมูลต่างไปจากเดิม จึงขอแนะนํ าให ้ตัง้ ชอ ่ งั ้ หมดทีม
่ ี แทนที่
ื่ ยากๆยาวๆ ก็เพียงพิมพ์ชอ
จะต ้องพิมพ์ชอ ื่ สน
ั ้ ๆทีจ
่ ําง่ายกว่า และภายหลังหากมีการเปลีย
่ นแปลง
ค่าทีเ่ คยคิดว่าคงที่ ก็ให ้ทําการแก ้ไขค่าทีก ื่ ทีเ่ ป็ น Constant Name นีเ้ พียงครัง้
่ ําหนดให ้กับชอ
เดียว ก็จะสง่ ผลให ้ทุกเซลล์ทน
ี่ ํ า Constant Name ไปใชมี้ คา่ ใหม่ตามการแก ้ไขนัน
้ ได ้ทันที
Name: MyKey1
Name: MyKey2
จากนัน
้ เมือ ื่ Constant Name นีไ
่ ต ้องการนํ าชอ ้
้ ปใชในเซลล์ ให ้พิมพ์ =mykey1 (สงั เกตว่าถ ้า
พิมพ์เองให ้พิมพ์ด ้วยตัวเล็กตลอด) หรือกดปุ่ ม F3 เพือ ื่ ทีต
่ เปิ ดรายชอ ่ งั ้ ไว ้ในแฟ้ มนัน
้ ขึน
้ มาแสดง
บนจอ แล ้วให ้ดับเบิล
้ คลิกทีช ื่ ทีต
่ อ ่ ้องการ (หรือคลิกปุ่ ม OK) แล ้วกดปุ่ ม Enter เพือ
่ รับสูตร
=MyKey1 ลงไปในเซลล์ จะได ้คําว่า Excel Expert Training แสดงในเซลล์นัน
้
Copyright of www.ExcelExpertTraining.com
58
ื่ ทีต
Range Name เป็ นชอ ่ งั ้ ให ้กับเซลล์เดียวหรือพืน
้ ทีต
่ าราง (ทีม
่ พ
ี น
ื้ ทีต
่ ด
ิ กันหรือไม่ตด
ิ กันก็ได ้)
ซงึ่ มีวธิ ต ื่ ได ้หลายวิธ ี ดังนี้
ี งั ้ ชอ
1.1. เริม
่ จากคลิกเลือกเซลล์หรือตารางทีต ิ ต่อกัน ให ้
่ ้องการ (หากต ้องการเลือกเซลล์ทไี่ ม่ตด
กดปุ่ ม Ctrl แล ้วคลิกเลือกพืน
้ ทีต
่ ารางทีต
่ ้องการไปเรือ
่ ยๆ)
่ ง Name Box แล ้วพิมพ์ชอ
1.2. คลิกลูกศรด ้านขวาของชอ ื่ Range Name ทีต
่ ้องการลงไป
่ ง Name Box ขอให ้สงั เกตว่า พอพิมพ์ตวั อักษรทีละตัวของชอ
ในชอ ื่ ลงไป ชอ
่ ง Name
Box จะเลือ ื่ เก่าทีต
่ นไปหาชอ ่ งั ้ ไว ้ก่อนแล ้วเพือ ื่ ใหม่ทไี่ ม่ซํ้ากับชอ
่ คุณจะได ้ตัง้ ชอ ื่ เดิมทีม
่ ี
อยูแ
่ ล ้ว
1.3. กดปุ่ ม Enter เพือ ื่ ลงไปในชอ
่ รับชอ ่ ง Name Box
้ า
2. วิธใี ชค ํ สง่ ั Formulas > Define Name หรือ Formulas > Name Manager
้ า
(Excel 2003 ใชค ํ สง่ ั Insert > Name > Define) โดยกรอกชอ
ื่ ทีต
่ ้องการตัง้ ลงไป
่ ง Name: แล ้วคลิกลงไปในชอ
ในชอ ่ ง Refers to (โดยให ้คลิกต่อท ้ายตําแหน่งเดิมทีแ
่ สดง
Copyright of www.ExcelExpertTraining.com
59
้ า
3. วิธใี ชค ํ สง่ ั Formulas > Create from selection (Excel 2003 ใชค
้ า
ํ สง่ ั Insert
> Name > Create) วิธน ี้ ว่ ยนํ าข ้อความทีอ
ี ช ่ ยูข ื่ ให ้กับพืน
่ อบตารางมาตัง้ เป็ นชอ ้ ทีต
่ าราง
ในฝั่ งตรงข ้ามกับข ้อความนัน
้ เริม
่ จากคลิกเลือกพืน
้ ทีต
่ ารางทีต ื่ โดยให ้เลือก
่ ้องการตัง้ ชอ
รวมทัง้ พืน
้ ทีห ้ ใชคํ้ าสงั่ Formulas > Create from Selection จะพบ
่ วั ตารางไว ้ด ้วย จากนัน
หน ้าจอต่อไปนีเ้ ปิ ดขึน
้ มา ให ้ดูวา่ ตรงตามต ้องการแล ้วกดปุ่ ม OK เพือ ื่
่ รับชอ
Copyright of www.ExcelExpertTraining.com
60
1. พิมพ์ =sum(
2. กดปุ่ ม F3 เพือ ื่ ทีต
่ แสดงรายชอ ่ งั ้ ไว ้ในแฟ้ ม (ในกรณีทต ื่ มาจากแฟ้ มอืน
ี่ ้องการนํ าชอ ่ ให ้ย ้าย
ไปอยูใ่ นแฟ้ มทีม
่ ช ื่ Range Name ทีต
ี อ ่ ้องการนัน
้ ก่อนแล ้วจึงกดปุ่ ม F3)
3. ดับเบิล
้ คลิกทีช ื่ Income จะได ้สูตร =sum(Income
่ อ
4. กดปุ่ ม Enter จะได ้สูตร =SUM(Income)
วิธต
ี งช ื่ ตําแหน่งอ้างอิงแบบไร้ขอบเขตจําก ัด
ั้ อ
Copyright of www.ExcelExpertTraining.com
61
ด ้วยสาเหตุทต
ี่ ําแหน่งอ ้างอิงถูกควบคุมด ้วยเครือ
่ งหมาย $ ทัง้ แนว Row และ Column นีเ่ องที่
ทําให ้เกิดการจํากัดขอบเขตให ้ใชสู้ ตรอ ้างอิงถึงชอ
ื่ Top กับ Left ได ้เฉพาะในแนวคูข
่ นาน
ดังนัน
้ หากคุณเข ้าใจถึงเหตุและผลตามทีไ่ ปทีม ้ อ
่ าดังกล่าวข ้างต ้น จะสามารถเลือกใชเครื ่ งหมาย
$ ในการกําหนดขอบเขตแบบไม่จํากัดได ้ โดยปรับตําแหน่งเครือ
่ งหมาย $ ตามหลักต่อไปนี้
Copyright of www.ExcelExpertTraining.com
62
Copyright of www.ExcelExpertTraining.com
63
ในความเป็ นจริงนัน
้ ทัง้ Constant Name หรือ Range Name ต่างก็คอ
ื Formula Name นั่นเอง
่ ง Refers to: ต ้องใสเ่ ครือ
เพราะในชอ ่ งหมายเท่ากับไว ้ด ้านหน ้าค่าคงทีห
่ รือตําแหน่งอ ้างอิงไว ้
ื่ ให ้กับสูตร เพียงแต่วา่ สูตรทีเ่ ป็ น Constant Name กําหนดให ้มี
เสมอ จึงเท่ากับว่าเป็ นการตัง้ ชอ
ค่าเป็ นค่าคงที่ สว่ น Range Name ได ้กําหนดให ้มีคา่ เท่ากับค่าทีเ่ ก็บไว ้ในตารางตามทีร่ ะบุไว ้ใน
่ ง Refers to: ซงึ่ นอกจากจะอ ้างถึงค่าคงทีห
ชอ ่ รือตําแหน่งอ ้างอิงตามทีอ
่ ธิบายผ่านไปแล ้ว เรา
ยังสามารถใชช้ อ
่ ง Refers to: ได ้อีกหลายแบบ กล่าวคือ
• ้
ใชผสมกั
นระหว่างค่าคงทีแ ่ =5*Top*Left โดยเลข 5 ถือเป็ น
่ ละตําแหน่งอ ้างอิง เชน
ค่าคงที่ สว่ น Top กับ Left เป็ นตําแหน่งอ ้างอิง
• ใชร่้ วมกับสูตรสําเร็จรูปของ Excel เชน
่ =SUM(Income)
• ใชย่้ อสูตรยากๆยาวๆให ้เป็ นชอ
ื่ สน
ั ้ ๆเพียงชอ
ื่ เดียว โดยทยอยนํ าชอ
ื่ ทีต
่ งั ้ ไว ้มาคํานวณใน
สูตรยาวๆทีค
่ ณ
ุ สร ้างขึน ่ แทนทีจ
้ เชน ื่ เดียวให ้กับสูตร
่ ะตัง้ ชอ
ื่ ให ้กับสูตรแต่ละสว่ นก่อนแล ้วจึงนํ าชอ
=(5*Top*Left)+Sum(Income) ก็สามารถตัง้ ชอ ื่
มาใชต่้ อเป็ น =MyVar1+MyVar2 โดยกําหนดให ้ตัง้ ชอ
ื่ MyVar1 มีคา่ =5*Top*Left
ื่ MyVar2 มีคา่ =SUM(Income) ไว ้ก่อน
และตัง้ ชอ
• ใชกํ้ าหนดตําแหน่งอ ้างอิงแบบ Dynamic Range โดยใชสู้ ตร Offset ชว่ ยกําหนดขนาด
ตารางให ้ย่อหรือขยายได ้โดยอัตโนมัตต
ิ ามขนาดของข ้อมูล
การเปลีย
่ นตําแหน่งอ้างอิงในสูตรทีม
่ อ
ี ยูก
่ อ ื่ ทีต
่ นให้กลายเป็นชอ ่ งขึ
ั้ น้ ใน
ภายหล ัง
Copyright of www.ExcelExpertTraining.com
64
เคล็ดล ับอืน
่ ๆทีค
่ วรทราบเกีย ื่ ทีบ
่ วก ับชอ ่ อกตําแหน่ง
Copyright of www.ExcelExpertTraining.com
65
Copyright of www.ExcelExpertTraining.com
66
้ ต
การใชส ู รปร ับตําแหน่งอ้างอิง
คําอธิบายจากนีไ
้ ปจะมีประโยชน์ตอ
่ เมือ
่ คุณมีพน
ื้ ฐานมาก่อนแล ้วว่าตําแหน่งอ ้างอิงมีประโยชน์
้ ํ้าโดยการ Copy หรือโดยการตัง้ ชอ
อย่างไรและจะนํ าตําแหน่งอ ้างอิงไปใชซ ื่ ตําแหน่งอ ้างอิงได ้
อย่างไร ซงึ่ การนํ าตําแหน่งอ ้างอิงไปใชซ
้ ํ้าตามวิธท
ี ใี่ ชกั้ นโดยทัว่ ไป คุณต ้องเสย
ี แรงเสย
ี เวลา
Copy หรือต ้องสร ้างสูตรใหม่ทก
ุ ครัง้ จึงเป็ นเรือ
่ งน่าคิดว่าจะมีวธิ ใี ดบ ้างทีจ
่ ะทําให ้ตําแหน่ง
อ ้างอิงเดิมทีม
่ อ ่ รับตําแหน่งได ้เองโดยคุณไม่ต ้องเข ้าไปยุง่ เกีย
ี ยูป ่ วแก ้ไขสูตรใหม่อก
ี เลย
วิธท ้ ต
ี ี่ 1 : ใชส ู ร Indirect(“Text บอกตําแหน่ง”) แบบเซลล์เดียว
แทนทีจ
่ ะสร ้างสูตรตรงๆลงไปว่า =A1 คราวนีใ้ ห ้ยอมเปลืองเซลล์หน่อย เริม ้
่ จากใชเซลล์ C4
และ C5 เป็ นเซลล์รับตัวอักษร a และเลข 1 ลงไปตามลําดับ จากนัน
้ นํ าตัวอักษรกับตัวเลขมาต่อ
กันในเซลล์ C6 โดยใชสู้ ตร =C4&C5 จะได ้คําว่า a1 ซงึ่ เป็ น Text ทีบ
่ อกตําแหน่งตามแบบ
มาตรฐานของตําแหน่งอ ้างอิงใน Excel (ถ ้าอยากลัดขัน ้
้ ตอน จะใชเซลล์ C6 สําหรับพิมพ์
ี เซลล์ C4 และ C5 เพือ
ตําแหน่งเซลล์ a1 ลงไปเลยก็ได ้ โดยไม่ต ้องเสย ่ แยกตําแหน่งแต่ละสว่ น
ไว ้ก่อน)
้ เซลล์ C7 ใชสู้ ตร =Indirect(C6) จะได ้ค่าเป็ นตัวเลข 11 ซงึ่ เป็ นค่าจากเซลล์ A1 นั่นเอง
จากนัน
ี้ ากต ้องการค่าจากเซลล์ใด ให ้ใชตํ้ าแหน่งอ ้างอิงตามค่าในเซลล์ C6 ซงึ่ อาจเกิดจากการ
ทีนห
พิมพ์แยกสว่ นของตัวอักษรและตัวเลขทีบ
่ อกตําแหน่ง Column และตําแหน่ง Row ลงไปใน
Copyright of www.ExcelExpertTraining.com
67
วิธท ้ ต
ี ี่ 2 : ใชส ้ า
ู ร Indirect(“Text บอกตําแหน่ง”) แบบใชต ํ แหน่ง
ขอบเขตตาราง
วิธน
ี ม
ี้ ห ี รกทีใ่ ชตํ้ าแหน่งอ ้างอิงจากเซลล์เดียว เพียงแต่ตําแหน่งอ ้างอิงแบบ
ี ลักการคล ้ายกับวิธแ
ขอบเขตตารางต ้องอยูใ่ นโครงสร ้างของ ตําแหน่งเซลล์ตน
้ ทาง:ตําแหน่งเซลล์ปลายทาง
่ A1:A3 จากนัน
เชน ้ จึงนํ าตําแหน่งอ ้างอิงทีไ่ ด ้ไปใชกั้ บสูตร Indirect
จากนัน ้
้ ใชเซลล์ ื่ มต่อกับเครือ
D8 นํ าตําแหน่งเซลล์ต ้นทางมาเชอ ื่ มต่อกับ
่ งหมาย : แล ้วเชอ
ตําแหน่งเซลล์ปลายทางด ้วยสูตร =C6&”:”&E6 จะได ้ค่า a1:a3
Copyright of www.ExcelExpertTraining.com
68
วิธท ้ ต
ี ี่ 3 : ใชส ้ อ
ู ร Indirect(“Text บอกตําแหน่ง”) แบบใชช ื่ Range
Name
ตัวอย่างนีต
้ า่ งจากตัวอย่างทีผ ื่ Range Name มาใชแทนตํ
่ า่ นมาเพียงแค่นําชอ ้ าแหน่งอ ้างอิง
่ หากตัง้ ชอ
โดยตรง เชน ื่ พืน
้ ทีต ื่ พืน
่ าราง D3:D6 ว่า Chonburi และตัง้ ชอ ้ ทีต
่ าราง C4:E4 ว่า
Year2 (ให ้ใชคํ้ าสงั่ Formulas > Create from selection เพือ ื่ พืน
่ ตัง้ ชอ ้ ทีต
่ ามคําทีอ
่ ยูบ
่ น
ของตารางรวดเดียว)
Copyright of www.ExcelExpertTraining.com
69
จากนัน ้
้ ใชเซลล์ C9 และ C10 สําหรับพิมพ์ชอ
ื่ Range Name ลงไป เชน
่ พิมพ์คําว่า Chonburi
และ Year2 ลงไปตามลําดับ
้ ต
ข้อควรระว ังในการใชส ู ร Indirect
ื่ เรียกประเภทของสูตร ทีจ
Volatile Function เป็ นชอ ่ ะทําการคํานวณใหม่ทก
ุ ครัง้ ตามการคํานวณ
ทีเ่ กิดขึน
้ ในแฟ้ ม ทัง้ ๆทีเ่ ซลล์สต
ู รนัน
้ ไม่ได ้มีตําแหน่งอ ้างอิงทีส ั พันธ์กบ
่ ม ั เซลล์อน
ื่ มีการคํานวณ
แม ้แต่น ้อย (ตามปกติสต
ู รจะคํานวณใหม่ตามต่อเมือ
่ มีเซลล์อน
ื่ ทีม
่ ต
ี ําแหน่งอ ้างอิงเกีย
่ วข ้องเกิด
การคํานวณเท่านัน ้ หากใชสู้ ตรทีท
้ ) ดังนัน ่ ําหน ้าทีแ
่ บบ Volatile นีม
้ ากไปจะทําให ้แฟ้ มคํานวณ
้
ชาลง แต่ถ ้ามีการใชสู้ ตรเพียงไม่กเี่ ซลล์ก็ไม่สง่ ผลเท่าใดนัก
สูตรทีจ
่ ัดเป็ นประเภท Volatile Function ได ้แก่ สูตร Areas, Cell, Column, Columns,
Indirect, Info, Now, Offset, Rand, Row, Rows, Today
วิธท ้ ต
ี ี่ 4 : ใชส ู รเพือ
่ ย้ายตําแหน่งอ้างอิงโดยอ ัตโนม ัติ
Copyright of www.ExcelExpertTraining.com
70
• สูตรทีส
่ ามารถเปลีย
่ นย ้ายตําแหน่งอ ้างอิงตามเงือ
่ นไขทีก ่ IF, Choose,
่ ําหนด เชน
Index, Offset
• สูตรทีส
่ ามารถเปลีย ่ VLookup, Match ที่
่ นย ้ายตําแหน่งอ ้างอิงโดยอัตโนมัต ิ เชน
นํ ามาใชร่้ วมกับสูตร Index หรือ Offset, Address ทีน
่ ํ ามาใชร่้ วมกับสูตร Indirect
Copyright of www.ExcelExpertTraining.com
71
การกําหนดตําแหน่งอ้างอิงแบบวงกลม
(Circular Reference)
ทีน
่ ่ากลัวทีส
่ ด ื คนบางคนทีใ่ ช ้ Excel มานาน แต่อาจไม่เคยพบคําเตือนตามหน ้าจอข ้างบนนี้
ุ ก็คอ
เปิ ดขึน ั ครัง้ เดียว ซงึ่ เป็ นไปได ้น ้อยมากทีผ
้ มาแสดงสก ่ ู ้ใช ้ Excel ไม่เคยพลัง้ เผลอสร ้างสูตรผิด
แบบ Circular มาก่อน แต่อาจเป็ นไปได ้ว่าตัวเองได ้สร ้างสูตรแบบ Circular Reference นีม
้ า
้ สงั่ ให ้ Excel เลิกเตือน โดยเฉพาะแฟ้ มงานทีเ่ ป็ นมรดกตกทอด
ก่อนแล ้ว เพียงแต่วา่ เขาเหล่านัน
ใชต่้ อกันมาหลายต่อหลายรุน
่ พอเปิ ดแฟ้ มเข ้าไปแก ้ไขสูตรหรือโยกย ้ายเซลล์ทรี่ น
ุ่ พีเ่ ขาสร ้างไว ้
โดยไม่รู ้จักทีไ่ ปทีม
่ าของสูตรในเซลล์เหล่านัน
้ ก็อาจทําให ้เกิด Circular Reference ได ้ทันที
ตัวอย่างการสร ้างสูตรทีม
่ ต
ี ําแหน่งอ ้างอิงแบบวงกลมทีง่ า่ ยทีส
่ ด ่ ในเซลล์ A1 สร ้างสูตร
ุ เชน
=A1 ลงไป หรือในเซลล์ B3 สร ้างสูตร = B1+B2+B3 ลงไป หรือสงั เกตง่ายๆว่าสูตรในเซลล์
ใดมีตําแหน่งอ ้างอิงทีร่ ะบุถงึ เซลล์นัน ่ ้วย ซงึ่ นอกจากนีห
้ เองอยูด ้ ากมีสต
ู รที่ link ต่อๆกันไป
หลายๆเซลล์แล ้วกลับสง่ ค่ากลับมาในเซลล์ใดเซลล์หนึง่ ในวงจรของเซลล์ท ี่ link กัน เชน
่
เซลล์ A1 มีสต
ู ร =A3 และเซลล์ A2 มีสต
ู ร =A1 แล ้วเซลล์ A3 มีสต
ู ร =A2 ย่อมทําให ้เกิด
่ กัน ซงึ่ เรียกอีกแบบหนึง่ ว่าเกิดการคํานวณแบบวงกลม
ตําแหน่งอ ้างอิงแบบวงกลมได ้เชน
(Circular Calculation)
Copyright of www.ExcelExpertTraining.com
72
่ ะใชสู้ ตรทีม
หมายเหตุ แทนทีจ ี ําแหน่งอ ้างอิงแบบวงกลม ซงึ่ ทําให ้แฟ้ มนัน
่ ต ้ มีระบบการคํานวณ
่ ้องสงั่ ให ้ Excel ยอมรับก่อนจึงจะคํานวณได ้คําตอบถูกต ้อง เราสามารถใชคํ้ าสงั่
แบบพิเศษทีต
อืน
่ ทีท ่ งั่ ให ้ Excel คํานวณซํ้าได ้ เชน
่ ําหน ้าทีส ่ Goal Seek หรือใช ้ Solver Add-in หรือใชคํ้ าสงั่
จาก Visual Basic ควบคุมการคํานวณแทน
Copyright of www.ExcelExpertTraining.com
73
ขนตอนการสร้
ั้ างสูตรคํานวณแบบ Circular Reference
1. ให ้เลือกสร ้างสูตรอืน
่ ๆทีค
่ ํานวณตามปกติทก ้
ุ สูตร (ทีไ่ ม่ต ้องใชการคํ านวณแบบ Circular
Reference) ให ้เสร็จก่อน แล ้วจึงสร ้างสูตรทีต
่ ้องคํานวณแบบ Circular Reference เป็ นสูตร
สุดท ้าย เนือ ่ ใด คุณจะต ้องสงั่ ให ้
่ งจากหากต ้องการให ้ Excel คํานวณแบบ Circular เมือ
Excel เลิกเปิ ดคําเตือน ซงึ่ หากมีการสร ้างสูตรผิดพลาดเผลอไปสร ้างสูตร Circular
Reference ขึน
้ โดยไม่เจตนา ก็ยอ
่ มไม่มก
ี ารเตือนให ้ทราบ
2. เมือ
่ สร ้างสูตรคํานวณแบบ Circular Reference แล ้วกดปุ่ ม Cancel เพือ
่ ปิ ดคําเตือนบน
หน ้าจอตามรูปข ้างต ้นแล ้ว จะพบคําว่า Circular References: ต่อด ้วยตําแหน่งเซลล์แสดง
ขึน ้
้ ตรงขอบด ้านล่างซายของจอ พร ้อมทัง้ ในพืน
้ ทีต ้ กศรสน
่ ารางก็จะมีเสนลู ี ํ้ าเงินชต
ี้ ําแหน่ง
ี่ ําให ้เกิดการอ ้างอิงแบบวงกลม ซงึ่ หากต ้องการให ้ Excel แสดงชอ
เซลล์ทท ื่ ตําแหน่งเซลล์ท ี่
่ วข ้องกับการอ ้างอิงแบบวงกลมด ้วย ให ้สงั่ Formulas > Error Checking >
เกีย
่ วข ้องปรากฏต่อท ้ายคําสงั่ นี้
Circular References แล ้วจะพบตําแหน่งเซลล์ทเี่ กีย
Copyright of www.ExcelExpertTraining.com
74
่ ง Iteration)
> Calculation > กาชอ
Copyright of www.ExcelExpertTraining.com
75
จากนัน
้ ให ้ทยอยลบสูตรในเซลล์ดงั กล่าวทิง้ ไปทีละเซลล์ จนกว่าจะพบว่าเมือ
่ ลบสูตรใน
เซลล์ใดเสร็จแล ้ว ทําให ้ไม่เกิดคําเตือน Circular ต่อไปอีก หลังจากนัน
้ จึงไล่สร ้างสูตรใหม่
้ มาแทน ซงึ่ หลายๆครัง้ จะพบว่าต ้องไล่ลบสูตรในเซลล์ทงิ้ แล ้วต ้องสร ้างสูตรใหม่นับร ้อย
ขึน
นับพันเซลล์ทเี ดียว โดยเฉพาะตารางคํานวณทีต
่ ้องคํานวณรายการรายวันหรือรายเดือนต่อ
้ ผู ้ใช ้ Excel ทุกคนต ้องรู ้ตัวทันทีเมือ
กันไปเป็ นตารางขนาดใหญ่ ดังนัน ่ ตัวเองเผลอสร ้างสูตร
ทีม
่ ต
ี ําแหน่งอ ้างอิงแบบวงกลมขึน ี แรงเสย
้ มาเป็ นครัง้ แรก หากปล่อยไว ้ก็จะต ้องเสย ี เวลาไล่
ย ้อนมาแก ้ไขกันใหม่ทล
ี ะเซลล์
7. เซลล์ทท ่ ใี ห ้ต่างจากเซลล์อน
ี่ ําให ้เกิด Circular นี้ ควรใสส ื่ หรือทําเครือ
่ งหมายพิเศษ หรือ
เขียนอธิบายกํากับไว ้ด ้วยเพือ ้
่ เตือนผู ้ใชงานให ้แก ้ไขสูตรอย่างระมัดระวัง
ื่ แฟ้ มทีม
8. ควรตัง้ ชอ ่ ส
ี ต
ู รทีม
่ ต ื่ ทีส
ี ําแหน่งอ ้างอิงแบบวงกลมให ้มีชอ ่ ะดุดตา จะได ้ไม่เผลอเปิ ด
แฟ้ มทีต
่ ้องคํานวณแบบ Iterations นีข
้ น ้
ึ้ มาใชงานพร ้อมกับแฟ้ มอืน
่ เพราะแฟ้ มอืน
่ ๆจะรับ
คําสงั่ Iterations นีต
้ ามไปด ้วยโดยไม่จําเป็ น
9. หากปิ ดโปรแกรม Excel แล ้วเปิ ด Excel ขึน ่ ง Enable
้ มาใหม่ จะพบว่า Excel ตัดกาชอ
iterative calculation ทิง้ ไปให ้เสมอ
เคล็ดล ับอืน
่ ๆเกีย ้ ําแหน่งอ้างอิง
่ วก ับการใชต
Copyright of www.ExcelExpertTraining.com
76
Copyright of www.ExcelExpertTraining.com
77
แฟ้ ม) จากนัน
้ เมือ ี ใหม่ก็ได ้ โดย Excel
่ ต ้องการ Paste สามารถเลือก Paste ทีเ่ ซลล์ใดในชท
ี ใหม่ให ้เอง
จะปรับตําแหน่งอ ้างอิงตามตําแหน่งในชท
8. ในกรณีทต ี หนึง่ ไปยังชท
ี่ ้องการ Copy ตารางจากชท ี อืน
่ หรือแฟ้ มอืน
่ ให ้เริม
่ จากเลือกพืน
้ ที่
ตารางทีต
่ ้องการจะ Copy จากนัน
้ เมือ ี ใหม่ทเี่ ป็ นเซลล์
่ ต ้องการ Paste ให ้เลือกเซลล์ในชท
เดียวกับเซลล์แรกของตารางที่ Copy ไว ้ก่อน แล ้วจึงสงั่ Paste
9. หากต ้องการป้ องกันไม่ให ้ผู ้อืน
่ นํ าแฟ้ มไปแก ้ไขสูตร ไม่จําเป็ นต ้อง Protect Sheet ก็ได ้ แต่
ให ้สงั่ ตัดเครือ ู รทุกเซลล์โดยใชคํ้ าสงั่ Replace เพือ
่ งหมาย $ ออกจากเซลล์สต ่ ทําให ้สูตร
ทัง้ หมดถูกแก ้ไขหรือสร ้างใหม่ได ้ยากมาก (น่าสงั เกตว่าพอตัดเครือ
่ งหมาย $ ทิง้ ไป แฟ้ มจะ
มีขนาดใหญ่ขน
ึ้ )
10. หากต ้องการป้ องกันการ Insert Row หรือ Insert Column ในพืน ่ ว่ งใด ให ้สร ้างสูตร
้ ทีช
Array ลงไปพร ้อมกันเป็ นรัว้ ขอบเขตนัน ่ เลือกเซลล์ A1:A10 แล ้วพิมพ์สต
้ เชน ู ร =0 หรือ
=”” (=”” นี้ จะกลายเป็ นรัว้ ไฟฟ้ าทีม
่ องไม่เห็นข ้อมูลในเซลล์รัว้ นัน
้ ด ้วย)แล ้วกดปุ่ ม
Ctrl+Shift+Enter ลงไป จะได ้รัว้ ป้ องกันการ Insert Row ในชว่ ง Row 1 ถึง Row 10
11. หากต ้องการใช ้ Windows Explorer ในการ copy แฟ้ ม Excel ที่ link กันหลายๆแฟ้ มไปเก็บ
ที่ drive อืน
่ หรือโฟลเดอร์อน
ื่ ให ้ Copy ทัง้ โฟลเดอร์ทเี่ ก็บแฟ้ มที่ link กันนัน
้ ไปพร ้อมกัน
่ ใน ถ ้าเก็บแฟ้ มที่ link กันไว ้ในโฟลเดอร์ชอ
ทัง้ หมด เชน ื่ MyExcelFile ก็ให ้ Copy ตัว
โฟลเดอร์ MyExcelFile ซงึ่ มีแฟ้ มที่ link กันอยูภ
่ ายในนัน ื่
้ ไปทัง้ ชุด โดยในโฟลเดอร์ชอ
MyExcelFile อาจมีโฟลเดอร์ยอ
่ ยสร ้างไว ้ด ้วยก็ได ้ เมือ
่ Copy ไปไว ้ที่ drive อืน
่ แล ้ว คุณจะ
เปลีย ื่ โฟลเดอร์ MyExcelFile เป็ นชอ
่ นชอ ื่ อืน
่ ก็ได ้ แต่ห ้ามเปลีย ื่ โฟลเดอร์ยอ
่ นชอ ่ ยเพราะสูตร
ื่ โฟลเดอร์ยอ
link ในแฟ้ ม Excel จะจําชอ ื่ โฟลเดอร์ MyExcelFile)
่ ยไว ้ในสูตร (แต่ไม่จําชอ
12. แทนทีจ ื่ เดิม ขอให ้จัดเก็บแฟ้ มในชอ
่ ะจัดเก็บแฟ้ มไว ้ในชอ ื่ อืน
่ ทุกครัง้ ทีม
่ ก
ี ารแก ้ไขใดๆใน
แฟ้ มนัน
้ ทัง้ นีเ้ พือ
่ ทําให ้มีแฟ้ มเก่าเก็บไว ้หลายๆรุน ่ เดียวแฟ้ มเดียว ซงึ่
่ ดีกว่าการมีแฟ้ มรุน
ี่ งหากแฟ้ มนัน
เสย ี หายจนเปิ ดไม่ได ้
้ อาจเสย
Copyright of www.ExcelExpertTraining.com
78
F3 ใช ้ใส่ชอ
ื่ ตําแหน่งเซลล์หรือชือ
่ สูตรทีต
่ งั ้ ไว ้ในแฟ้ มนัน
้ ๆลงไปในสูตร
หรือสัง่ Paste List ต่อ จะสรุปชือ
่ ทีต
่ งั ้ ไว ้ทัง้ หมดลงไปในตาราง
F4 ใช ้ใส่เครือ
่ งหมาย $ กํากับตําแหน่งอ ้างอิง
หรือสัง่ ทวนคําสัง่ สุดท ้ายซํ้า
F5 ใช ้หาเซลล์ ตามตําแหน่งหรือชือ
่ ตําแหน่งเซลล์ทท
ี่ ราบ
หรือสัง่ Special ต่อ จะค ้นหาตําแหน่งเซลล์ได ้อีกหลายแบบ
Copyright of www.ExcelExpertTraining.com
79
หล ักการแยกต ัวแปร
Copyright of www.ExcelExpertTraining.com
80
Copyright of www.ExcelExpertTraining.com
81
จากภาพตารางข ้างบนนี้ เซลล์ G16 และเซลล์ H17 เป็ นเซลล์รับตัวแปร ซงึ่ มีคา่ เป็ นตัวเลข
็ ต์ต ้นทุนขายเท่ากับ 20% ตามลําดับ สว่ นเซลล์สต
ยอดขาย 1,000 บาทและตัวเลขเปอร์เซน ู ร
คํานวณมีในเซลล์ G17 มีสต
ู ร =H17*G16 เพือ
่ หายอดต ้นทุนขายเท่ากับ 200 บาท (คิดเป็ น
20% ของยอดขาย) สว่ นเซลล์ G19 เป็ นเซลล์สต
ู รคํานวณหากําไรขัน
้ ต ้นมีสต
ู ร =G16-G17-
้
G18 มาจากยอดขายหักต ้นทุนขายและหักค่าโฆษณา เซลล์ทเี่ ว ้นว่างไว ้คือเซลล์ G18 ให ้ใชหา
ค่าโฆษณา ซงึ่ ตอนเริม
่ ต ้นนีเ้ ว ้นว่างไว ้ จึงทําให ้เซลล์ H18 ซงึ่ มีสต ั สว่ นร ้อยละ
ู รคํานวณหาสด
้ ต ้น =G18/G19 ซงึ่ ขณะนีค
ของค่าโฆษณาต่อกําไรขัน ้ น
ื ค่าเท่ากับ 0
้ ม่สามารถใชวิ้ ธค
ตัวอย่างนีไ ี ด
ิ ง่ายๆว่า ในเมือ
่ ต ้องการค่าโฆษณาเป็ น 15% ของกําไรขัน
้ ต ้น ก็ให ้
ิ้ เรือ
สร ้างสูตร =.15*G19 ลงในในเซลล์ G18 ก็สน ่ ง เพราะหากสร ้างสูตร =.15*G19 ลงไปใน
้
เซลล์ G18 จะพบว่าเกิดการอ ้างอิงแบบวงกลม (ต ้องหันไปใชการคํ านวณแบบ Iteration เข ้ามา
ชว่ ย ซงึ่ เป็ นอีกวิธห
ี นึง่ ในการแก ้ปั ญหานี)้ เพราะหากค่าโฆษณาเพิม
่ จะทําให ้กําไรลด แล ้วพอ
Copyright of www.ExcelExpertTraining.com
82
Copyright of www.ExcelExpertTraining.com
83
ื่ ซงึ่ ในงานวางแผนตัดสน
อย่างไม่น่าเชอ ิ ใจนัน ื่ มัน
้ แทบเป็ นไปไม่ได ้เลยทีเ่ ราจะมีความเชอ ่
100% ต่อคําตอบทีม
่ อ
ี ยูเ่ สมอไป ดังนัน
้ แทนทีจ ี่ งกับการใชตั้ วเลขเพียงตัวเดียว ขอแนะนํ า
่ ะเสย
ให ้ใช ้ Goal Seek คิดย ้อนหาชว่ งค่าทีเ่ ป็ นไปได ้ว่าอยูใ่ นชว่ งตัวเลขระหว่างค่าใด เพือ
่ ทําให ้
สามารถวางแผนได ้อย่างยืดหยุน
่ มากขึน ่ เดิมเคยถามว่า ตัวเลขค่าโฆษณาในเซลล์ G18
้ เชน
้ ต ้น ก็ให ้ใช ้ Goal Seek ค ้นหาคําตอบทีย
ต ้องเป็ นเท่าใด จึงจะคิดเป็ น 15% ของกําไรขัน ่ ด
ื หยุน
่
กว่าเดิมว่า ตัวเลขค่าโฆษณาในเซลล์ G18 ต ้องเป็ นค่าระหว่างเลขใด จึงจะคิดเป็ น 15% -
20% ของกําไรขัน
้ ต ้น
Sub SetGoal()
End Sub
Sub SetGoal()
End Sub
Copyright of www.ExcelExpertTraining.com
84
ื่ Range Name ชอ
โดยกําหนดให ้ตัง้ ชอ ื่ ว่า MyTarget ให ้กับเซลล์ H18 และชอ
ื่ ChangeCell
ให ้กับเซลล์ G18 และเมือ
่ ใดทีต
่ ้องการตัวเลขตัวใหม่ ให ้กรอกตัวเลขลงไปในเซลล์ทต ื่ ว่า
ี่ งั ้ ชอ
TargetValue
End Sub
Copyright of www.ExcelExpertTraining.com
85
ั การออกแบบตารางแบบพิเศษทีจ
Data Table อาศย ่ ะชว่ ยให ้ Excel นํ าค่าทีว่ างไว ้บนหัวตาราง
หรือข ้างตารางด ้านใดด ้านหนึง่ หรือทัง้ สองด ้าน สง่ ต่อไปแทนทีค
่ า่ หรือสูตรทีบ
่ น
ั ทึกไว ้ในเซลล์
เมือ
่ ค่าในเซลล์เหล่านัน ่ นไปตามคําสงั่ Data Table ก็จะทําให ้เซลล์สต
้ เปลีย ู รทีเ่ กีย
่ วข ้อง
คํานวณหาคําตอบใหม่ เพียงแต่การเปลีย
่ นแปลงค่าในเซลล์และคําตอบใหม่ทเี่ กิดขึน
้ นัน
้ เราจะ
ไม่เห็นมีการเปลีย
่ นแปลงใดๆเกิดขึน
้ ในตาราง แต่จะพบว่า Excel นํ าคําตอบมาสรุปไว ้ในตาราง
Data Table ให ้เอง
สําหรับผู ้ทีค
่ ุ ้นเคยกับการเขียนโปรแกรมสําเร็จรูป การทํางานของ Data Table เปรียบเทียบได ้
้ สโปรแกรมสงั่ ให ้ Excel ทํางานซํ้าหลายครัง้ เป็ น loop โดย Excel จะสง่ ค่าไปที่
กับการใชรหั
เซลล์ทเี่ รากําหนดให ้ในแต่ละ loop ทัง้ นี้ Data Table จะทํางานเป็ น loop ให ้อัตโนมัตโิ ดยเรา
ี เวลาเขียนโปรแกรมแม ้แต่น ้อย
ไม่ต ้องเสย
Copyright of www.ExcelExpertTraining.com
86
ทางออกในการแก ้ปั ญหานี้ หากคุณไม่รู ้จัก Data Table มาก่อน ก็คงต ้องสร ้างตารางคํานวณซํ้า
กันหลายๆตารางเพือ ่ วั เลขค่าโฆษณาลงไปเพือ
่ ทดลองใสต ่ หาผลลัพธ์ทต
ี่ ้องการ
แทนทีจ ี แรงเสย
่ ะเสย ี เวลาสร ้างตารางคํานวณซํ้า ให ้ออกแบบโครงสร ้างตาราง Data Table
ขึน ้ งั เกตว่าต ้องการเปลีย
้ มาก่อน โดยในปั ญหานีส ่ นค่าโฆษณาเพียงค่าเดียว ดังนัน
้ จึงเข ้าข่าย
Data Table แบบ 1 ตัวแปร ซงึ่ มีโครงสร ้างแยกแยะออกไปอีก 2 แบบย่อยตามแต่วา่ คุณ
ต ้องการดูตวั แปรตามแนวใด ได ้แก่
Copyright of www.ExcelExpertTraining.com
87
้
หากใชตาราง Data Table แบบวางตัวแปรไว ้ในหัวตารางด ้านบนตามแนวนอน ต ้องออกแบบ
ตารางตามรูปต่อไปนี้
ข ้อสงั เกต
Copyright of www.ExcelExpertTraining.com
88
่ เป็ นตารางทีใ่ ช ้
Data Table แบบ 1 ตัวแปร จะเกิดสูตร =Table(Row Input Cell,) เมือ
่ เป็ นตารางทีใ่ ช ้
Row Input และจะเกิดสูตร =Table(, Column Input Cell) เมือ
้
Column Input สว่ น Data Table แบบ 2 ตัวแปรจะเกิดสูตรทีใ่ ชโครงสร ้างแบบเต็ม
=Table(Row Input Cell, Column Input Cell)
ั เจนว่า ในขณะทีค
4. การอ่านผลลัพธ์จากตาราง Data Table ต ้องอธิบายให ้ชด ่ า่ โฆษณา
เปลีย
่ นแปลงไปนัน
้ ตัวเลขตัวแปรอืน
่ ได ้แก่ ยอดขาย และ %ต ้นทุนขาย ถือว่าคงที่
่ วั เลขใดๆแม ้จะสร ้างสูตรคํานวณไว ้ก่อน
5. ค่าโฆษณาในเซลล์ G18 จะเว ้นว่างไว ้หรือจะใสต
หรือหลังการสงั่ Data Table ก็ได ้ เพราะไม่มผ
ี ลต่อการคํานวณใน Data Table
้ อ
6. ตาราง Data Table ไม่สามารถถูก Copy ออกไปใชที ่ น
ื่ เพราะเมือ
่ Paste จะพบว่าสูตร
Table ในตารางถูกเปลีย
่ นเป็ นตัวเลขค่าคําตอบแทนทุกเซลล์
7. เราไม่สามารถ Insert แทรกเซลล์สต
ู ร Table และหากต ้องการลบสูตร Table ทิง้ ต ้อง
เลือกพืน
้ ทีต
่ ารางทัง้ หมดทีม
่ ส
ี ต
ู ร Table แล ้วจึงจะสามารถลบสูตรทิง้ พร ้อมกันทุกเซลล์
Copyright of www.ExcelExpertTraining.com
89
Copyright of www.ExcelExpertTraining.com
90
้ ต
หลากหลายแนวทางการใชส ู ร IF
ถ ้านํ าเงือ
่ นไขข ้างต ้นเกีย
่ วกับหัวหน ้ามาเขียนด ้วยสูตร IF จะได ้สูตรตามนี้
ถ ้าคุณเข ้าใจวิธค
ี ด
ิ เงือ
่ นไขในใจของตัวคุณเอง ก็จะพบว่าบริษัทไมโครซอฟท์ได ้สร ้าง Excel
้ มาโดยใชสู้ ตร IF ทีม
ขึน ่ โี ครงสร ้างของสูตรตามหลักการเดียวกันกับทีค
่ ณ
ุ คิดได ้นั่นเอง
โครงสร้างสูตร IF
=IF(การตรวจสอบเงือ
่ นไข, ผลลัพธ์กรณีทต ่ นไขว่าใช,่ ผลลัพธ์กรณีท ี่
ี่ รวจสอบเงือ
่ นไขว่าไม่ใช)่
ตรวจสอบเงือ
Copyright of www.ExcelExpertTraining.com
91
ตัวอย่างการใช ้ IF แบบง่ายๆ
สูตรนีจ
้ ะคืนค่าเป็ นตัวเลข 1000 ต่อเมือ
่ เซลล์ทต ื่ ว่า SaleChoice มีคา่ เป็ นตัวอักษร n
ี่ งั ้ ชอ
เท่านัน
้ แต่ถ ้า SaleChoice มีคา่ อืน
่ จะคืนค่าเป็ นตัวเลข 2000 แทน
่ งจากตัวอักษร n เป็ นตัวอักษรที่ Excel ไม่รู ้จัก จึงจําเป็ นต ้องใส่ "n" ไว ้ระหว่างเครือ
เนือ ่ งหมาย
คําพูด สว่ นคําว่า IF และ SaleChoice นัน
้ แม ้ว่าเป็ นตัวอักษรแต่ไม่ต ้องใสร่ ะหว่างเครือ
่ งหมาย
ื่ IF และคําว่า SaleChoice เป็ น
คําพูดเพราะเป็ นตัวอักษรที่ Excel รู ้จักแล ้วว่าคําว่า IF คือสูตรชอ
Range Name ทีต ื่ ไว ้ สว่ นตัวเลข 1000 และ 2000 เป็ นตัวเลขที่ Excel รับทราบอยูแ
่ งั ้ ชอ ่ ล ้วว่า
เป็ นตัวเลขจึงไม่ต ้องใสร่ ะหว่างเครือ
่ งหมายคําพูดแต่อย่างใด
=IF(MyMargin>0, MyMargin*0.3, 0)
้ ต
แนวทางการใชส ู ร IF
้ ย
1.ใชเปลี ้
่ นเสนทางการรั บค่า
้
2.ใชในการตั ิ ใจ
ดสน
้
3.ใชในการเปลี
ย ่ นค่าหรือแสดงค่า
้ ย
4.ใชเปลี ้
่ นเสนทางการส ง่ ค่า
Copyright of www.ExcelExpertTraining.com
92
้ ต
การใชส ู ร IF ในการเปลีย ้ ทางการร ับค่า
่ นเสน
ดังนัน
้ เมือ
่ เซลล์ E2 มีคา่ เป็ น A จึงทําให ้เซลล์ E3 รับค่า 100 มาจากเซลล์ C2 แต่ถ ้าเซลล์ E2
ไม่ได ้มีคา่ เป็ น A ก็จะทําให ้เซลล์ E3 เปลีย ้
่ นเสนทางการรั บค่า 200 มาจากเซลล์ C3 แทน
Copyright of www.ExcelExpertTraining.com
93
สูตรลิงค์เพือ ั ซอนมากขึ
่ เลือกรับค่าในเซลล์ F9 จะกลายเป็ นสูตรซบ ้ น ้
=IF(E9="A",C2,IF(E9="B",C5,IF(E9="C",C8,IF(E9="D",C11,IF(E9="E",C14,IF(
E9="F",C17,IF(E9="G",F2,IF(E9="H",F17,IF(E9="I",I2,IF(E9="J",I5,IF(E9="
K",I8,IF(E9="L",I11,IF(E9="M",I14,I17)))))))))))))
แต่ถ ้าโครงสร ้างตารางไม่ได ้จัดให ้เป็ นระเบียบ แม ้สูตร IF จะยังคงทํางานได ้ตามเดิมก็ตาม แต่
จะพบว่าการแกะสูตรเพือ
่ ตรวจสอบความถูกต ้องทําได ้ยากขึน
้ มาก
สูตรในเซลล์ F9
Copyright of www.ExcelExpertTraining.com
94
=IF(E9="A",C2,IF(E9="B",I3,IF(E9="C",J11,IF(E9="D",F2,IF(E9="E",I9,IF(E9
="F",J16,IF(E9="G",H14,IF(E9="H",E14,IF(E9="I",G17,IF(E9="J",H7,IF(E9=
"K",C8,IF(E9="L",D6,IF(E9="M",D12,C17)))))))))))))
แต่ชว่ ยตรวจสอบว่า แม ้ว่า E9 มีคา่ เท่ากับ K ทําให ้เซลล์ F9 รับค่า 1100 มาจากเซลล์ C8 ได ้
ถูกต ้องตามต ้องการก็ตาม แต่คา่ 1100 ทีไ่ ด ้รับมานัน ่ ัวเลขของค่า K แต่เป็ นของค่า X
้ ไม่ใชต
่ รือ
มิใชห
้
ตัง้ แต่ Excel 2007 เป็ นต ้นมา ในวงเล็บของแต่ละสูตร เราสามารถซอนสู
ตรเข ้าไปได ้ถึง 64 สูตร
(Excel 2003 และรุน
่ ก่อนนัน ้
้ จะซอนได ้เพียง 7 สูตร) ซงึ่ จากตัวอย่างข ้างต ้นน่าจะทําให ้เราได ้
เรียนรู ้ว่า ถึงแม ้ว่าเราสามารถใชสู้ ตร IF ซอน
้ IF เพือ
่ หาค่าทีก
่ ระจายกันอยูต
่ า่ งทีต ี ต่าง
่ า่ งชท
แฟ้ มได ้ก็ตาม แต่การกระจายกันของค่านีเ่ อง หากกระจายอย่างขาดระเบียบ ย่อมเพิม ี่ ง
่ ความเสย
ทีจ
่ ะหาคําตอบผิดพลาดได ้โดยไม่รู ้ตัว และเมือ
่ จะตรวจสอบแก ้ไขก็จะทําให ้ทําได ้ยาก
Copyright of www.ExcelExpertTraining.com
95
้ ต
การใชส ิ ใจ
ู ร IF ในการต ัดสน
การใชสู้ ตร IF ในการตัดสน
ิ ใจมี 2 แบบ ขึน
้ กับว่าเงือ
่ นไขถัดไปกําหนดว่าต ้องผ่านเงือ
่ นไขก่อน
หน ้าอย่างไร
1. การใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทไี่ ม่ใช ่
2. การใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ช ่
การใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทไี่ ม่ใช่
เป็ นเงือ
่ นไขทีพ ่ สูตร IF ในตัวอย่างทีใ่ ชส้ ําหรับเปลีย
่ บเห็นกันทัว่ ไป เชน ้
่ นเสนทางในการรั บค่า
นั่นเอง เมือ
่ เงือ
่ นไขการรับค่าแรกผ่านไปแล ้ว ได ้คําตอบแรกตามเงือ
่ นไขแรกเมือ ิ ว่าใชไ่ ป
่ ตัดสน
แล ้วก็จะได ้คําตอบกรณีทใี่ ชเ่ รียบร ้อย แต่หากเงือ
่ นไขแรกไม่ผา่ น ก็จะต ้องพิจารณาเงือ
่ นไขใน
ลําดับถัดไป ซงึ่ แสดงเป็ นโครงสร ้างสูตร IF จากแบบง่ายๆกลายเป็ นแบบซอนกั
้ นดังนี้
สําหรับการตัดสน
ิ ใจในเงือ
่ นไขแรก
=IF(เงือ ่ องเงือ
่ นไขที่ 1, ผลกรณีใชข ่ องเงือ
่ นไขที่ 1, ผลกรณีไม่ใชข ่ นไขที่ 1)
่ องเงือ
่ นไขที่ 1 ยังไม่ผา่ น ให ้แตกผลกรณีไม่ใชข
ถ ้าเงือ ่ นไขที่ 1 ต่อเป็ น IF สูตรทีส
่ องเพือ
่ คิด
ตามเงือ
่ นไขที่ 2
=IF(เงือ ่ องเงือ
่ นไขที่ 2, ผลกรณีใชข ่ องเงือ
่ นไขที่ 2, ผลกรณีไม่ใชข ่ นไขที่ 2)
เมือ
่ นํ าสูตรทัง้ สองเงือ ้
่ นไขมาซอนเป็ นสูตรในเซลล์เดียว จะได ้สูตรตามนี้
=IF(เงือ ่ องเงือ
่ นไขที่ 1, ผลกรณีใชข ่ นไขที่ 1, IF(เงือ ่ อง
่ นไขที่ 2, ผลกรณีใชข
เงือ ่ องเงือ
่ นไขที่ 2, ผลกรณีไม่ใชข ่ นไขที่ 2) )
Copyright of www.ExcelExpertTraining.com
96
ตัวอย่างการใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทไี่ ม่ใชใ่ นการตัดเกรด
ซงึ่ แปลสูตรออกมาตามเงือ
่ นไขทีก
่ ําหนดได ้เป็ น
=IF( คะแนนทีส
่ อบได ้ >=90, "A", IF(คะแนนทีส
่ อบได ้ >=70,"B","C") )
ข ้อสงั เกต
Copyright of www.ExcelExpertTraining.com
97
การใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ช่
เป็ นเงือ
่ นไขทีก ้
่ ําหนดซอนเข ้าไปเพือ ิ ใจในทุกเงือ
่ ตัดสน ่ นไขพร ้อมกันไป เกิดเป็ นโครงสร ้างสูตร
ตามนี้
=IF(เงือ
่ นไขที่ 1, IF(เงือ ่ องเงือ
่ นไขที่ 2, ผลกรณีใชข ่ นไขที่ 1 และ 2, ผลกรณีไม่ใช ่
ของเงือ ่ องเงือ
่ นไขที่ 2), ผลกรณีไม่ใชข ่ นไขที่ 1)
่ องทุกเงือ
หากผลกรณีทใี่ ชข ่ นไขเป็ นค่าเดียวกัน สว่ นผลกรณีทไี่ ม่ใชข
่ องเงือ
่ นไขที่ 1 และผล
่ องเงือ
กรณีทไี่ ม่ใชข ่ ะใชสู้ ตร IF ซอนกั
่ นไขที่ 2 เป็ นค่าเดียวกัน แทนทีจ ้ นหลายสูตร ให ้ใชสู้ ตร
And หรือ Or มาชว่ ยในสูตร IF เพียงสูตรเดียวได ้ดังนี้
หมายเหตุ
Copyright of www.ExcelExpertTraining.com
98
ต ัวอย่างการใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ชใ่ นการป้องก ัน
สูตรล ับ
้ IF จะได ้สูตรตามเซลล์ D2
ถ ้าสร ้างสูตร IF ซอน
Copyright of www.ExcelExpertTraining.com
99
ต ัวอย่างการใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ชใ่ นการร ับเงิน
่ งว ันทีก
ในชว ่ า
ํ หนด
หากต ้องการรับเงิน 100 บาท ระหว่างวันที่ 2-5 กําหนดให ้ใช ้ Range Name ในตารางต่อไปนี้
• ื่ From
B3:B8 ชอ
• ่ื To
C3:C8 ชอ
• ื่ Amount
D3:D8 ชอ
• ื่ Date
E2:K2 ชอ
หรือ
ข ้อสงั เกต
ตัวอย่างนีใ้ ชสู้ ตร And มาชว่ ยเพราะต ้องการให ้คืนค่าเป็ น True เฉพาะในชว่ งวันที่ 2-5 เท่านัน
้
(ดูเซลล์ E8:K8)
Copyright of www.ExcelExpertTraining.com
100
้ ต
การใชส ู ร IF ในการเปลีย
่ นค่าหรือแสดงค่า
ในกรณีทผ
ี่ ลลัพธ์จากการคํานวณหรือค่าทีไ่ ด ้จากการลิงค์ตอ
่ มาจากเซลล์อน ่ า่ ที่
ื่ อาจไม่ใชค
้ นเสมอไป เราสามารถนํ าสูตร IF มาชว่ ยเปลีย
ต ้องการแสดงให ้ผู ้ใชเห็ ่ นค่าเดิมนัน
้ ให ้กลายเป็ น
ค่าใหม่หรือเปลีย
่ นจากตัวเลขหรือคําเตือน Error ให ้กลายเป็ นตัวอักษรทีส ื่ ความหมายได ้
่ อ
ั เจนกว่าแทน
ชด
ใน Row 5 ถ ้าเปลีย
่ นเลข 5 ทีเ่ ป็ นตัวหาร ให ้เป็ นเลข 0 แทน จะพบว่าสูตร =B5/C5 ไม่สามารถ
คํานวณได ้ โดยแสดง Error #DIV/0! ออกมาแทน (#DIV/0! ย่อมาจากคําว่า Error from
Divided by Zero หรือ Error เนือ
่ งจากการถูกหารด ้วยเลข 0)
=IF(C8=0, 0, B8/C8)
ใน Row 11 กรณีทต
ี่ วั หารเป็ นตัวอักษร o (หรือตัวอักษรอืน
่ ใด) เราสามารถป้ องกันการเกิด
Error จากการหารโดยใชสู้ ตร IsError มาชว่ ยตรวจสอบการคํานวณว่าจะเกิด Error หรือไม่
Copyright of www.ExcelExpertTraining.com
101
=IFERROR(B11/C11,0)
หมายเหตุ
สูตรกลุม ้ ว
่ Is ทีใ่ ชช ่ ยในการตรวจสอบ
Copyright of www.ExcelExpertTraining.com
102
• IsText ตรวจสอบเซลล์มค
ี า่ เป็ น Text หรือค่าทีจ ิ ซายให
่ ะชด ้ ้เองเมือ ่
่ พิมพ์ลงไป เชน
'123 ถือว่าเป็ น Text
• IsNumber ตรวจสอบเซลล์มค
ี า่ เป็ น Number หรือค่าทีจ ิ ขวาให ้เองเมือ
่ ะชด ่ พิมพ์ลงไป
่ 10/4/2010 จะชด
เชน ิ ขวาเพราะถือว่าเป็ น Number
้ ต
การใชส ู ร IF ในการเปลีย ้ ทางการสง
่ นเสน ่ ค่า
ตามปกติสต
ู รทีส
่ ร ้างลงไปในเซลล์จะทําหน ้าทีค ่ งิ ค์มาจากเซลล์ต ้นทาง สว่ น
่ ํานวณหรือรับค่าทีล
การสง่ ค่าจากเซลล์ต ้นทางไปยังเซลล์ปลายทางโดยไม่ต ้องสร ้างสูตรลงไปในเซลล์นัน
้ ไม่
ี กติทวั่ ไป แต่ต ้องเขียนรหัส VBA เข ้ามาชว่ ย
สามารถทําได ้โดยวิธป
ตัวอย่าง กําหนดให ้สง่ ค่าจากเซลล์ Source ไปยังเซลล์ Target1 หรือ Target2 ตามเงือ
่ นไข
ต่อไปนี้
Sub SendData()
Copyright of www.ExcelExpertTraining.com
103
MyVar = [Source]
[Target] = MyVar
End Sub
1. ชุดคําสงั่ นีจ
้ ะรับค่าทีเ่ ก็บไว ้ในเซลล์ทต ื่ ไว ้ว่า Source ไปเก็บไว ้ทีต
ี่ งั ้ ชอ ่ วั แปรทีม
่ ช ื่ ว่า
ี อ
MyVar
้ ค่าทีเ่ ก็บไว ้ใน MyVar จะถูกสง่ ต่อไปยัง Formula Name ทีต
2. จากนัน ื่ ไว ้ว่า Target
่ งั ้ ชอ
3. เนือ
่ งจาก Target เป็ นสูตร =IF( Source<0, Target1, Target2) จึงทําหน ้าที่
ตรวจสอบค่าทีร่ ับมาจาก Source ก่อนแล ้วจึงเลือกสง่ ค่าไปยังเซลล์ทต ื่ ว่า Target1
ี่ งั ้ ชอ
หรือ Target2 ตามเงือ
่ นไขทีก
่ ําหนดไว ้ข ้างต ้นต่อไป
Copyright of www.ExcelExpertTraining.com
104
หลบร้อนหนีสต
ู ร IF ไปหาทางออกอืน
่
=IF(F9>C9,1,IF(SUM(F9:G9)>C9,2,IF(SUM(F9:H9)>C9,3,IF(SUM(F9:I9)>C9,4,IF(SU
M(F9:J9)>C9,5,IF(SUM(F9:K9)>C9,6,IF(SUM(F9:L9)>C9,7,0)))))))
+IF(SUM(F9:L9)>C9,0,IF(SUM(F9:M9)>C9,8,IF(SUM(F9:N9)>C9,9,IF(SUM(F9:O9)>
C9,10,IF(SUM(F9:P9)>C9,11,IF(SUM(F9:Q9)>C9,12,IF(SUM(F9:R9)>C9,13,0)))))))
+IF(SUM(F9:R9)>C9,0,IF(SUM(F9:S9)>C9,14,IF(SUM(F9:T9)>C9,15,IF(SUM(F9:U9)
>C9,16,IF(SUM(F9:V9)>C9,17,IF(SUM(F9:W9)>C9,18,IF(SUM(F9:X9)>C9,19,0)))))
))
+IF(SUM(F9:X9)>C9,0,IF(SUM(F9:Y9)>C9,20,IF(SUM(F9:Z9)>C9,21,IF(SUM(F9:AA9
)>C9,22,IF(SUM(F9:AB9)>C9,23,IF(SUM(F9:AC9)>C9,24,IF(SUM(F9:AD9)>C9,25,0)
))))))
Copyright of www.ExcelExpertTraining.com
105
+IF(SUM(F9:AD9)>C9,0,IF(SUM(F9:AE9)>C9,26,IF(SUM(F9:AF9)>C9,27,IF(SUM(F9:
AG9)>C9,28,IF(SUM(F9:AH9)>C9,29,IF(SUM(F9:AI9)>C9,30,IF(SUM(F9:AJ9)>C9,31
,0)))))))
=IF(F9>C9,1,IF(SUM(F9:G9)>C9,2,IF(SUM(F9:H9)>C9,3,IF(SUM(F9:I9)>C9,4,IF(SU
M(F9:J9)>C9,5,IF(SUM(F9:K9)>C9,6,IF(SUM(F9:L9)>C9,7,IF(SUM(F9:M9)>C9,8,IF(
SUM(F9:N9)>C9,9,IF(SUM(F9:O9)>C9,10,IF(SUM(F9:P9)>C9,11,IF(SUM(F9:Q9)>C9
,12,IF(SUM(F9:R9)>C9,13,IF(SUM(F9:S9)>C9,14,IF(SUM(F9:T9)>C9,15,IF(SUM(F9:
U9)>C9,16,IF(SUM(F9:V9)>C9,17,IF(SUM(F9:W9)>C9,18,IF(SUM(F9:X9)>C9,19,IF(
SUM(F9:Y9)>C9,20,IF(SUM(F9:Z9)>C9,21,IF(SUM(F9:AA9)>C9,22,IF(SUM(F9:AB9)
>C9,23,IF(SUM(F9:AC9)>C9,24,IF(SUM(F9:AD9)>C9,25,IF(SUM(F9:AE9)>C9,26,IF(
SUM(F9:AF9)>C9,27,IF(SUM(F9:AG9)>C9,28,IF(SUM(F9:AH9)>C9,29,IF(SUM(F9:AI
9)>C9,30,IF(SUM(F9:AJ9)>C9,31,0)))))))))))))))))))))))))))))))
=(F9<=C9)+(SUM(F9:G9)<=C9)+(SUM(F9:H9)<=C9)+(SUM(F9:I9)<=C9)+(SUM(F
9:J9)<=C9)+(SUM(F9:K9)<=C9)+(SUM(F9:L9)<=C9)+(SUM(F9:M9)<=C9)+(SUM(F
9:N9)<=C9)+(SUM(F9:O9)<=C9)+(SUM(F9:P9)<=C9)+(SUM(F9:Q9)<=C9)+(SUM(
Copyright of www.ExcelExpertTraining.com
106
F9:R9)<=C9)+(SUM(F9:S9)<=C9)+(SUM(F9:T9)<=C9)+(SUM(F9:U9)<=C9)+(SUM
(F9:V9)<=C9)+(SUM(F9:W9)<=C9)+(SUM(F9:X9)<=C9)+(SUM(F9:Y9)<=C9)+(SU
M(F9:Z9)<=C9)+(SUM(F9:AA9)<=C9)+(SUM(F9:AB9)<=C9)+(SUM(F9:AC9)<=C9)
+(SUM(F9:AD9)<=C9)+(SUM(F9:AE9)<=C9)+(SUM(F9:AF9)<=C9)+(SUM(F9:AG9)
<=C9)+(SUM(F9:AH9)<=C9)+(SUM(F9:AI9)<=C9)+(SUM(F9:AJ9)<=C9)+1
{=SUM((SUBTOTAL(9,INDIRECT(ADDRESS(ROW(F9),COLUMN(F9))&":"&ADDRESS(
ROW(F9),ROW(INDIRECT(COLUMN(F9)&":"&COLUMN(AJ9))))))<=C9)*1)+1}
หนีสต ้ ต
ู ร IF ไปใชส ู ร Choose หรือ Index
Choose เป็ นสูตรซงึ่ ทําหน ้าทีเ่ ลือกค่าทีใ่ สไ่ ว ้ในวงเล็บของตัวสูตร Choose เองตามเลขลําดับที่
้
เรากําหนด โดยใชเลขลํ ้
าดับตัง้ แต่เลข 1 - 254 (Excel 2003 ต ้องใชเลข 1 - 29) ตาม
โครงสร ้างสูตร ดังนี้
=CHOOSE(เลขลําดับ, ค่าที1
่ , ค่าที2
่ , .... ค่าที่ 254)
้ เ่ ป็ นสูตรตามนี้
สมมติวา่ สูตร IF ทีใ่ ชอยู
=IF(E9="A",C2,IF(E9="B",C5,IF(E9="C",C8,IF(E9="D",C11,IF(E9="E",C14,IF(
E9="F",C17,IF(E9="G",F2,IF(E9="H",F17,IF(E9="I",I2,IF(E9="J",I5,IF(E9="K
",I8,IF(E9="L",I11,IF(E9="M",I14,I17)))))))))))))
Copyright of www.ExcelExpertTraining.com
107
เนือ
่ งจากเงือ ้ ตร IF ใชเที
่ นไขทีใ่ ชในสู ้ ยบกับตัวอักษร จึงไม่มท ่ ะนํ าสูตร Choose มาใช ้
ี างทีจ
แทน แต่หากเราสามารถเปลีย
่ นเงือ ้ ม หันมาใชเปรี
่ นไขจากตัวอักษรทีใ่ ชเดิ ้ ยบเทียบกับตัวเลข
แทน กลายเป็ นสูตรตามนี้
=IF(E9=1,C2,IF(E9=2,C5,IF(E9=3,C8,IF(E9=4,C11,IF(E9=5,C14,IF(E9=6,C1
7,IF(E9=7,F2,IF(E9=8,F17,IF(E9=9,I2,IF(E9=10,I5,IF(E9=11,I8,IF(E9=12,I
11,IF(E9=13,I14,I17)))))))))))))
เนือ ้ อ
่ งจากสูตร IF ใชเงื ่ นไขเทียบกับตัวเลข และเป็ นตัวเลขจํานวนเต็มตัง้ แต่เลข 1 - 13 ซงึ่ ไม่
เกิน 254 และเป็ นเงือ ้
่ นไขทีใ่ ชการตรวจสอบว่
าเท่ากับหรือไม่เท่านัน
้ (ไม่ได ้ตรวจสอบว่า
มากกว่าน ้อยกว่า) จึงสามารถใชสู้ ตร Choose ทีส ั ้ กว่าแทนได ้ด ้วยตามนี้
่ น
=CHOOSE(E9, C2,C5,C8,C11,C14,C17,F2,F17,I2,I5,I8,I11,I14,I17)
ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 1 จะคืนค่าเป็ นค่าจากเซลล์ C2 แต่ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 2
จะคืนค่าเป็ นค่าจากเซลล์ C5 แต่ถ ้า E9 มีคา่ เป็ นตัวเลข 14 จะคืนค่าเป็ นค่าจากเซลล์ I17
=CHOOSE(E9, C2,C5,C8,C11,C14,C17,F2,F17,I2,I5,I8,
I11,I14,I17,D3,D6,D9,D12,D15,D18,G3,G18,J3,J6,J9,
J12,J15,J18,E4,E7,E10,E13,E16,E19,H4,H19,K4,K7,
K10,K13,K16,K19)
ึ เหนือ
เพียงเห็นสูตรแวบเดียวก็รู ้สก ่ ยแล ้วใชไ่ หม แม ้ว่าสูตร Choose จะสามารถใชเลื
้ อกค่าที่
กระจายตัวกันอยูไ่ ด ้สูงสุดถึง 254 ค่าก็ตาม หากเราเผลอจัดลําดับค่าคําตอบสลับทีก
่ น
ั เพียงค่า
เดียว จะสง่ ผลทําให ้สูตร Choose คืนค่าคําตอบผิดพลาดทันที
Copyright of www.ExcelExpertTraining.com
108
ถ ้าค่าทีต
่ ้องการเลือกนัน
้ ถูกนํ ามาจัดลําดับใหม่ไว ้ในตารางให ้เป็ นพืน ่ งึ่ ต่อเนือ
้ ทีซ ่ งกันไป เรา
้
สามารถนํ าสูตร Index มาใชแทน Choose เพราะสูตร Index มีโครงสร ้างสูตรตามนี้
=INDEX(พืน
้ ทีต
่ ารางทีเ่ ป็ น Single Row, เลขลําดับ)
หรือ
=INDEX(พืน
้ ทีต
่ ารางทีเ่ ป็ น Single Column, เลขลําดับ)
=INDEX(A1:A10000, E9)
ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 1 จะคืนค่าเป็ นค่าจากเซลล์ A1 แต่ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 2
จะคืนค่าเป็ นค่าจากเซลล์ A2 แต่ถ ้า E9 มีคา่ เป็ นตัวเลข 10000 จะคืนค่าเป็ นค่าจากเซลล์
A10000 ซงึ่ การนํ าค่าทีต
่ ้องการมาจัดไว ้ในพืน
้ ทีเ่ ซลล์ A1:A10000 ทําให ้ง่ายในการค ้นหา
ตําแหน่งเซลล์เพือ
่ บันทึกหรือเปลีย
่ นแปลงค่าใหม่ในอนาคต
Copyright of www.ExcelExpertTraining.com
109
หนีสต ้ ต
ู ร IF ไปใชส ู ร VLookup
้ ดเป็ นตัวเลขต่อเนือ
เหมาะกับตารางข ้อมูลที่ Column ซายสุ ่ งทีเ่ รียงค่าจากน ้อยไปมาก
โครงสร ้างนีท
้ ํางานตามเงือ
่ นไขแบบน ้อยกว่าหรือเท่ากับ
้
=VLOOKUP(ค่าทีใ่ ชหา, ตารางทีเ่ ก็บค่า, เลขที่ Column ของคําตอบ)
้
=VLOOKUP(ค่าทีใ่ ชหา, ตารางทีเ่ ก็บค่า, เลขที่ Column ของคําตอบ,
FALSE หรือ 0)
Copyright of www.ExcelExpertTraining.com
110
1. VLookup นํ าคะแนนทีส
่ อบได ้ 75 คะแนน ไปตรวจสอบกับตารางข ้อมูล B3:C5
้
2. ใน Column ซายสุ
ดทีเ่ รียงเลขจากน ้อยไปมากนัน
้ พบว่าเลขคะแนน 70 เป็ นเลขทีม
่ าก
ทีส
่ ด ่ งั น ้อยกว่าหรือเท่ากับเลข 75 ซงึ่ เป็ นคะแนนทีส
ุ ทีย ่ อบได ้ แสดงว่าคําตอบทีต
่ ้องการ
อยูใ่ นแนวเดียวกับเลขคะแนน 70 แน่นอน
่ งไปในวงเล็บของสูตร VLookup เป็ นตัวเลขแทน Column ทีส
3. เลข 2 ทีใ่ สล ่ องในพืน
้ ที่
ตาราง B3:C5 ซงึ่ เป็ น Column เรือ
่ งเกรดทีเ่ ป็ นคําตอบ จึงคืนค่าออกมาเป็ นเกรด B
แม ้การใชสู้ ตร VLookup จะชว่ ยให ้ได ้สูตรทีส ั ้ ลงก็ตาม แต่จะทําให ้ Excel คํานวณชากว่
่ น ้ าใน
กรณีทใี่ ชสู้ ตร IF หากตารางทีใ่ ชเก็
้ บข ้อมูลมีขนาดใหญ่ขน
ึ้ ก็จะสง่ ผลให ้สูตร VLookup คํานวณ
้
ชาลง ี ได ้อย่างก็จําเป็ นต ้องเสย
เราจึงต ้องพึงระวังไว ้เสมอว่าทุกอย่างมีทงั ้ ข ้อดีข ้อเสย ี อย่าง
่ กัน
เชน
Copyright of www.ExcelExpertTraining.com
111
หนีสต ้ ต
ู ร IF ไปใชส ู ร Max Min หรือแค่ใชว้ งเล็ บชว
่ ย
หรือ
่ ะใชสู้ ตร IF ในเงือ
แทนทีจ ่ นไขทีเ่ กีย
่ วข ้องกับข ้อกําหนดห ้ามตํา่ กว่าหรือห ้ามเกินกว่า เรา
้
สามารถนํ าสูตร Max หรือ Min มาใชแทนโดยใช ้ กชว่ ยจํา ดังนี้
หลั
ตามตัวอย่างข ้างต ้นทีใ่ ชสู้ ตร IF ปรับตัวเลขไม่ให ้ตํา่ กว่า 0 นัน ่ นมาใชสู้ ตร Max
้ สามารถเปลีย
ต่อไปนีแ
้ ทน
สว่ นในกรณีทต
ี่ ้องการสร ้างสูตรควบคุมตัวเลขไม่ให ้เกินเลข 100 สามารถใชสู้ ตร IF หรือ Min
ได ้ตามนี้
Copyright of www.ExcelExpertTraining.com
112
หรือ
หรือ
้
นอกจากนีเ้ รายังสามารถใชวงเล็ บชว่ ยในการตัดสน
ิ ใจโดยไม่จําเป็ นต ้องพึง่ พาสูตรใดๆ เชน
่
กรณีทต ่ นตัวเลขให ้ไม่ตํา่ กว่า 0 ตามตัวอย่างข ้างต ้น ให ้ใชสู้ ตรทีใ่ ชวงเล็
ี่ ้องการเปลีย ้ บชว่ ย
ต่อไปนีไ
้ ด ้เลย
้
การใชวงเล็ บชว่ ยในการตัดสน
ิ ใจ มีหลักการดังนี้
้ ้เฉพาะเมือ
1. สามารถใชได ่ ผลลัพธ์ทต
ี่ ้องการเป็ นตัวเลขเท่านัน
้ เนือ
่ งจากต ้องนํ าตัวเลขมา
คํานวณต่อกันไปเรือ
่ ยๆ
2. หากมีหลายวงเล็บ ต ้องมีเงือ
่ นไขเดียวในวงเล็บหนึง่ เท่านัน
้ ทีเ่ ป็ นจริง และเงือ
่ นไขใน
วงเล็บอืน
่ ต ้องเป็ นเท็จทัง้ หมด
3. เงือ ้
่ นไขทีใ่ ชตรวจสอบนั ้ ถ ้าคืนค่าเป็ นเท็จ ถือว่ามีคา่ เท่ากับเลข 0 แต่ถ ้าคืนค่าเป็ นจริง
น
ถือว่ามีคา่ เท่ากับเลข 1
4. ให ้นํ าเงือ
่ นไขมาบวกกันในกรณีทก
ี่ ําหนดให ้เงือ
่ นไขเดียวเท่านัน
้ เป็ นจริง หรือนํ าเงือ
่ นไข
มาคูณกันในกรณีทต
ี่ ้องการตรวจสอบว่าทุกเงือ
่ นไขเป็ นจริงพร ้อมกัน
Copyright of www.ExcelExpertTraining.com
113
้
แม ้การใชวงเล็ บชว่ ยในการตัดสน
ิ ใจจะเกิดสูตรทีม ี วามยาวซงึ่ ดูเหมือนไม่จําเป็ นก็ตาม แต่
่ ค
โครงสร ้างสูตรภายในวงเล็บทุกวงเล็บมีความคล ้ายคลึงกัน จึงสามารถตรวจสอบแก ้ไขได ้ง่าย
และยังเป็ นพืน
้ ฐานของการคํานวณแบบ Array อีกด ้วย
Copyright of www.ExcelExpertTraining.com
114
หนีสต ้ า
ู ร IF ไปใชค ํ สง่ ั Format
0;-0;0;"Input is Wrong"
Copyright of www.ExcelExpertTraining.com
115
Copyright of www.ExcelExpertTraining.com
116
1. เลือกพืน
้ ทีต
่ ารางทีต ื่ ว่า Choice
่ งั ้ ชอ
2. สงั่ Home > Conditional Formatting > New Rules > Use a formula to
determine which cells to format (Excel 2003 สงั่ Format > Conditional
Formatting)
่ ง Edit the Rule Description
3. สร ้างสูตร =B2=$D$2 ลงไปในชอ
4. กดปุ่ ม Format แล ้วกําหนดรูปแบบทีแ
่ ตกต่างไปจากเดิมตามต ้องการ
่ งมือซงึ่ ควรนํ ามาใชพร
5. Data Validation กับ Conditional Formatting ถือเป็ นเครือ ้ ้อม
กันเสมอ โดย Validation จะทําหน ้าทีเ่ สมือนยามเฝ้ าประตูตรวจสอบแขกทีจ
่ ะยอมให ้
ผ่านประตูเข ้ามา แต่ถ ้ามีแขกเดินผ่านประตูเข ้ามาแล ้วก็ต ้องใช ้ Conditional
Formatting เปลีย ี สดงตัวแขกผู ้นัน
่ นสแ ้ ขึน
้ มา
Copyright of www.ExcelExpertTraining.com
117
ี้ นหัวตารางทีเ่ ป็ น Y
จากรูปต่อไปนี้ หากต ้องการควบคุมให ้เปิ ดบันทึกค่าได ้ตามตําแหน่งตัวชบ
และตามตําแหน่งข ้างตารางทีเ่ ป็ น B และให ้เปลีย ี อกตําแหน่งอีกด ้วย จะพบว่าเซลล์ D4
่ นสบ
เปลีย ี ละเป็ นเซลล์เดียวเท่านัน
่ นสแ ้ ทีจ
่ ะเปิ ดให ้พิมพ์คา่ ใหม่ลงไปได ้
Copyright of www.ExcelExpertTraining.com
118
สูตร Array
เรือ
่ งสูตร Array เป็ นเรือ
่ งทีผ
่ มเคยเขียนมาแล ้วหลายครัง้ เคยอธิบายมาแล ้วหลายรอบ ทุกครัง้ ที่
จัดอบรมก็พด
ู เรือ
่ งสูตร Array อยูเ่ สมอ คนทีฟ
่ ั งเรือ
่ งสูตร Array แล ้วเข ้าใจก็จะเข ้าใจในทันที
แล ้วก็ต ้องมานั่งเบือ
่ นั่งทนฟั งผมอธิบายเรือ ้ ํ้าแล ้วซํ้าอีก เพราะคนสว่ นใหญ่เขา
่ งสูตร Array นีซ
ฟั งกีท
่ ก
ี ท
ี่ ก
ี ็ไม่เข ้าใจเรือ
่ งสูตร Array นีส ั ที ไม่ใชว่ า่ ฟั งแบบเข ้าหูซายแล
้ ก ้ ้วทะลุหข
ู วาหรอก แต่
แย่ยงิ่ กว่านัน
้ อีก พออธิบายเรือ ี งพูดอธิบายของผมมันเดินทางไป
่ งสูตร Array ทีไร ปรากฏว่าเสย
ี ด ้วยซํ้า เพราะคนฟั งพอฟั งแล ้วไม่รู ้เรือ
ไม่ถงึ หูคนฟั งเสย ่ งก็จะมีอาการหนังตาหนักขึน
้ เรือ
่ ยๆแล ้ว
หลับหูหลับตาไม่ได ้ฟั งทุกครัง้ ไป
"ถ ้าคุณใชสู้ ตร Array เป็ น จะแก ้ปั ญหาอะไรได ้บ ้าง" ผมคิดว่าต ้องเริม
่ อธิบายให ้พวกเราเห็น
คุณประโยชน์ของสูตร Array กันก่อน ถ ้าเห็นประโยชน์ของสูตร Array ว่าจะชว่ ยแก ้ปั ญหาของ
้ ้วจะได ้มีความตัง้ หน ้าตัง้ ตาตัง้ ใจมา
ตัวเองได ้มากมายขนาดไหน จะได ้เกิดความอยากใชแล
เรียนรู ้สูตร Array
ประโยชน์ของสูตร Array
Copyright of www.ExcelExpertTraining.com
119
ในการอบรมครัง้ หนึง่ มีผู ้เข ้าอบรมคนหนึง่ มีทา่ ทีไม่สนใจเรียนรู ้สูตร Array โดยอ ้างว่า ทําไมต ้อง
ใชสู้ ตร Array ด ้วยในเมือ
่ Excel ก็มส ู รและคําสงั่ บนเมนูอยูแ
ี ต ่ ล ้ว ถ ้าอยากได ้อะไรก็แค่คลิก
คําสงั่ บนเมนู ก็จะได ้คําตอบทีต ่ รือ
่ ้องการแล ้วมิใชห
ี ของสูตร Array
ข้อเสย
้
1. ทําให ้แฟ้ มคํานวณชาลง ่ งจากการใชสู้ ตร Array จะชว่ ยทําให ้แฟ้ มมีขนาดเล็กลง
แต่เนือ
ซงึ่ โดยทัว่ ไปย่อมสง่ ผลให ้แฟ้ มเล็กคํานวณเร็วกว่าแฟ้ มใหญ่ ถ ้าคุณออกแบบโครงสร ้าง
ตารางให ้เหมาะกับสูตร Array ด ้วย ปั ญหาเรือ
่ งนีก
้ ็จะชดเชยกันไป
2. ทําให ้แก ้ไขสูตรยากขึน
้ เพราะคนทัว่ ไปมักไม่เข ้าใจเรือ
่ งสูตร Array เป็ นพืน
้ อยูแ
่ ล ้วและ
ไม่ทราบว่าขัน
้ ตอนการสร ้างสูตร Array ต ้องกดปุ่ ม Ctrl+Shift+Enter พร ้อมกันแทนที่
จะกดปุ่ ม Enter
3. คนทีต
่ ด ั ชอบสร ้างสูตร Array มักหลงลืมมองข ้ามสูตรสําเร็จรูปอืน
ิ นิสย ่ ทีม
่ อ
ี ยูแ
่ ล ้วใน
โปรแกรม Excel ซงึ่ สูตรสําเร็จรูปจะใชเวลาคํ
้ านวณเร็วกว่าสูตร Array
้ งต้นของ Array
เบือ
Copyright of www.ExcelExpertTraining.com
120
แก ้ไขสูตรทีล
่ อกมาเพือ
่ ปรับให ้เข ้ากับเงือ
่ นไขในงาน วันหนึง่ เราก็จะหน ้าแตก เมือ
่ ถูกจับได ้ว่า
้ ถ ้าจะคิดใชสู้ ตร Array ต ้องหาทางสร ้างสูตรเอง
ไม่ได ้เก่งจริง “อ ้อ ลอกสูตรเขามานีเ่ อง” ดังนัน
ให ้เป็ น แม ้สูตร Array ทีส
่ ร ้างขึน
้ เองเป็ นสูตรยาวกว่าสูตรของคนอืน
่ ก็ตาม
{=SUM(1/CountIF(DataRange,DataRange))}
ตอนทีผ
่ มเห็นสูตรนีก
้ ็คด ้ กการใดในการคํานวณ แต่พออ่านคําอธิบายทีม
ิ ไม่ออกว่ามันใชหลั ่ ากับ
สูตรจึงเข ้าใจ สูตรนีเ้ ป็นการหายอดรวมของค่าเฉลีย
่ ต่อต ัวของแต่ละรายการใน
ื่ แต่ละชอ
DataRange กล่าวคือ ถ ้านับจํานวนชอ ื่ ใน DataRange aa, bb, aa, cc, bb จะพบ
จํานวนของการซํ้ากันดังนี้
เมือ
่ รวมค่าเฉลีย
่ ต่อตัวเข ้าด ้วยกัน จาก DataRange aa, bb, aa, cc, bb
=1/2+1/2+1/2+1+1/2 จะได ้คําตอบเป็ นจํานวนของ Unique Items เท่ากับ 3
จวบจนปั จจุบน
ั นีย
้ งั ตามหาคนทีค
่ ด
ิ สร ้างสูตรยอดเยีย
่ มนีข
้ น
ึ้ มาเป็ นครัง้ แรกไม่พบว่าเป็ นใคร ยังดี
ทีม
่ ค
ี ําอธิบายประกอบสูตรนีไ
้ ว ้ด ้วย
Copyright of www.ExcelExpertTraining.com
121
โดยทัว่ ไปจะใชวิ้ ธแ
ี รกสําหรับแกะสูตรทีไ่ ม่ซบ
ั ซอนหรื
้ อไม่ยาวนัก พอแกะสูตรโดยการกดปุ่ ม F9
แล ้วต ้องอย่าลืมกดปุ่ ม Esc เพือ ่ ภาพเดิมก่อนแกะ (ถ ้าแกะสูตรแล ้วเผลอกด
่ ย ้อนหลังกลับคืนสูส
Enter ลงไปจะทําลายสูตรให ้กลายเป็ นค่าคงทีแ
่ ทน)
วิธแ
ี กะสูตร Array วิธท
ี ี่ 1
Copyright of www.ExcelExpertTraining.com
122
เซลล์ D3 มีสต
ู ร Array {=SUM(1/COUNTIF(DataRange,DataRange))} โดย
เครือ
่ งหมายวงเล็บปี กกาเกิดจากการกดปุ่ ม Ctrl+Shift+Enter พร ้อมกัน (ไม่ได ้พิมพ์ {} เอง)
วิธแ
ี กะสูตร Array วิธท
ี ี่ 2
วิธน ้
ี ใี้ ชตารางเป็ นตัวชว่ ยหาผลลัพธ์ของการคํานวณทีละขัน
้ แสดงให ้เห็นได ้ทันทีวา่ หลังจาก
้ แรกเสร็จแล ้ว สง่ ผลไปคํานวณต่อในการคํานวณขัน
คํานวณขัน ้ ถัดไปอย่างไรและเกิดผลลัพธ์
อย่างไร ซงึ่ พอคํานวณต่อกันไปจนเกิดผลลัพธ์ได ้ถูกต ้องตามทีต
่ ้องการแล ้ว จึงนํ าสูตรแต่ละขัน
้
้
มาซอนกั
นเป็ นสูตร Array เพียงสูตรเดียว
Copyright of www.ExcelExpertTraining.com
123
Copyright of www.ExcelExpertTraining.com
124
Array คืออะไร
ค่าตัง้ แต่สองค่าขึน
้ ไปจะเรียงตามแนวนอน หรือแนวตัง้ หรือเรียงต่อกันไปเป็ นพืน
้ ทีต
่ ารางทีม
่ ี
้ อ
ความสูงความกว ้างหลาย row หลาย column ก็ได ้ โดย Excel กําหนดให ้ใชเครื ่ งหมายในการ
แบ่งลําดับของค่า ดังนี้
• ้ อ
ถ ้าเป็ น Array ในแนวนอน ให ้ใชเครื ่ งหมาย comma , คัน ่
่ ระหว่างค่าแต่ละค่า เชน
11,22,33
• ้ อ
ถ ้าเป็ น Array ในแนวตัง้ ให ้ใชเครื ่ งหมาย semi-colon ; คัน ่
่ ระหว่างค่าแต่ละค่า เชน
11;22;33
• ถ ้าเป็ น Array ทีม
่ ข
ี นาดความสูง 2 row และมีความกว ้าง 3 column จะแสดงค่าทีม
่ ี
เครือ ่ 1,2,3;11,22,33 โดย Array จะไล่
่ งหมาย comma และ semi-colon ผสมกัน เชน
ลําดับจากแนวนอน 1,2,3 ก่อนแล ้วจึงใช ้ ; ขึน
้ แนวนอนถัดไปเป็ น 11,22,33
้
การนํ าค่าแบบ Array ไปใชในเซลล์ ต่างจากการใชวิ้ ธพ ิ พ์ 1,2,3 ลงไปในเซลล์ตามปกติ โดย
ี ม
ต ้องใช ้ Array แบบสูตรทีม
่ เี ครือ
่ งหมายเท่ากับนํ าหน ้าสุดเท่านัน
้ ดังนี้
Copyright of www.ExcelExpertTraining.com
125
ต ัวอย่างการสร้างตารางสูตรคูณแบบ Array
Copyright of www.ExcelExpertTraining.com
126
จากนัน
้ ให ้คลิกเซลล์ใดก็ได ้ทีม
่ ส
ี ต
ู ร {=Top*Left} แล ้วกดปุ่ ม F2 ตามด ้วยปุ่ ม F9 จะแสดง
ผลลัพธ์เป็ น Array Constant {20,30,40,50;40,60,80,100;60,90,120,150} โดยผลลัพธ์นม
ี้ ี
เครือ
่ งหมาย ; คัน ้ row ใหม่ 2 ครัง้ และในชว่ งทีค
่ อยู่ 2 ตัว แสดงว่ามี 3 row เพราะมีการขึน ่ น
ั่
ด ้วย ; นัน
้ มีเครือ
่ งหมาย , คัน ่ ว่ งละ 3 ตัว แสดงว่าในแต่ละ row มีคา่ อยู่ 4 column หรืออีก
่ อยูช
นัยหนึง่ แสดงว่า พืน
้ ทีต
่ ารางทีเ่ หมาะจะสร ้างสูตร {=Top*Left} ลงไปนัน
้ ต ้องมีความสูง 3 row
และกว ้าง 4 column ดังนัน
้ หากเลือกพืน
้ ทีเ่ กินกว่าทีจ
่ ําเป็ นก็จะได ้คําตอบเป็ น Error #N/A
เรือ
่ งอืน
่ ๆเกีย
่ วก ับ Array ทีค
่ วรทราบ
Copyright of www.ExcelExpertTraining.com
127
Copyright of www.ExcelExpertTraining.com
128
Copyright of www.ExcelExpertTraining.com
129
Copyright of www.ExcelExpertTraining.com
130
สูตร Array IF
เพือ ้ ายอดรวมแยกประเภท
่ ใชห
แต่ถ ้าคุณนํ าแฟ้ มทีใ่ ชสู้ ตร SumIFs, CountIFs, และ AverageIFs ไปเปิ ดด ้วย Excel 2003
หรือรุน
่ เก่ากว่า จะพบว่าสูตรใหม่เหล่านีไ
้ ม่ทํางานเพราะ Excel รุน ่ ะใชสู้ ตรใหม่ได ้ก็ต ้องเป็ น
่ ทีจ
Excel รุน ่ กัน
่ ใหม่เชน
บทความนีจ
้ ะแนะนํ าแนวทางการสร ้างสูตร Array IF ว่ามีทไี่ ปทีม ่ ชว่ ยให ้สามารถ
่ าอย่างไร เพือ
ั สูตร SumIFs, CountIFs, และ
สร ้างสูตรหายอดรวมแยกประเภทได ้โดยไม่จําเป็ นต ้องอาศย
่ คุณทราบหลักการทํางานของการใช ้ Array IF หรือ Array
AverageIFs แต่อย่างใด แล ้วเมือ
่ นไข ยังจะชว่ ยให ้สามารถนํ าไปพัฒนาสร ้างสูตรหาคําตอบประเภทอืน
แบบเงือ ่ ๆได ้ไม่ยาก
Copyright of www.ExcelExpertTraining.com
131
โครงสร ้างของสูตร Array IF ประกอบด ้วย 2 สว่ นใหญ่ๆ ซงึ่ โดยทัว่ ไปทัง้ 2 สว่ นต ้องมีขนาด
ความสูงความกว ้างของ Array เท่ากัน กล่าวคือ
้ ต
การใชส ู ร Array IF แบบเงือ
่ นไขเดียว
โปรดสงั เกตว่าใน Range ID มีรหัส a001 และ a002 เป็ นรายการทีบ ั ทึกซํ้า ซงึ่ ถ ้ามีรหัสไม่ซํ้า
่ น
แล ้วต ้องการหายอด Amount ของ a001 จะสามารถหาคําตอบโดยใชสู้ ตร Vlookup ได ้ทันที
่ มีรายการซํ้า ถ ้าใชสู้ ตร Vlookup ก็จะได ้ยอดของ a001 รายการแรกเพียงรายการเดียว
แต่เมือ
่ ํ้าของ a001
หากต ้องการหายอดรวม Amount ของ a001 หรือจะแยกหายอดแต่ละรายการทีซ
ั สูตรคํานวณแบบ Array มาชว่ ย
ก็ต ้องอาศย
Copyright of www.ExcelExpertTraining.com
132
1. เพือ
่ ทําให ้ตารางแสดงเฉพาะพืน ่ งึ่ เกีย
้ ทีซ ่ วข ้องกับการคํานวณเท่านัน
้ จึงขอลบพืน ่ ว่ น
้ ทีส
่ column C และ E มาใชคํ้ านวณทีละขัน
ของ Num และ Name ทิง้ ไป แล ้ว Insert เพิม ้
ื่ Check ให ้กับเซลล์ C3:C7 แล ้วสร ้างสูตร =Id=$G$3 จะพบว่าได ้คําตอบเป็ น
2. ตัง้ ชอ
TRUE; FALSE; TRUE; FALSE; FALSE ตามลําดับ โดยตําแหน่งทีเ่ ป็ น True คือ
ตําแหน่งของรหัส a001 นั่นเอง
3. เซลล์ E3:E7 สร ้างสูตร =IF(Check,Amount,0) จะพบว่าถ ้าตําแหน่งใดใน Check มีคา่
เท่ากับ True สูตร IF นีจ ้
้ ะเก็บค่า Amount มาใชตามเดิ ่ ะใสค
ม แต่ถ ้าไม่ใชจ ่ า่ 0 แทน
4. เซลล์ E8 สร ้างสูตร =SUM(E3:E7) ได ้คําตอบเท่ากับ 40 ซงึ่ เป็ นยอดรวมแยกประเภท
ของรหัส a001 ตามต ้องการ
แทนทีจ
่ ะต ้องสร ้างตารางเพิม
่ เติมเพือ
่ คํานวณทีละขัน
้ เราสามารถลัดหาคําตอบยอดรวมแยก
ประเภทของรหัส a001 ทีต
่ ้องการโดยพิจารณาแยกพืน ่ ารางเป็ น 2 สว่ น
้ ทีต
Copyright of www.ExcelExpertTraining.com
133
ี่ บบใชหลั
สูตรทัง้ สแ ้ กการคํานวณแบบเดียวกัน คือ
ี่ บบนีจ
แม ้ว่าสูตรทัง้ สแ ้ ะหาผลลัพธ์ทต ่ เดียวกันก็ตาม แต่ขอให ้พิจารณาเลือกใชให
ี่ ้องการได ้เชน ้ ้
เหมาะสมกับงาน กล่าวคือ
Copyright of www.ExcelExpertTraining.com
134
เรือ
่ งแปลกของ True ก ับ False
แต่ถ ้านํ าค่า True ทีไ่ ด ้ไปเทียบตรงๆกับเลข 1 ว่าเท่ากันหรือไม่ จะพบว่า True ไม่เท่ากับ 1
และถ ้านํ าค่า False ทีไ่ ด ้ไปเทียบตรงๆกับเลข 0 ว่าเท่ากันหรือไม่ จะพบว่า False ไม่เท่ากับ 0
Copyright of www.ExcelExpertTraining.com
135
้ ถ ้าเรามี Array ซงึ่ มีคา่ True หรือ False แล ้วนํ าไปบวกหรือคูณกับ Array อืน
ดังนัน ่ ทีม
่ ค
ี า่ เป็ น
ตัวเลขหรือมีคา่ เป็ น True หรือ False ก็ตาม ย่อมเหมือนกับนํ าเลข 1 หรือเลข 0 ไปบวกหรือคูณ
กับค่าอืน
่ นั่นเอง โปรดดูข ้อพิสจ
ู น์จากรูปต่อไปนี้
Array ทีม
่ เี ลข 1 และ 0 จากการบวกหรือคูณนีแ ่ ว่ ยทําให ้เราหายอดรวมแยกประเภท
่ หละทีช
ต่อไปได ้
Copyright of www.ExcelExpertTraining.com
136
้ ต
การใชส ู ร Array IF แบบหลายเงือ
่ นไข
้ รวจสอบเงือ
กรณี Range ทีใ่ ชต ่ นไขมาจากเรือ ้ วก
่ งเดียวก ัน ให้ใชบ
Copyright of www.ExcelExpertTraining.com
137
และเมือ
่ นํ า {1;1;1;0;1} คูณกับ Array ของ Amount {10;20;30;40;50}
จะได ้ Array {10;20;30;0;50} ซงึ่ รวมค่าทัง้ หมดได ้เท่ากับ 110 ตามต ้องการ
3. ใชสู้ ตร =SUMPRODUCT( ((Id=G3)+(Id=H3)) *Amount)
โดยมีหลักการคํานวณแบบเดียวกับวิธท
ี ส ั {}
ี่ อง แต่ไม่ต ้องอาศย
• Column ที่ 1 เป็ นรหัส Id จะพบว่ามีรหัส a001 กับ a002 อยู่ 4 รายการ
• Column ที่ 2 ตรวจสอบรหัส Id a001 จะพบว่ามีรหัส a001 อยู่ 2 รายการ โดยถ ้ามอง
่ ้องการเป็ นเลข 1 และตําแหน่งทีไ่ ม่ใชเ่ ป็ นเลข 0
ตําแหน่งทีเ่ ป็ นรหัสทีต
จะได ้เลข 1, 0, 1, 0, 0 ตามลําดับจากบนมาล่าง
• Column ที่ 3 ตรวจสอบรหัส Id a002 จะพบว่ามีรหัส a002 อยู่ 2 รายการ โดยถ ้ามอง
่ ้องการเป็ นเลข 1 และตําแหน่งทีไ่ ม่ใชเ่ ป็ นเลข 0
ตําแหน่งทีเ่ ป็ นรหัสทีต
จะได ้เลข 0, 1, 0, 0, 1 ตามลําดับจากบนมาล่าง
• Column ที่ 4 เป็ นผลรวมเมือ
่ นํ า Column ที่ 2 มารวมกับ Column ที่ 3
จะได ้เลข 1, 1, 1, 0, 1 ตามลําดับจากบนมาล่าง แสดงตําแหน่งของรหัส a001 กับ
a002 ณ ตําแหน่งทีต
่ รงกับเลข 1
• Column ที่ 5 เป็ นตัวเลข Amount ทัง้ หมด
• Column ที่ 6 เป็ นผลคูณเมือ
่ นํ า Column ที่ 4 มารวมกับ Column ที่ 5
จะได ้เลข 10, 20, 30, 0, 50 ตามลําดับจากบนมาล่าง ซงึ่ รวมเท่ากับ 110
Copyright of www.ExcelExpertTraining.com
138
้ ต
การใชส ู ร Array IF แบบหลายเงือ
่ นไข
้ รวจสอบเงือ
กรณี Range ทีใ่ ชต ่ นไขมาจากต่างเรือ ้ ณ
่ งก ัน ให้ใชค ู
Copyright of www.ExcelExpertTraining.com
139
ถ ้าแกะทีม
่ าของเงือ
่ นไข (Id=G3) จะได ้ Array ของ
{TRUE;FALSE;TRUE;FALSE;FALSE} นํ ามาคูณกับ (Name=H3) ซงึ่ เป็ น Array ของ
{FALSE;FALSE;TRUE;FALSE;FALSE} ทําให ้ได ้ Array
{0;0;1;0;0}
และเมือ
่ นํ า {0;0;1;0;0} คูณกับ Array ของ Amount {10;20;30;40;50}
จะได ้ Array {0;0;30;0;0} ซงึ่ รวมค่าทัง้ หมดได ้เท่ากับ 30 ตามต ้องการ
3. ใชสู้ ตร =SUMPRODUCT( (Id=G3)*(Name=H3) *Amount)
โดยมีหลักการคํานวณแบบเดียวกับวิธท
ี ส ั {}
ี่ อง แต่ไม่ต ้องอาศย
4. ใชสู้ ตร =SUMIFS(Amount,Id,G3,Name,H3) เป็ นสูตรทีเ่ กิดขึน
้ ใน Excel 2007
เป็ นต ้นมา
Copyright of www.ExcelExpertTraining.com
140
วิธพ
ี ลิกแพลงสูตร SumProduct
Copyright of www.ExcelExpertTraining.com
141
จากนัน
้ ขอย ้อนกลับไปเรือ
่ งโครงสร ้างภายในสูตร Array IF ตามทีอ
่ ธิบายไว ้แล ้วว่า โครงสร ้าง
ของสูตร Array IF ประกอบด ้วย 2 สว่ นใหญ่ๆ ซงึ่ โดยทัว่ ไปทัง้ 2 สว่ นต ้องมีขนาดความสูงความ
กว ้างของ Array เท่ากัน กล่าวคือ
ดังนัน
้ หากต ้องการปรับสูตรให ้คํานวณนับแทนการหายอดรวมของ Amount โดยให ้นับว่ามีคา่
ตามเงือ ิ้ กีร่ ายการ ให ้ใชสู้ ตรใดสูตรหนึง่ ต่อไปนีก
่ นไขทัง้ สน ้ ็ได ้
้ อ
สูตร SumProduct แบบที่ 2-6 เป็ นสูตรทีใ่ ชเครื ่ งหมาย comma , คัน
่ จึงจําเป็ นต ้องกระตุ ้นให ้
เปลีย
่ น True เป็ นเลข 1 และเปลีย
่ น False เป็ นเลข 0 โดยนํ า True หรือ False ทีไ่ ด ้จากการ
่ นไขไป *1, /1, +0, -0, หรือใสเ่ ครือ
ตรวจสอบเงือ ่ งหมายลบลบไว ้ข ้างหน ้าก่อน
ดังนัน
้ จึงขอแนะให ้สร ้างสูตร SumProduct แบบนํ าเงือ
่ นไขมาคํานวณ(คูณหรือบวก)กันเองก่อน
เพราะนอกจากจะแกะหาผลจากการคูณหรือบวกกันจากสว่ นของเงือ
่ นไขทีน
่ ํ ามาคํานวณกันได ้
Copyright of www.ExcelExpertTraining.com
142
หมายเหตุ
• ถ ้า Range ทีน
่ ํ ามาตรวจสอบเงือ
่ นไขเป็ น เรือ
่ งเดียวก ัน ให ้นํ าผลลัพธ์จากการ
ตรวจสอบเงือ
่ นไขมา บวกก ัน และมีวงเล็บเปิ ดด ้านหน ้า 3 ตัว
• ถ ้าถ ้า Range ทีน
่ ํ ามาตรวจสอบเงือ
่ นไขเป็ น ต่างเรือ
่ งก ัน ให ้นําผลลัพธ์จากการ
่ นไขมา คูณก ัน และมีวงเล็บเปิ ดด ้านหน ้า 2 ตัว
ตรวจสอบเงือ
Copyright of www.ExcelExpertTraining.com
143
ของจริง ของปลอม
ของใชไ้ ม่ได้ใน Excel
ในเรือ ื่ สต
่ งความซอ ั ย์สจ
ุ ริต โปรแกรม Excel ถือว่าได ้หนึง่ ร ้อยคะแนนเต็ม ไม่วา่ คุณจะบันทึกค่า
้
สร ้างสูตร หรือนํ า Excel มาใชแบบใด อะไรทีค
่ ณ
ุ ทําลงไปใน Excel ก็จะได ้รับผลตามนัน
้ แต่ถ ้า
ี อ ก็อาจจะตีโพยตีพายเมือ
คุณเข ้าใจ Excel ได ้ไม่ดพ ่ เห็นว่า Excel ทรยศ เพราะมันให ้คําตอบที่
ผิดพลาดต่างจากคําตอบทีค
่ ณ
ุ ต ้องการ ทัง้ ๆทีแ
่ ท ้จริงแล ้วคุณนั่นแหละทีเ่ ข ้าใจผิด
ของจริงทีท
่ ําให้สต
ู ร IF กลายเป็นของปลอม
เนือ
้ หาทีจ ้ ะชเี้ ป็ นชต
่ ะนํ ามาอธิบายต่อไปนีจ ี้ ายให ้กับคนทีช
่ อบใชสู้ ตร IF หรือสูตรใดก็ตามที่
เกีย ิ ใจหรือใชในการค
่ วข ้องกับการตัดสน ้ ้นหาข ้อมูลว่า แฟ้ มงานทีค
่ ณ
ุ สร ้างขึน
้ นัน
้ มีความ
ื่ ถือหรือไม่ เพือ
น่าเชอ ู น์ให ้เห็นกับตา ลองดูสต
่ พิสจ ู ร IF ต่อไปนีแ
้ ล ้วคิดว่าจะได ้คําตอบออกมา
เป็ นคําว่า เท่ากัน หรือ ไม่เท่ากัน
Copyright of www.ExcelExpertTraining.com
144
ค่าทีเ่ พีย
้ นไปไม่ได ้ถือว่าเกิดจากการคํานวณทีผ
่ ด ้ กการคํานวณ
ิ พลาด แต่เป็ นเพราะ Excel ใชหลั
ิ ซงึ่ ค่า 22.3-22.2 คํานวณแบบเลขฐานสอง
แบบเลขฐานสองแล ้วแปลงกลับมาเป็ นเลขฐานสบ
่ ํ้าไม่รู ้จบ (Repeating Binary Number) จากนัน
ได ้คําตอบเป็ นเลขทีซ ้ เมือ
่ แปลงกลับมาเป็ น
ิ ให ้พวกเราเข ้าใจ จึงต ้องปรับค่าให ้เหลือเพียง 15 หลัก (Excel มีความละเอียด
เลขฐานสบ
Precision โดยรับตัวเลขได ้สูงสุด 15 หลัก) แล ้วสง่ ผลให ้ได ้ผลลัพธ์แตกต่างจากทีค
่ วรบ ้าง
เล็กน ้อย และมิได ้เกิดขึน
้ เฉพาะกรณี 22.3-22.2 เท่านัน ี างคาดการณ์ได ้เลยว่าจะ
้ เราไม่มท
เพีย
้ นเมือ
่ ใดและเกิดจากการคํานวณใด
ด ังนนก่
ั้ อนทีค
่ ณ ้ ต
ุ จะใชส ู รทีเ่ กีย ิ ใจหรือสูตรในการค้นหาข้อมูล เชน
่ วข้องก ับการต ัดสน ่
IF, SumIF, VLookup, หรือ Match จําเป็ นต ้องปรับค่าให ้เท่ากับค่าทีต
่ ้องการ เพือ
่ ให ้เป็ นไป
ตามเงือ ่ ้องการก่อนเสมอ โดยใชสู้ ตรอืน
่ นไขทีต ่ เข ้ามาชว่ ยปรับค่า จากนัน
้ เมือ
่ ได ้ค่าตามที่
ต ้องการจริงๆแล ้วคุณจะกําหนดรูปแบบ Format ใดๆให ้กับค่านัน ้ เพียงการ
้ ก็ตามใจ (ห ้ามใชแต่
้ เพราะมันไม่ได ้ชว่ ยปรับค่าทีแ
กําหนดรูปแบบเท่านัน ่ ท ้จริงแต่อย่างใด)
สูตรสําคัญซงึ่ ใชในการปรั
้ ึ ษารายละเอียดของสูตร
บค่าตัวเลขให ้เป็ นไปตามต ้องการ (โปรดศก
ได ้จาก Excel Help) ได ้แก่
Copyright of www.ExcelExpertTraining.com
145
=Trunc(12
23.45,-1) คืนค่า 120
=Trunc(12
23.45,-2) คืนค่า 100
ใ ส้ ําหรับปรัรับเป็ นตัวเลข
3. สูตร =Intt(ต ัวเลข) ใช ขจํานวนเต็ม(ที
ม น ่ ้อยกว่าาค่าเดิม)
=Int(1.23)) คืนค่า 1
=Int(-1.23
3) คืนค่า -2
4. สูตร =Mo
od(เลขตงต
ั้ ตง, หาร) ใชส้ ําหรับหาเศษ
ั้ เลขต ัวห ษทีเ่ หลือจาก
กการหาร
ว ันทีจ
่ อมปลอม
ม
Column ื่ เดื
n B เป็ นชอ เ อนทีช ิ ซายของเซล
่ ด ้ ลล์ ไม่วา่ คุณจะบั
ณ นทึกไว
ว ้เป็ นเพียงเล
ลขทีว่ น
ั หรือเฉพาะ
อ
ื่ อนเท่านััน
เลขทีเ่ ดือน หรือชอเดื
อ ้ ตามแบบที
ทีเ่ ห็นในภาพ ิ ายเองโด
พนี้ ถ ้ามันชดซ
ด ้ ดยคุณไม่ได ้
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
146
ิ ซาย
กําหนดให ้มันชด ้ แสดงว่าข ้อมูลนัน
้ มีคา่ เป็ น Text ซงึ่ ไม่มป
ี ระโยชน์ในการนํ าข ้อมูลไปใช ้
่ เซลล์ B2 ทีม
คํานวณต่อแม ้แต่น ้อย อย่างเชน ่ ค
ี ําว่า Jan ไม่ได ้ให ้รายละเอียดว่าเป็ นวันทีใ่ ดของ
เดือนมกราคมหรือเป็ นเดือนมกราคมของปี ใด คําว่า Jan ทีช ิ ซายให
่ ด ้ ้ความหมายแต่เพียงบอกว่า
้ ซงึ่ หลายคนแก ้ปั ญหาโดยการเพิม
เป็ นเดือนมกราคมเท่านัน ่ เซลล์บน
ั ทึกเลขปี ลงไปอีก
Copyright of www.ExcelExpertTraining.com
147
หล ักการใชว้ ันทีแ
่ ละเวลา
Copyright of www.ExcelExpertTraining.com
148
การคํานวณว ันทีแ
่ ละเวลา
ก่อนทีจ
่ ะนํ าวันทีแ
่ ละเวลามาคํานวณได ้ ต ้องเริม
่ จากการตรวจสอบว่าข ้อมูลเกีย
่ วข ้องกับวันทีแ
่ ละ
เวลาซงึ่ ถูกบันทึกไว ้ว่ามีโครงสร ้างทีถ
่ ก
ู ต ้องตรงกับ Regional Setting หรือไม่ หากบันทึกไว ้ผิด
่ ใน Regional Setting กําหนดไว ้เป็ น USA แต่คนทีบ
เชน ั ทึกข ้อมูลพิมพ์วน
่ น ั ทีไ่ ว ้ในแบบ
่ พิมพ์ 4/2/2001 ซงึ่ ต ้องการบันทึกแบบไทยให ้หมายถึงวันที่ 4 เดือน 2 ปี
ประเทศไทย เชน
2001 จะพบว่าเมือ
่ นํ าแฟ้ มนัน
้ มาเปิ ดบนเครือ
่ งทีม
่ ี Regional Setting เป็ นไทย เลขทีข
่ องวันจะ
่ องเดือน จะแสดงเป็ น 2/4/2001 แทน ทําให ้กําหนดเวลาทีบ
สลับกับเลขทีข ่ น
ั ทึกไว ้ผิดทัง้ หมด
ถ ้าไม่เก่งสูตรเกีย
่ วข ้องกับวันทีแ
่ ละเวลาก็ต ้องจัดการพิมพ์ทบ
ั ใหม่ทงั ้ หมด
Copyright of www.ExcelExpertTraining.com
149
หากคุณอยากจะเก่งสูตรคํานวณเรือ
่ งวันทีแ
่ ละเวลา ต ้องรู ้จักสูตรหา SN หรือสูตรทีส
่ ามารถ
แปลงเลขทีข
่ องวันเดือนปี ทม ่ สูตร Now(),
ี่ นุษย์เข ้าใจไปเป็ นค่า SN ที่ Excel รู ้จัก เชน
Today(), Date(Year,Month,Day), Time(Hour,Minute,Second)
สูตรแปลงเลขทีข
่ องว ันเดือนปี และเวลาทีม
่ นุษย์เข้าใจ
ไปเป็นค่า Serial Number
Copyright of www.ExcelExpertTraining.com
150
Copyright of www.ExcelExpertTraining.com
151
หล ักการกําหนด
Format Cells > Number
้ อ
1. Excel ใชเครื ่ งหมาย # และ 0 แทนตําแหน่งของตัวเลข ซงึ่ ถ ้าใชเครื
้ อ ่ งหมาย # แล ้ว
้ แต่ถ ้าใช ้ 0 จะแสดงแทนด ้วยเลข 0 ออกมาให ้
ตัวเลขมีคา่ ไม่ถงึ ก็จะไม่แสดงเลขหลักนัน
่ ถ ้าพิมพ์ตวั เลข 1.2 ลงไป ถ ้าใช ้ Format ##.## จะแสดง 1.2 แต่ถ ้าใช ้ Format
เห็น เชน
00.00 จะแสดง 01.20 ด ้วยเหตุนใี้ น Format มาตรฐานที่ Excel เตรียมไว ้ จะพบว่าอย่าง
้
น ้อยตัวเลขหลักหน่วยและหลักทศนิยม จึงกําหนดให ้ใชเลข ่ #,##0.00
0 ไว ้เสมอ เชน
2. ด ้านหน ้าของ Format ทีเ่ ป็ นเครือ ี อง Font ได ้
่ งหมาย # หรือเลข 0 เราสามารถกําหนดสข
ื่ สท
โดยพิมพ์ชอ ี ต
ี่ ้องการไว ้ในเครือ ่ [Red] หรือถ ้าจําชอ
่ งหมาย [ ] เชน ื่ สไี ม่ได ้ ให ้ใช ้
ี ต
[Colorn] แทน โดย n คือเลขของสท ่ [Color12]
ี่ ้องการ เชน
3. เครือ ้
่ งหมายวงเล็บ [ ] ยังใชในแบบเงื
อ ่ นไขเพือ
่ ควบคุมให ้แสดงผลออกมาเฉพาะเมือ
่ ตรง
กับเงือ
่ นไขทีก
่ ําหนดไว ้ในเครือ ่ [>=90]00000.00 จะทําให ้ตัวเลขทีพ
่ งหมาย [ ] เชน ่ ม
ิ พ์ลง
ไปในเซลล์ทใี่ ช ้ Format นี้ เฉพาะเมือ
่ มีคา่ มากกว่าหรือเท่ากับ 90 ให ้แสดงตัวเลขใน
รูปแบบ 00000.00
ั ลักษณ์หรือตัวอักษรไว ้ด ้านหน ้า ด ้านหลัง หรือระหว่าง
4. ใน Format สามารถแทรกสญ
Format ทีเ่ ป็ นเครือ
่ งหมาย # หรือเลข 0
4.1. กรณีแทรกสญ ่ (0 . 00) % มีเครือ
ั ลักษณ์ ให ้พิมพ์แทรกได ้โดยตรง เชน ่ งหมายวงเล็บ
เครือ ั ลักษณ์
่ งหมายวรรค จุดทศนิยม และ % เป็ นสญ
4.2. กรณีแทรกตัวอักษร ต ้องพิมพ์ตวั อักษรไว ้ระหว่างเครือ ่
่ งหมายคําพูด เชน
“Total” 0.00 “บาท”
5. ถ ้าต ้องการปั ดตัวเลขให ้เป็ นหลักพันให ้เติมเครือ
่ งหมายคอมมาต่อท ้ายหนึง่ ตัว ถ ้าต ้องการ
่ 0.00,, จะแสดงตัวเลข 123456789 ที่
ปั ดเป็ นหลักล ้านให ้เติมคอมมาต่อท ้ายสองตัว เชน
บันทึกลงไปออกมาเป็ น 123.46 โดยค่าทีแ
่ ท ้จริงยังคงเท่ากับ 123456789 ตามเดิม
้ อ
6. ให ้ใชเครื ่ งหมาย ; ได ้สูงสุด 3 ตัว เพือ
่ ควบคุม Format ให ้เปลีย
่ นตามค่าบวก ค่าลบ ค่า
ศูนย์ และค่าทีเ่ ป็ นตัวอักษร ในโครงสร ้างตามนี้ ค่าบวก;ค่าลบ;ค่าศูนย์;ค่าทีเ่ ป็นต ัวอ ักษร
6.1. ถ ้าไม่ใสเ่ ครือ
่ งหมาย ; เลย แสดงว่าเป็ น Format กลางทีใ่ ห ้ตัวเลขทุกค่าใช ้ Format
้ ร่วมกัน
นัน
่ งหมาย ; ทีเ่ ติมต่อท ้ายลงไป ถ ้าใส่ ; ตัวใด ต ้องตามด ้วย Format ของค่า
6.2. หลังจากเครือ
นัน
้ ๆ แต่ถ ้าเราไม่ได ้กําหนด Format ของนัน
้ ๆไว ้ด ้วย จึงไม่แสดงค่านนๆ
ั้
Copyright of www.ExcelExpertTraining.com
152
Copyright of www.ExcelExpertTraining.com
153
เลขทีต
่ ้องพิ
พิมพ์นไ ก โปรแกรม Characterr Map ซงึ่ สงเปิ
ี้ ด ้จาก งั่ ดโปรแก
กรมนีไ
้ ด ้ง่ายๆโดย
ย
พิมพ์คําว่า charmap
c ลงไปในช
ล อ่ งงของคําสงั่ Start
S > Run
ประเด็น
นเรือ ้ อยํ้าว่า การใช ้ Fo
่ ง Format นีข ่ นสงิ่ เห็น เท่านัน
ormat เป็ นเเพียงการเปลีย ้ มิได ้แก ้ไข
ค่าให ้ต่าางไปจากเดิ
ดิมแม ้แต่น ้อย
ย
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
154
นอกจากนีส
้ ต
ู ร Text ยังเปรียบได ้กับสูตร Round โดยสูตร Text นีจ
้ ะปั ดตัวเลขและแสดงตัวเลข
่ =TEXT(123456789,"0.00,,") จะได ้คําตอบเป็ น 123.46 และมีคา่
ตามรูปแบบให ้ด ้วย เชน
123.46 ด ้วย
Copyright of www.ExcelExpertTraining.com
155
วิธใี ช ้ Add-In
Add-In เป็ นแฟ้ มทีม ี ามสกุล .xla หรือ .xlam ซงึ่ แฟ้ มเหล่านีจ
่ น ้ ะทําให ้ Excel ทีต
่ ด
ิ ตัง้ ไว ้ในแต่
ละเครือ ู รหรือคําสงั่ เพิม
่ งมีสต ้ มากกว่าเดิม ซงึ่ ทุกวันนีเ้ ราสามารถนํ าแฟ้ ม Add-in ทีแ
่ ขึน ่ จกฟรี
จากอินเตอร์เน็ ตมาใชกั้ นได ้ทันที
1. เริม
่ จาก Download แฟ้ ม Add-in มาเก็บไว ้ในเครือ
่ งคอมพิวเตอร์ของคุณก่อน
้ เปิ ดโปรแกรม Excel แล ้วสงั่ File > Options > Add-ins แล ้วคลิกทีป
2. จากนัน ่ ม ุ่ Go
ื่ Add-ins Available ทีม
ด ้านล่างของหน ้า จะเปิ ดให ้เห็นรายชอ ่ าพร ้อมกับโปรกรม Excel
(Excel 2003 ให ้สงั่ Tools > Add-Ins)
3. กดปุ่ ม Browse ค ้นหาแฟ้ ม Add-in ทีค
่ ณ
ุ เก็บไว ้ในเครือ
่ งตามข ้อ 1 ให ้พบแล ้วกดปุ่ ม OK
ื่ Add-in ทีค
4. จะพบชอ ่ ณ
ุ เลือกปรากฏเพิม ่ งรายชอ
่ ในชอ ื่ Add-ins Available
ื่ Add-ins เฉพาะทีต
ขอให ้เลือกกาชอ ้
่ ้องการนํ ามาใชงานเท่ ้ เพราะการเปิ ดใช ้ Add-in ก็
านัน
่ เปิ ด Excel จะเปิ ดแฟ้ ม Add-in ทีเ่ ลือกไว ้ต่อให ้เอง
เหมือนกับการเปิ ดแฟ้ มทัว่ ไป เพียงแต่เมือ
แต่จะไม่เห็นตัวแฟ้ มแต่อย่างใด ซงึ่ Add-in จะทําให ้คุณมีสต ่ เติมหรือทําให ้มีคําสงั่ เพิม
ู รเพิม ่ ที่
จะเห็นได ้บนเมนูก็แล ้วแต่แฟ้ ม Add-in นัน
้ สร ้างขึน
้ มาเพือ
่ จุดประสงค์ใด
ถ ้าเรียกใช ้ Add-in ชอ
ื่ Money.xla จะได ้สูตร =Money(ตัวเลข,”ชอ
ื่ หน่วยเงิน”,”ชอ
ื่ หน่วยเศษ
่ =Money(1234.56,”Dollar”,”Cent”) จะอ่านตัวเลขออกมาเป็ นคําว่า One
สตางค์”) เชน
Thousand Two Hundred Thirty Four Dollars and Fifty Six Cents
เนือ
่ งจากสูตรเหล่านีไ ่ ต
้ ม่ใชส ู รทีม ้ หากเปิ ดแฟ้ มทีใ่ ชสู้ ตร Fml ขึน
่ าตามปกติของ Excel ดังนัน ้ มา
่ งั ไม่ได ้เรียกใช ้ Expert2000.xla จะทําให ้สูตรเหล่านีก
โดยทีย ้ ลายเป็ น Error ว่า #NAME!
ทัง้ หมด ซงึ่ แก ้ไขได ้โดยทําการติดตัง้ Add-in Expert2000.xla ก่อนแล ้วจึงตามด ้วยการเปิ ด
Copyright of www.ExcelExpertTraining.com
156
แฟ้ มทีม
่ ส
ี ต
ู รเหล่านีต
้ อ
่ แต่ถ ้าพบว่าสูตรยังคง Error อยู่ ให ้คลิกทีเ่ ซลล์สต
ู รแล ้วกดปุ่ ม F2 แล ้ว
กดปุ่ ม Enter เพือ
่ กระตุ ้นให ้สูตรเริม
่ ทํางานต่อไปได ้ตามปกติ
Copyright of www.ExcelExpertTraining.com
157
Function VBA
วิธส
ี ร้าง Function VBA
ใชสู้ ตรเชน
่ เดียวกับสูตรทัว่ ไปอืน
่ ๆ หากใชคํ้ าสงั่ Formulas > Insert Function หรือคลิกทีป
่ ม
ุ่
Fx บน Formula Bar จะพบสูตร VBA Function รวมไว ้ในกลุม
่ Function category : User
Defined และแสดงรูปแบบสูตรในจอด ้านขวาและด ้านล่าง
Copyright of www.ExcelExpertTraining.com
158
Fu
unction GetFormat(ce
ell)
1 GetFormat = cell.Nu
umberForm
mat
En
nd Function
้ นเซลล์
แสดงรูปแบบทีใ่ ชใน
Fu
unction GetFormula(C
Cell)
GetFormula = Cell.F
Formula
En
nd Function
2
Fu
unction GetFormulaI((cell)
If VarType
e(cell) = 8 Then
GetFormu
ulaI = "'" & cell.form ula
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
159
Else
GetFormulaI = cell.formula
End If
If cell.HasArray Then _
End Function
้
แสดงสูตรทีใ่ ชในเซลล์
Function FormulaText(cell_ref)
'Allow formula to be updated if changes are made on the sheet
Application.Volatile
'Test for reference style in use
If Application.ReferenceStyle = xlA1 Then
'Set the return value of the function to the A1 style formula
3
FormulaText = cell_ref.Formula
Else ' xlR1C1 --Set the return value of the function to the R1C1 style
formula
FormulaText = cell_ref.FormulaR1C1
End If
End Function
้
แสดงสูตรทีใ่ ชในเซลล์ ทัง้ แบบปกติหรือแบบ R1C1
Copyright of www.ExcelExpertTraining.com
160
Copyright of www.ExcelExpertTraining.com
161
FUNCTION_DEF = FCELL.Formula
Case xlR1C1
FUNCTION_DEF = FCELL.FormulaR1C1
End Select
End Function
แสดงสูตรในเซลล์
Option Explicit
Copyright of www.ExcelExpertTraining.com
162
Copyright of www.ExcelExpertTraining.com
163
แสดงระยะเวลาระหว่างชว่ งเวลาทีก
่ ําหนด
www.j-walk.com\ss\excel\tips\tip55.htm
แสดงระยะเวลาระหว่างชว่ งเวลาทีก
่ ําหนดเป็ นประโยครวม
Function OrdDate(arg)
dd = Day(arg)
Case 1, 21, 31
Copyright of www.ExcelExpertTraining.com
164
OrdDate = dd & "st " & mmmm & ", " & yyyy
Case 2, 22
OrdDate = dd & "nd " & mmmm & ", " & yyyy
Case 3, 23
OrdDate = dd & "rd " & mmmm & ", " & yyyy
Case 4 To 20, 24 To 30
OrdDate = dd & "th " & mmmm & ", " & yyyy
End Select
End Function
ื่ sheet
แสดงชอ
Function CellType(c)
Application.Volatile
Copyright of www.ExcelExpertTraining.com
165
Set c = c.Range("A1")
End Select
End Function
แสดงประเภทของค่าในเซลล์
CellValue = Val(c)
End Function
แสดงค่าเป็ นตัวเลข
Copyright of www.ExcelExpertTraining.com
166
Function HasFormula(cell)
11 HasFormula = cell.HasFormula
End Function
ตรวจสอบว่า มีสต
ู รหรือไม่
Function UseFormula(cell)
'-- Usage: Not recommended, see notes
UseFormula = Application.Evaluate(cell.formula)
End Function
Function UseFormula2(cell)
'Documented in
http://www.geocities.com/davemcritchie/excel/formula.htm
UseFormula2 = ""
Exit Function
UseFormula2 = Application.Evaluate(cell.Formula)
Exit Function
Else
Copyright of www.ExcelExpertTraining.com
167
End If
End Function
้
แปลงสูตรทีเ่ ป็ นตัวอักษร ให ้เป็ นสูตรทีใ่ ชงานได ้
End If
End Function
Copyright of www.ExcelExpertTraining.com
168
ี ใี่ ช ้ www.erlandsendata.no
หายอดรวมตามสท
TempCount = 0
Next cl
Set cl = Nothing
CountByColor = TempCount
End Function
Copyright of www.ExcelExpertTraining.com
169
ี ใี่ ช ้
นับจํานวนตามสท
WEEKNR = 0
A = Weekday(InputDate, vbSunday)
16
B = Year(InputDate + ((8 - A) Mod 7) - 3)
C = CDate("1.1." & B)
WEEKNR = Int((InputDate - C - 3 + D) / 7) + 1
End Function
17 Application.Volatile
Copyright of www.ExcelExpertTraining.com
170
End If
Next cl
UniqueItem = ""
If ItemNo = 0 Then
UniqueItem = cUnique.Count
Else
UniqueItem = cUnique(ItemNo)
End If
End If
On Error GoTo 0
End Function
Copyright of www.ExcelExpertTraining.com
171
' select the desired target range for the function and
i=0
iCount = 0
i=i+1
If i Mod N = 0 Then
iCount = iCount + 1
ItemList(iCount) = c.Value
On Error GoTo 0
End If
Next c
INDEXN = ItemList
INDEXN = Application.WorksheetFunction.Transpose(INDEXN)
Copyright of www.ExcelExpertTraining.com
172
End If
Erase ItemList
End Function
แสดงค่าทีอ
่ ยูใ่ นลําดับที่ n
SourceRange.AdvancedFilter Action:=xlFilterCopy,
19
CopyToRange:=TargetCell, Unique:=True
End Sub
TimeInterval = 0
20
If StartTime > EndTime Then Exit Function
Copyright of www.ExcelExpertTraining.com
173
End Function
ระยะเวลาระหว่างชว่ ง
Option Explicit
'****************
' Main Function *
'****************
Function BahtEng(ByVal MyNumber)
Dim Baht, Satang, Temp
Dim DecimalPlace, Count
Copyright of www.ExcelExpertTraining.com
174
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Baht = Temp & Place(Count) & Baht
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Copyright of www.ExcelExpertTraining.com
175
Case Else
Satang = " and " & Satang & " Satang"
End Select
'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
GetHundreds = Result
End Function
Copyright of www.ExcelExpertTraining.com
176
'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Private Function GetTens(TensText)
Dim Result As String
Copyright of www.ExcelExpertTraining.com
177
'*******************************************
' Converts a number from 1 to 9 into text. *
'*******************************************
Private Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
สูตรแปลงตัวเลขเป็ นคําอ่าน
Copyright of www.ExcelExpertTraining.com
178
Option Explicit
'****************
' Main Function *
'****************
Function BahtOnly(ByVal MyNumber)
Dim Baht, Satang, Temp
Dim DecimalPlace, Count
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
Copyright of www.ExcelExpertTraining.com
179
If Temp <> "" Then Baht = Temp & Place(Count) & Baht
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Copyright of www.ExcelExpertTraining.com
180
'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
GetHundreds = Result
End Function
'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Private Function GetTens(TensText)
Dim Result As String
Copyright of www.ExcelExpertTraining.com
181
Copyright of www.ExcelExpertTraining.com
182
GetTens = Result
End Function
'*******************************************
' Converts a number from 1 to 9 into text. *
'*******************************************
Private Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
สูตรแปลงตัวเลขเป็ นคําอ่าน
Option Explicit
'****************
23
' Main Function *
'****************
Function Money(ByVal MyNumber, UnitName1, UnitName2)
Copyright of www.ExcelExpertTraining.com
183
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then KeyUnit1 = Temp & Place(Count) & KeyUnit1
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Copyright of www.ExcelExpertTraining.com
184
Loop
'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
Copyright of www.ExcelExpertTraining.com
185
GetHundreds = Result
End Function
'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Private Function GetTens(TensText)
Dim Result As String
Copyright of www.ExcelExpertTraining.com
186
'*******************************************
' Converts a number from 1 to 9 into text. *
'*******************************************
Private Function GetDigit(Digit)
Copyright of www.ExcelExpertTraining.com
187
สูตรแปลงตัวเลขเป็ นคําอ่าน
Option Explicit
'****************
' Main Function *
'****************
Function UnitText(ByVal MyNumber, UnitName1, UnitName2)
24 Dim KeyUnit1, KeyUnit2, Temp
Copyright of www.ExcelExpertTraining.com
188
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then KeyUnit1 = Temp & Place(Count) & KeyUnit1
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Copyright of www.ExcelExpertTraining.com
189
Case Else
KeyUnit1 = KeyUnit1 & " " & UnitName1 & "" 'without s
End Select
'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
Copyright of www.ExcelExpertTraining.com
190
GetHundreds = Result
End Function
'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Private Function GetTens(TensText)
Dim Result As String
Copyright of www.ExcelExpertTraining.com
191
End Select
Else ' If value between 20-99
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) 'Retrieve ones place
End If
GetTens = Result
End Function
'*******************************************
' Converts a number from 1 to 9 into text. *
'*******************************************
Private Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Copyright of www.ExcelExpertTraining.com
192
สูตรแปลงตัวเลขเป็ นคําอ่าน
Option Explicit
25
If Month(Day2) < Month(Day1) Then
months = 12 - Month(Day1) + Month(Day2)
Else
months = Month(Day2) - Month(Day1)
End If
Copyright of www.ExcelExpertTraining.com
193
months = 11
End If
End If
Copyright of www.ExcelExpertTraining.com
194
End Function
NetMonth = CStr(months)
End Function
Copyright of www.ExcelExpertTraining.com
195
NetDay = CStr(days)
End Function
สูตรคํานวณระยะเวลา
Function PersonalTax(TaxableIncome)
26
Const UpperRange0 = 50000
Copyright of www.ExcelExpertTraining.com
196
Copyright of www.ExcelExpertTraining.com
197
End Function
สูตรคํานวณภาษี หก
ั ณ ทีจ
่ า่ ย
Copyright of www.ExcelExpertTraining.com
198
Copyright of www.ExcelExpertTraining.com
199
End Function
X1 = Application.RoundDown(Num, NumDigits + 1)
PowersX = 10 ^ (Int(Log(X1) / Log(10#)) + 1)
X2 = X1 / PowersX
X3 = Right(X2, 1) 'หาตัวเลขหลักถัดไป
Y1 = Application.RoundDown(Num, NumDigits + 1)
Y2 = Num - Y1 'หาว่าถัดจากนัน
้ มีคา่ อะไรอยูอ
่ ก
ี
Z1 = Application.RoundDown(Num, NumDigits)
PowersZ = 10 ^ (Int(Log(Z1) / Log(10#)) + 1)
Z2 = Z1 / PowersZ
Copyright of www.ExcelExpertTraining.com
200
If (X3 > 5) _
Or ((X3 = 5) And (Y2 <> 0)) _
Or ((X3 = 5) And (Z3 - Application.Odd(Z3)) = 0) _
Then
RoundSP = Sign * Application.Round(Num, NumDigits)
Else
RoundSP = Sign * Application.RoundDown(Num, NumDigits)
End If
Exit Function
ZeroHandler:
RoundSP = Sign * Application.Round(Num, NumDigits)
End Function
Copyright of www.ExcelExpertTraining.com
201
X = Abs(X)
If X < 1 Then
CountDecimal = Len(X) - Len(Int(X))
Else
CountDecimal = Application.Max(0, Len(X) - Len(Int(X)) - 1)
End If
End Function
Significant Figure
Copyright of www.ExcelExpertTraining.com
202
General Functions
1 =SUM(Sheet1:Sheet10!A1:A100)
2 =COUNTA(Sheet1:Sheet10!A1:A100)
3 =COUNTIF(data,"<0")
นับจํานวนเซลล์ทม
ี่ ค
ี า่ น ้อยกว่า 0
4 =COUNTIF(data,"yes")
นับจํานวนเซลล์ทม
ี่ ค
ี า่ "yes"
5 =COUNTIF(data,"*")
นับจํานวนเซลล์ทม
ี่ ค
ี า่ ใดๆ
6 =COUNTIF(data,"s*")
Copyright of www.ExcelExpertTraining.com
203
นับจํานวนเซลล์ทม
ี่ ค
ี า่ นํ าด ้วยตัวอักษร "s"
7 =COUNTIF(data,"*s*")
นับจํานวนเซลล์ทม
ี่ ต
ี วั อักษร "s"
8 =COUNTIF(data,"yes")+COUNTIF(data,"no")
นับจํานวนเซลล์ทม
ี่ ค
ี า่ "yes" หรือ "no"
9 =COUNTIF(data,"???")
นับจํานวนเซลล์ทม
ี่ ค
ี า่ 3 ตัวอักษร
10 =COUNTIF(data,">=1")-COUNTIF(data,">10")
นับจํานวนเซลล์ทม
ี่ ค
ี า่ ระหว่าง 1 ถึง 10
11 =SUMIF(A2:A10,"Jan",C2:C10)
12 =COUNTIF(A2:A10,"Jan",C2:C10)
Copyright of www.ExcelExpertTraining.com
204
13 =SUMIF(A2:A10,"<>Jan",C2:C10)
14 =SUMIF(Month,"Jan",Sales)+SUMIF(Month,"Feb",Sales)
=SUMIF(A1:A6,"Part#1",B1:B6)
15
=SUMPRODUCT((A1:A6="Part#1")*(B1:B6))
รวมค่าของ Part#1
16 =SUM(IF(FREQUENCY(data,data)>0,1,0))
นับจํานวนเซลล์ทม
ี่ ค
ี า่ unique numeric values
=IF(COUNTIF(A$2:A2,A2)>1,COUNTIF(A$2:A2,A2),"")
17
=IF(COUNTIF(A$2:A2,A2)>1,"Dup","")
แสดงตําแหน่งเซลล์ทม ี า่ ซํ้า
ี่ ค
Copyright of www.ExcelExpertTraining.com
205
=VALUE(LEFT(A1,FIND("'",A1)-1)) +
21 VALUE(MID(A1,FIND("'",A1) +1,FIND("""",A1)-FIND("'",A1)-
1))/12
Copyright of www.ExcelExpertTraining.com
206
เปลีย
่ นเลขความยาว จาก Feet and Inches ไปเป็ น feet
=VALUE(LEFT(A1,FIND("'",A1)-1))*12 +
22
VALUE(MID(A1,FIND("'",A1) +1,FIND("""",A1)-FIND("'",A1)-1))
เปลีย
่ นเลขความยาว จาก Feet and Inches back ไปเป็ น inches
สูตร คืนค่า
23
{=SUM(E4:E13*F4:F13)} เหมือนสูตรข ้างต ้นแต่ใช ้ array formula
=SUMSQ(E4:E13) S(x²)
Copyright of www.ExcelExpertTraining.com
207
24 =COUNTBLANK(E2:E23)
นับเซลล์วา่ ง
25 =CELL("filename")
26 =RAND()*100
27 =RAND()*(100-50)+50
28 =ROUND(RAND()*100,0)
29 A สูตรสะสม
Copyright of www.ExcelExpertTraining.com
208
1 100 =SUM($A$1:A1)
2 200 =SUM($A$1:A2)
3 300 =SUM($A$1:A3)
4 400 =SUM($A$1:A4)
5 500 =SUM($A$1:A5
สูตรยอดรวมสะสม
30 =LEN(B1)-LEN(SUBSTITUTE(SUBSTITUTE(B1,"B",""),"b",""))
count the number of "B"s, both upper and lower case, in the
string in B1
31 =OFFSET(Sheet1!$A$2,0,0,COUNTA($A$2:$A$20),1)
Dynamic Ranges
=RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-
32
LEN(SUBSTITUTE(A2," ","")))))
Copyright of www.ExcelExpertTraining.com
209
"John A Smith"
=LEFT(A2,FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-
33
LEN(SUBSTITUTE(A2," ",""))))-1)
34 =LEFT(B2,FIND(" ",B2,1))
35 =LEFT(A1,FIND(" ",A1,1))
36 =RIGHT(A1,LEN(A1)-FIND(" ",A1,1))
Copyright of www.ExcelExpertTraining.com
210
=IF(ROW()-ROW(TopRng)+1>TopN,"",LARGE(RankRng,ROW()-
38
ROW(TopRng)+1))
=IF(ROW()-ROW(TopRng)+1>TopN,"",SMALL(RankRng,ROW()-
39
ROW(TopRng)+1))
40 =CELL("filename",A1)
41 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,
Copyright of www.ExcelExpertTraining.com
211
LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",
42
CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
=LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))) Or
43 =SUBSTITUTE(SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",
CELL("filename",A1))),"[",""),"]","")
=RadiusEarth*ACOS(COS(RADIANS(90-
(Lat1*24)))*COS(RADIANS(90-(Lat2*24)))+
44
SIN(RADIANS(90-(Lat1*24)))*SIN(RADIANS(90-(Lat2*24)))*
COS(RADIANS(24*(Long1-Long2))))
Copyright of www.ExcelExpertTraining.com
212
kilometers).
=RadiusEarth*ACOS(COS(RADIANS(90-
Lat1))*COS(RADIANS(90-Lat2))+
45
SIN(RADIANS(90-Lat1))*SIN(RADIANS(90-
Lat2))*COS(RADIANS(Long1-Long2)))
=LEFT(A2,IF(ISERROR(FIND(",",A2,1)),LEN(A2),FIND(",",A2,1)-
46
1))
=TRIM(IF(ISERROR(FIND(",",A2,1)),A2,MID(A2,FIND(",",A2,1)+1,
47 IF(ISERROR(FIND(" ",A2,FIND(",",A2,1)+2)),LEN(A2),
FIND(" ",A2,FIND(",",A2,1)+2))-FIND(",",A2,1))))
=TRIM(RIGHT(A2,LEN(A2)-IF(ISERROR(FIND(" ",A2,
48 FIND(" ",A2,FIND(",",A2,1)+2))),LEN(A2),
FIND(" ",A2,FIND(" ",A2,FIND(",",A2,1)+2))-1)))
Copyright of www.ExcelExpertTraining.com
213
49 =MAX(A1:A10,B1)
50 =SUM(INDIRECT("A1:A10"))
=SUM($A$1:$A$10),
=A1&IF(AND(A1>=10,A1<=14),"th",
51
CHOOSE(MOD(A1,10)+1,"th","st","nd","rd","th","th","th","th","th","th"))
52 =RANK(C7,C$7:C$16)+COUNTIF(C$7:C7,C7)-1
Unique Ranks
=COUNT(C$7:C$16)-
53
(RANK(C7,C$7:C$16)+COUNTIF(C$7:C7,C7))+2
Copyright of www.ExcelExpertTraining.com
214
54 =CELL("filename",A1)
D:\driveM\excel\TAXES\[1996FEDT.XLS]Sheet1
=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1),1)-1)
55
=INFO("directory")
D:\driveM\excel\TAXES\
=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1),1)-
56
1),"[","")
D:\driveM\excel\TAXES\1996FEDT.XLS
=SUBSTITUTE(SUBSTITUTE(CELL("filename",A1),"[",""),"]"," [")
57
& "]"
D:\driveM\excel\TAXES\1996FEDT.XLS [Sheet1]
=SUBSTITUTE(LEFT(LOWER(CELL("filename",A1)),FIND("]",
58 CELL("filename",A1))-1),"[","") & " [" &
MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,28) &
Copyright of www.ExcelExpertTraining.com
215
"]"
d:\drivem\excel\taxes\1996fedt.xls [Sheet1]
=MID(CELL("filename",A1),FIND("[",CELL("filename",A1),1)+1,FIND("]",
59
CELL("filename",A1),1)-FIND("[",CELL("filename",A1),1)-1)
1996FEDT.XLS
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-
FIND("]", CELL("filename",A1)))
60
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)
=SheetName()
Sheet1
=INFO("directory")
61
directory, memavail, memused, numfile, origin, osversion, recalc,
release, system, totmem
C:\WINNT\Profiles\Administrator\Personal\
Copyright of www.ExcelExpertTraining.com
216
=IF(LEN(A11)=0,"",IF(ISERR(FIND("
63
",A11)),A11,LEFT(A11,FIND(" ",A11)-1)))
65 =LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+(LEN(TRIM(A1))>0)
=LEN(SUBSTITUTE(TRIM(A1),CHAR(32),CHAR(32)&CHAR(32))
66
)-LEN(TRIM(A1))+1
67 =LEN(A1)-LEN(SUBSTITUTE(A1,"aa","")))/LEN("aa")
Copyright of www.ExcelExpertTraining.com
217
68 =countif(A1:J1,"aa")
=IF(ISERR(FIND("/",E22)),E22,MID(E22,FIND("/",E22,1)+1,99))
69 =IF(ISERR(FIND("/",E22)),"",MID(E22,FIND("/",E22,1)+1,99))
=NOT(ISNUMBER(VALUE(LEFT(D7,1))))
70
=IF(LEFT(TRIM(D7))="","",NOT(ISNUMBER(VALUE(LEFT(D7,1)))))
71 =SUBSTITUTE(A1," ","")
=IF(MOD(INT(16*(+B2-
INT(B2)+0.0312)),16)=0,TEXT(B2,"#"),IF(MOD(INT(16*(+B2-
72 INT(B2)+0.0312)),8)=0,TEXT(B2,"#
0/2"),IF(MOD(INT(16*(+B2-INT(B2)+0.0312)),4)=0,TEXT(B2,"#
0/4"),IF(MOD(INT(16*(+B2-INT(B2)+0.0312)),2)=0,TEXT(B2,"#
Copyright of www.ExcelExpertTraining.com
218
0/8"),TEXT(B2,"# 0/16")))))
73 =SUMPRODUCT(B2:B6,C2:C6)/SUM(C2:C6)
Weighted Average
74 =OFFSET(MySheet!$A$1,0,0,COUNTA(MySheet!$A:$A),1)
=POWER((SUM(IF(values0,values*(POWER(1+rRate,(MAX(dates)-
dates)/daybase)) ,0)))/(SUM(IF(values<0,values/(POWER
75
(1+iRate,(MAX(dates)-dates)/daybase)) ,0)))*-1,1/((MAX(dates)-
MIN(dates))/daybase))-1
Copyright of www.ExcelExpertTraining.com
219
=MROUND(Num,IF(VALUE(RIGHT(Num/10^(INT(LOG(ABS(Num)))-
76 Plc+1),2))=0.5,2,1)* SIGN(Num)*10^(INT(LOG(ABS(Num)))-Plc+1))
=MROUND(Num,IF(VALUE(RIGHT(Num/Fact,2))=0.5,2,1)*SIGN(Num)*Fact)
77 =INDEX(FREQUENCY((A1,A3,A5),20),2)
=LEN(A1)-LEN(SUBSTITUTE(A1,"B",""))
78
=LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(A1,"B",""),"b",""))
นับตัวอักษร b ในเซลล์
=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,B1,"")))/LEN(B1)
79 =SUM(LEN(A1)-
LEN(SUBSTITUTE(UPPER(A1),UPPER(B1),"")))/LEN(B1)
นับจํานวนคํา B1 ในประโยค A1
80 =A1&IF(OR(VALUE(RIGHT(A1,2))={11,12,13}),
Copyright of www.ExcelExpertTraining.com
220
"th",IF(OR(VALUE(RIGHT(A1))={1,2,3}),CHOOSE(RIGHT(A1),
"st","nd","rd"), "th"))
Ordinal Number
=IF(AND(A1>0,A1<257),IF(A1>26,CHAR(CEILING(A1/26,1)+63),"")
81
&CHAR(IF(MOD(A1,26)=0,26,MOD(A1,26))+64),"")
=MID(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-
82
LEN(SUBSTITUTE(A1,"\",))))+1,LEN(A1))
แยกคําแรกออกจากประโยคภาษาอังกฤษ
แยกคําสุดท ้ายออกจากประโยคภาษาอังกฤษ
Copyright of www.ExcelExpertTraining.com
221
85 =RIGHT(A1,LEN(A1)-FIND(" ",A1,1))
=LEFT(A1,FIND(" ",A1)-1)
=RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1," ","*",LEN(A1)-
LEN(SUBSTITUTE(A1," ","")))))
=IF(OR(LEFT(A1,2)="Mr",LEFT(A1,3)="Mrs",LEFT(A1,2)="Ms"),
87
RIGHT(A1,LEN(A1)-FIND(" ",A1)),A1)
ื่ ออกจากชอ
ตัดคํานํ าหน ้าชอ ื่
=LEN(SUBSTITUTE(TRIM(A1),CHAR(32),CHAR(32)&CHAR(32)))-
88
LEN(TRIM(A1))+1
นับจํานวนคําในเซลล์
Copyright of www.ExcelExpertTraining.com
222
=LEFT(TRIM(A1),FIND(" ",TRIM(A1),1)-1)&"
"&RIGHT(TRIM(A1),LEN(TRIM(A1))-IF(ISERROR(FIND("
89
",TRIM(A1),FIND(" ",TRIM(A1),1)+1)),FIND("
",TRIM(A1),1),FIND(" ",TRIM(A1),FIND(" ",TRIM(A1),1)+1)))
ื่ นามสกุล
ตัด middle names ออกจากชอ
ิ้ สุดกะ, กําหนดสน
=MAX( 0, MIN( เวลาสน ิ้ สุด ) - MAX( เวลาเริม
่ กะ,
91
กําหนดเริม
่ ))
้
ระยะเวลาทีใ่ ชในกะนั น
้
Copyright of www.ExcelExpertTraining.com
223
Copyright of www.ExcelExpertTraining.com
224
1 =DATEDIF(Date1,Date2,Interval)
คํานวณระยะเวลาระหว่างชว่ งทีก
่ ําหนด
"m" จํานวนเดือนสะสม
"d จํานวนวันสะสม
คํานวณอายุ
Copyright of www.ExcelExpertTraining.com
225
3 =AND((TDate>=MIN(TDate1,TDate2)),TDate<=MAX(TDate1,TDate2))
=IF(OR(Date2<VDate1,VDate2<Date1),Date2-
Date1+1,IF(OR(AND(Date1<=VDate1,Date2>=VDate2),
AND(Date1>=VDate1,Date2<=VDate2)),MAX(0,(Date2-Date1)-(VDate2-
4 VDate1)),
IF(OR(AND(Date1<=VDate1,Date2<=VDate2),AND(Date1>=VDate1,Date2>V
Date2)),
MAX(0,(VDate1-Date1))+MAX(0,Date2-VDate2),NA())))
นับจํานวนวันในระหว่างชว่ งวันทีก
่ ําหนด
ื่
ชอ ความหมาย
Copyright of www.ExcelExpertTraining.com
226
NWRange ตารางวันหยุด
=IF(OR(Date2<VDate1,VDate2<Date1),NETWORKDAYS(Date1,Date2,NWRang
e),
IF(OR(AND(Date1<=VDate1,Date2>=VDate2),AND(Date1>=VDate1,Date2<=
VDate2)),
MAX(0,NETWORKDAYS(Date1,Date2,NWRange)-
5
NETWORKDAYS(VDate1,VDate2,NWRange)),
IF(OR(AND(Date1<=VDate1,Date2<=VDate2),AND(Date1>=VDate1,Date2>V
Date2)),
IF((Date1>=VDate1),0,NETWORKDAYS(Date1,VDate1-1,NWRange))+
IF((Date2<=VDate2),0,NETWORKDAYS(VDate2+1,Date2,NWRange)),NA())))
ั ดาห์หรือวันหยุดอืน
นับวันเฉพาะวันธรรมดา ไม่นับวันหยุดสุดสป ่
=IF(OR(IDate2<RDate1,IDate1>RDate2),0,(MIN(IDate2,RDate2)-
6
MAX(IDate1,RDate1)+1))
ื่
ชอ ความหมาย
Copyright of www.ExcelExpertTraining.com
227
NWRange ตารางวันหยุด
=IF(OR(IDate2<RDate1,IDate1>RDate2),0,
7
ABS(NETWORKDAYS(MIN(IDate2,RDate2),MAX(IDate1,RDate1),NWRange)))
ั ดาห์หรือวันหยุดอืน
นับวันเฉพาะวันธรรมดา ไม่นับวันหยุดสุดสป ่
=MAX(0,NETWORKDAYS(MAX(D$5,$B6),MIN(DATE(YEAR(D$5),MONTH(D$5)+
8
1,0),$C6)))
สรุปจํานวนวันทํางานแต่ละเดือน
=MAX(0,(MIN($C17,DATE(YEAR(D$16),MONTH(D$16)+1,0))-
9
MAX($B17,D$16)+1))
สรุปจํานวนวันแต่ละเดือน
Copyright of www.ExcelExpertTraining.com
228
1 =MAX(0,NETWORKDAYS(MAX(DATE(D$27,1,1),$B28),MIN(DATE(D$27,12,31
0 ),$C28)))
สรุปจํานวนวันทํางานแต่ละปี
=MAX(0,(MIN($C39,DATE(D$38,12,31))-
11
MAX($B39,DATE(D$38,1,1))+1))
สรุปจํานวนวันแต่ละปี
Copyright of www.ExcelExpertTraining.com
229
=FLOOR("5/"&DAY(MINUTE(B2/38)/2+56)&"/"&B2,7)-34
12
=FLOOR(DAY(MINUTE(B2/38)/2+56)&"/5/"&B2,7)-34
วัน Easter
13 =TRUNC(((B6-DATE(YEAR(B6),1,0))+6)/7)
เลขทีส ั ดาห์
่ ป
=INT((A1-SUM(MOD(DATE(YEAR(A1-MOD(A1-2,7)+3),1,2),
{1E+99,7})*{1,-1})+5)/7)
14
=1+INT((A1-DATE(YEAR(A1+4-WEEKDAY(A1+6)),1,5)+
WEEKDAY(DATE(YEAR(A1+4-WEEKDAY(A1+6)),1,3)))/7)
15 =RIGHT(YEAR(A1),2)&TEXT(A1-DATE(YEAR(A1),1,0),"000")
เปลีย
่ นวันทีป
่ กติ เป็ น Julian Date
16 =DATE(IF(0+(LEFT(A1,2))<30,2000,1900)+LEFT(A1,2),1,RIGHT(A1,3))
เปลีย
่ น Julian date เป็ นวันทีป
่ กติ
Copyright of www.ExcelExpertTraining.com
230
=DATE(IF(0+(LEFT(A1,2))<30,2000,1900)+LEFT(A1,2),1,RIGHT(A1,3))
17 -
DATE(IF(0+(LEFT(A2,2))<30,2000,1900)+LEFT(A2,2),1,RIGHT(A2,3))
18 =DATE(IF(0+(LEFT(A1,2))<30,2000,1900)+LEFT(A1,2),1,RIGHT(A1,3)+A2)
เพิม
่ จํานวนวันนับจาก Julian Date
=IF(ROW(A1),CALL("Xlcall32","Excel4","2JRJ",74))
19
=IF(ROW(A1:A4),CALL("Xlcall32","Excel4","2JRJ",74))
Copyright of www.ExcelExpertTraining.com
231
ื่
ชอ ความหมาย ตัวอย่าง
วันทีแ
่ ละเวลา 25-Oct-99
StartDT
เริม
่ ต ้น 13:00
วันทีแ
่ ละเวลา 28-Oct-99
EndDT
ิ้ สุด
สน 15:00
เวลาเริม
่ งาน
DayStart 9:00
ประจําวัน
เวลาเลิกงาน
DayEnd 17:00
ประจําวัน
=IF(INT(StartDT)=INT(EndDT),ROUND(24*(EndDT-StartDT),2),
(24*(DayEnd-DayStart)*(MAX(NETWORKDAYS(StartDT+1,EndDT-
1,HolidayList),0)+INT(24*(((EndDT-INT(EndDT))-
21 (StartDT-INT(StartDT)))+(DayEnd-DayStart))/(24*(DayEnd-
DayStart))))+MOD(ROUND(((24*(EndDT-INT(EndDT)))-
24*DayStart)+(24*DayEnd-(24*(StartDT-INT(StartDT)))),2),
ROUND((24*(DayEnd-DayStart)),2))))
นับจํานวนชวั่ โมงทํางาน
Copyright of www.ExcelExpertTraining.com
232
22 =IF(OR(WEEKDAY(A4+1)=1,WEEKDAY(A4+1)=7),A4+3,A4+1)
23 =DAY(DATE(YEAR(A1),MONTH(A1)+1,0))
เลขทีจ
่ ํานวนวันในแต่ละเดือน หรือเลขวันทีส
่ ด
ุ ท ้ายของเดือน
24 =DATE(YEAR(A1),MONTH(A1)+1,0)
วันทีส
่ ด
ุ ท ้ายของเดือน
25 =DATE(YEAR(A1),MONTH(A1),0)
วันทีส
่ ด
ุ ท ้ายของเดือนก่อน
=DATE(Yr,Mon,1+((Nth-(DoW>=WEEKDAY(DATE(Yr,Mon,1))))*7)+
26
(DoW-WEEKDAY(DATE(Yr,Mon,1))))
return the date of Nth day-of-week for a given month and year.
For example, it will return 26-March-98 for the 4th Thursday of
March, 1998. Days-of-week range from 1 to 7, with Sunday =
1 and Saturday = 7.
Where Yr, Mon, Nth, and DoW are cell references or values
indicating Year, Month, Nth, and Day-Of-Week.
Copyright of www.ExcelExpertTraining.com
233
=DATE(Yr,1,1+(Nth-(Dow>=WEEKDAY(DATE(Yr,1,1))))*7)+
27
Dow-WEEKDAY(DATE(Yr,1,1))
ั ดาห์ระหว่างชว่ งเวลาทีก
จํานวนสป ่ ําหนด
29 =IF(ISERROR(VLOOKUP(WEEKDAY(A1),WorkDays,1,0)),FALSE,TRUE)
30 =ROUNDUP(MONTH(A1)/3,0)
เลขทีไ่ ตรมาส
=TRUNC(((A1-DATE(YEAR(A1),1,1))/7))+1+
31
IF(WEEKDAY(DATE(YEAR(A1),1,1))>WEEKDAY(A1),1,0)
เลขทีส ั ดาห์ของวันทีก
่ ป ่ ําหนด
Copyright of www.ExcelExpertTraining.com
234
32 =DATE(YEAR(A1)+1,MONTH(A1)+6, DAY(A1)+10)
วันทีน
่ ับถัดไปอีก 1 ปี 6 เดือน 10 วัน
33 =IF(A1>B1,B1+1-A1,B1-A1)
ระยะเวลาระหว่างชว่ งเวลา
34 =TIME(HOUR(A1),MROUND(MINUTE(A1),B1),0)
=TIME(HOUR(A1),FLOOR(MINUTE(A1),B1),0)
35
=TIME(HOUR(A1),CEILING(MINUTE(A1),B1),0)
36 =SUMPRODUCT(N(MONTH(A1:A20)=12))
นับจํานวนเซลล์ทม
ี่ วี น ่ งึ่ อยูใ่ นเดือนธันวาคม
ั ทีซ
37 =SUMPRODUCT((MONTH(A1:A20)=12)*(YEAR(A1:A20)=2000))
Copyright of www.ExcelExpertTraining.com
235
นับจํานวนเซลล์ทม
ี่ วี น ่ งึ่ อยูใ่ นเดือนธันวาคม ปี 2000
ั ทีซ
=SUMPRODUCT(N(A1:A20>DATE(2000,11,15))*N(A1:A20<=DATE(2000,12,
3 15)))
8
=countif(A1:A20,">=16/11/2000")-countif(A1:A20,">15/12/2000")
นับจํานวนเซลล์ทม
ี่ วี น ่ งึ่ อยูร่ ะหว่างวันที่ 16 พฤษจิกายน ถึงวันที่ 15 เดือน
ั ทีซ
ธันวาคม
39 =(A1>B1)+B1-A1
หาระยะเวลาระหว่างเวลาทีก
่ ําหนด
A B C
Copyright of www.ExcelExpertTraining.com
236
เปลีย
่ นเวลาแบบทหาร เป็ น เวลาแบบมาตรฐาน
=INT((A1-(DATE(YEAR(A1+(MOD(8-WEEKDAY(A1),7)-3)),1,1))-3+
41 MOD(WEEKDAY(DATE(YEAR(A1+(MOD(8-WEEKDAY(A1),7)-
3)),1,1))+1,7))/7)+1
คืนค่าเป็ นเลขทีส
่ ปดาห์
42 =NOW()+12/24
43 =NOW()+10/1440
Copyright of www.ExcelExpertTraining.com
237
เวลา 10 นาทีถด
ั ไปจากเวลาปั จจุบน
ั (1440 นาที / วัน)
44 =NOW()+30/86400
เวลา 30 วินาทีถด
ั ไปจากเวลาปั จจุบัน (86400 วินาที / วัน)
A2: =TODAY()
45 B2: =A2-MOD(A2-2,7)
C2: =B2
46 =DAY(A2)&IF(INT(MOD(DAY(A2),100)/10)=1, "th",
IF(MOD(DAY(A2),10)=1, "st", IF(MOD(DAY(A2),10)=2,"nd",
IF(MOD(DAY(A2),10)=3, "rd","th"))))& " " & TEXT(A2,"mmmm,
yyyy")
ตัวเลขและวันทีแ
่ บบนับมีคําว่า st nd rd th ต่อท ้าย
47 =MROUND(A22,1/(24*4))
Copyright of www.ExcelExpertTraining.com
238
48 =FLOOR(A22,1/(24*4))
49 =CEILING(A22,1/(24*4))
เปลีย ิ ซายและยื
่ นเวลาเป็ นรูปแบบตัวอักษร จะได ้จัดชด ้ ดข ้ามขอบขวา
ออกไปได ้
(วันทีแ
่ สดงในแบบของ US/Canada mm/dd/yyyy)
04/14/200
Sat 36995
1
5
04/08/200
1 First Day of Week Sun =B1-WEEKDAY(B1)+1
1
04/14/200
Last Day of Week Sat =B1-WEEKDAY(B1)+7
1
Copyright of www.ExcelExpertTraining.com
239
04/30/200 Mo
Last Day of Month =DATE(YEAR(B1),MONTH(B1)+1,0)
1 n
04/01/200
First Day of Year Sun =DATE(YEAR(B1),MONTH(B1),1)
1
12/31/200 Mo
Last Day of Year =DATE(YEAR(B1)+1,1,0)
1 n
Copyright of www.ExcelExpertTraining.com
240
Copyright of www.ExcelExpertTraining.com
241
MONTH($B$1)+1,6))
For a different day of the week rotate the 2nd to last parameters in
CHOOSE.
i.e. 7,6,5,4,3,2,1 for Wednesday instead of 2,1,7,6,5,4,3 for Monday as
used in some of the formulae.
A B E
format
Dates mm/dd/yyy สูตรทีใ่ ช ้
y
5
2 First ddd
03/01/1999 =DATE(YEAR(B18),MONTH(B18),1)
of Month
Last ddd
03/31/1999 =DATE(YEAR($B$18),MONTH($B$18)+1,1)-1
of Month
First =DATE(YEAR($B$18),MONTH($B$18),1)+
03/07/1999
Sunday of MOD(1+7-
Copyright of www.ExcelExpertTraining.com
242
Mo. WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
=DATE(YEAR($B$18),MONTH($B$18),1)+
First MOD(2+7-
03/01/1999
Monday WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
=DATE(YEAR($B$18),MONTH($B$18),1)+
First MOD(3+7-
03/02/1999
Tuesday WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
=DATE(YEAR($B$18),MONTH($B$18),1)+
First
MOD(4+7-
Wednesda 03/03/1999
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
y
,7)
=DATE(YEAR($B$18),MONTH($B$18),1)+
First MOD(5+7-
03/04/1999
Thursday WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
=DATE(YEAR($B$18),MONTH($B$18),1)+
First MOD(6+7-
03/05/1999
Friday WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
Copyright of www.ExcelExpertTraining.com
243
=DATE(YEAR($B$18),MONTH($B$18),1)+
First MOD(7+7-
03/06/1999
Saturday WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
Last =DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Sunday of 03/28/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
Mo. 7))
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Last
03/29/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
Monday
6))
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Last
03/30/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
Tuesday
5))
Last =DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Wednesda 03/31/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
y 4))
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Last
03/25/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
Thursday
3))
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Last Friday 03/26/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
2))
Copyright of www.ExcelExpertTraining.com
244
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
Last
03/27/1999 WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
Saturday
8))
Last
weeknum 53 =WEEKNUM(DATE(YEAR(B18),12,31),1)
of yr
Description สูตร
Copyright of www.ExcelExpertTraining.com
245
Count of days in a
=DAY(DATE(YEAR(A1),MONTH(A1)+1,0))
month
Last date in a
=DATE(YEAR(A1),MONTH(A1)+1,0)
month
Determine which
quarter a date =CHOOSE(MONTH(A1),1,1,1,2,2,2,3,3,3,4,4,4)
belongs to
=DAY(A1)&IF(INT(MOD(DAY(A1),100)/10)=1, "th",
IF(MOD(DAY(A1),10)=1, "st",IF(MOD(DAY(A1),10)=2,"nd",
54
IF(MOD(DAY(A1),10)=3, "rd","th"))))& " " &TEXT(A1,"mmmm,
yyyy")
Ordinal Date
Copyright of www.ExcelExpertTraining.com
246
1 =INDEX(Rng,MATCH(MAX(COUNTIF(Rng,Rng)),COUNTIF(Rng,Rng),0))
2 =INDEX(Rng,MATCH(MIN(COUNTIF(Rng,Rng)),COUNTIF(Rng,Rng),0))
=INDIRECT(ADDRESS(ROW(Rng)+MATCH(C1,Rng,0)-1,COLUMN(Rng)-
3 ColsToLeft)) Or
=INDIRECT(ADDRESS(ROW(Rng)+MATCH(C1,Rng,0)-1,COLUMN(A:A) ))
Left Lookups
4 =IF(MAX(COUNTIF(Range1,Range1))>1,"Duplicates","No Duplicates")
ตรวจสอบค่าซํ้า
5 =IF(COUNTIF(Range1, A5)>1,TRUE,FALSE)
ตรวจสอบค่าซํ้า
Copyright of www.ExcelExpertTraining.com
247
6 =IF(COUNTIF(Range1,???)>1,"Duplicate","")
ตรวจสอบค่าซํ้า
7 =COUNTIF($A:$A,$A1)>1
ตรวจสอบค่าซํ้าในแถวตัง้
=SUM(N(OFFSET(E1,ROW(1:5)-1,-1*ROW(1:5)+1)))
=SUMPRODUCT(N(OFFSET(E1,ROW(INDIRECT("1:5"))-1,-
8 1*ROW(INDIRECT("1:5"))+1)))
=SUM(N(OFFSET(E1,ROW(INDIRECT("1:5"))-1,-
1*ROW(INDIRECT("1:5"))+1)))
=INDEX(Range2,MATCH(Value,Range1,0))
9 =LOOKUP(Value,Range1,Range2)
=VLOOKUP(Value,Range12,2,FALSE)
สูตรค ้นหาค่า
Copyright of www.ExcelExpertTraining.com
248
Conditional Formatting
1 =MOD(ROW()-Rw,N*2)+1<=N
2 =MOD(ROW()-Rw,N*2)+1>N
3 =ISERROR(cell_reference)
4 =ISTEXT(A1)
เซลล์ซงึ่ ไม่ใชต
่ วั เลข
Copyright of www.ExcelExpertTraining.com
249
5 =A1>AVERAGE($A$1:$D$12)
6 =MONTH(A1)=6
7 =A1=TODAY()
8 =IF(ISBLANK(A1),"",OR(WEEKDAY(A1)=7,WEEKDAY(A1)=1))
9 =A1=MAX($A$1:$A$30)
Copyright of www.ExcelExpertTraining.com
250
11 =MOD(ROW(),2)=0
row เลขคู่
12 =MOD(INT((ROW()-1)/4)+1,2)
13 =MOD(ROW(),2)=MOD(COLUMN(),2)
14 =IF(COUNTIF($A$1:$D$12,A1)>1,TRUE,FALSE)
15 =A2<A1
Copyright of www.ExcelExpertTraining.com
251
17 =LEN(A3)-LEN(SUBSTITUTE(SUBSTITUTE(A3,"A",""),"a",""))>0
18 =AND($B$1:$B$4<>"")
เมือ
่ เซลล์อน
ื่ มีคา่ ครบแล ้ว
1 =MATCH($A1&$B1&$C1&$D1,$F$6:$F$15&$G$6:$G$15&$H$6:$H$15&$I$6:
9 $I$15,0)>=1
Data Validation
1 =COUNTIF($A$1:$A$50,A1)=1
ป้ องกันการบันทึกข ้อมูลซํ้า
2 =ISNA(VLOOKUP(A9,A$1:A8,1,FALSE))
Copyright of www.ExcelExpertTraining.com
252
3 =ISTEXT(A5)
รับเฉพาะตัวอักษร
4 =A2>A1
รับค่าซงึ่ มากขึน
้
5 =LEFT(A2)="a"
รับค่าซงึ่ นํ าด ้วยตัว a
6 =COUNTIF(A3,"A????")=1
Copyright of www.ExcelExpertTraining.com
253
Array Formulas
=SUM(IF(List>0,List,FALSE))
=AVERAGE(IF(List>0,List,FALSE))
1
=MIN(IF(List>0,List,FALSE))
=MAX(IF(List>0,List,FALSE))
้ สามารถละไม่ต ้องใส่
หาผลลัพธ์เฉพาะค่าบวกเท่านัน
คําว่า FALSE ในสูตร
=SUM(IF(List<>0,List,FALSE))
=AVERAGE(IF(List<>0,List,FALSE))
2
=MIN(IF(List<>0,List,FALSE))
=MAX(IF(List<>0,List,FALSE))
=SUM(IF((List>=LLim)*(List<=ULim),List,FALSE))
3
Copyright of www.ExcelExpertTraining.com
254
=AVERAGE(IF((List>=LLim)*(List<=ULim),List,FALSE))
=MIN(IF((List>=LLim)*(List<=ULim),List,FALSE))
=MAX(IF((List>=LLim)*(List<=ULim),List,FALSE))
หาผลลัพธ์เฉพาะค่าทีอ
่ ยูร่ ะหว่าง LLim ถึง ULim สามารถ
่ ําว่า FALSE ในสูตร
ละไม่ต ้องใสค
=IF(A1=B1,1,0)
=SUM(IF(A1:A10=B1:B10,1,0))
=SUM((A2:A10="Phone")*(B2:B10="Smith")*C2:C10)
4
=SUM(IF((A2:A10="Fax")+(B2:B10="Jones"),1,0))
=SUM(IF(MOD((A2:A10="Fax")+(B2:B10="Jones"),2),1,0))
=SUM(IF((A2:A10="Fax")+(B2:B10="Jones")<>2,1,0)
สงั เกตการใชเครื
้ อ ่ งหมายบวก หรือ เครือ
่ งหมายคูณ
5 =SUM((Month="Jan")*(Region="North")*Sales)
Copyright of www.ExcelExpertTraining.com
255
Region="North"
6 =SUM((Month="Jan")*(Region<>"North")*Sales)
7 =SUM((Month="Jan")*(Region="North"))
8 =SUM((Month="Jan")*(Sales>=200)*(Sales))
9 =SUM((Sales>=300)*(Sales<=400)*(Sales))
10 =SUM((Sales>=300)*(Sales<=400))
Copyright of www.ExcelExpertTraining.com
256
11 =SUM((A1:A10>=5)*(A1:A10<=10)*A1:A10)
รวมค่าระหว่าง 5 ถึง 10
12 =SUM((A1:A10>=5)*(A1:A10<=10))
นับจํานวนเซลล์ทม
ี่ ค
ี า่ ระหว่าง 5 ถึง 10
สูตรนับ คืนค่า
นับจํานวนเซลล์
=SUM((F4:F23="yes")+(F4:F23="no")) ทีม
่ ค
ี ําว่า yes
หรือ no
นับจํานวนเซลล์
=SUM(MOD(G4:G23,2))
ทีม
่ เี ลขคี่
13
นับจํานวนเซลล์
=SUM(IF(MOD(G4:G23,2)=0,1,0))
ทีม
่ เี ลขคู่
นับจํานวนเซลล์
=SUM(IF((F4:F23="yes")*(G4:G23>10),1,0))
แบบและ
นับจํานวนเซลล์
=SUM((F5:F24="yes")*(G5:G24>10))
แบบและ
Copyright of www.ExcelExpertTraining.com
257
นับจํานวนเซลล์
=SUM((F4:F23="yes")+(F4:F23="no"))
แบบหรือ
=SUM(IF(MOD(ROW($A$1:$A$20),N)=0,$A$1:$A$20,0))
=SUM(IF(MOD(ROW($B$3:$B$22)-
14 ROW($B$3)+1,N)=0,$B$3:B$20,0))
=SUM(IF(MOD(ROW($B$3:$B$22)-
ROW($B$3),N)=0,$B$3:B$22,0))
รวมค่าทุกๆตําแหน่งที่ N ตรงกัน
15 =IF(COUNTIF($A$1:A1,A1)=1,A1,"")
16 =IF(COUNTIF($A$1:$A$10,B1)>0,B1,"")
่ ํ้ากันจากตารางต่างกันออกมาแสดง
แยกข ้อมูลทีซ
17 =IF(COUNTIF($A$1:$A$10,B1)=0,B1,"")
Copyright of www.ExcelExpertTraining.com
258
18 =AVERAGE(IF((A1:A60>=Low)*(A1:A60<=High),A1:A60))
เฉลีย
่ ค่าทีอ
่ ยูร่ ะหว่าง Low ถึง High
=AVERAGE(LARGE(A1:A60,ROW(1:10)))
19
=AVERAGE(LARGE(A1:A60,ROW(INDIRECT("1:10"))))
เฉลีย
่ ค่าทีม
่ ากทีส
่ ด
ุ 10 อันดับแรก
ให ้เปลีย
่ น "1:10" เป็ น "1:N" เพือ
่ กําหนด N ลําดับแรกที่
ต ้องการ
20 =AVERAGE(SMALL(A1:A60,ROW(INDIRECT("1:10"))))
เฉลีย
่ ค่าทีน
่ ้อยทีส
่ ด
ุ 10 อันดับแรก
ให ้เปลีย
่ น "1:10" เป็ น "1:N" เพือ
่ กําหนด N ลําดับแรกที่
ต ้องการ
21 =SUM(IF(ISERR(data),1,0))
นับจํานวนเซลล์ทม
ี่ ค
ี า่ error
Copyright of www.ExcelExpertTraining.com
259
สูตร คืนค่า
รวมผลคูณของ
=SUM(E4:E13*F4,F13) ตาราง E4:E13 คูณ
ด ้วย F4:F13
=SUM((E4:E23)*(MOD(ROW(E4:E23) รวมค่าแบบบรรทัด
-ROW(E4),2)=0)) เว ้นบรรทัด
=SUM((E4:E23)*(MOD(ROW(E4:E23) รวมค่าทุกๆบรรทัดที่
-ROW(E4),5)=0)) 5 ของแต่ละชุด
รวมค่าเฉพาะค่าที่
22 =SUM(IF(MOD(I4:I23;2)=0,I4:I23,0))
เป็ นเลขคู่
รวมค่าเฉพาะค่าที่
=SUM(IF(MOD(I4:I23,2)<>0,I4:I23,0))
เป็ นเลขคี่
=SUM(IF((E4:E23>50)*(H4:H23="North"), รวมค่าเฉพาะค่า
E4:E23,0)) แบบและ
=SUM((E5:E24>50)*(H5:H24="North") รวมค่าเฉพาะค่า
*E5:E24,0) แบบและ
=SUM((H4:H23="North")*E4:E23 รวมค่าเฉพาะค่า
+(H4:H23="South")*E4:E23) แบบหรือ
Copyright of www.ExcelExpertTraining.com
260
23 =OFFSET(List,MAX(ROW(RevList))-ROW(),0)
กลับลําดับค่าในแนวตัง้
=OFFSET(RowList,0,MAX(COLUMN(RevRowList))-
24
COLUMN())
กลับลําดับค่าในแนวนอน
=OFFSET(CList,COLUMN()-MIN(COLUMN(RList)),0)
25 =OFFSET(CList,MAX(COLUMN(RevRList))-
COLUMN(),0)
=OFFSET(RowList,0,ROW()-MIN(ROW(TXList)))
26 =OFFSET(RowList,0,MAX(ROW(TList))-ROW())
Copyright of www.ExcelExpertTraining.com
261
=ADDRESS(MIN(IF(NumRange=MIN(NumRange),ROW(NumRange))),
27
COLUMN(NumRange),4)
Address ของค่าทีน
่ ้อยทีส
่ ด
ุ ค่าแรก
=ADDRESS(MAX(IF(NumRange=MIN(NumRange),ROW(NumRange)*
28 (NumRange<>""))),
COLUMN(NumRange),4)
Address ของค่าทีน
่ ้อยทีส
่ ด
ุ ค่าสุดท ้าย
=ADDRESS(MIN(IF(NumRange=MAX(NumRange),ROW(NumRange))),
29
COLUMN(NumRange),4)
Address ของค่าทีม
่ ากทีส
่ ด
ุ ค่าแรก
=ADDRESS(MAX(IF(NumRange=MAX(NumRange),ROW(NumRange)*
30
(NumRange<>""))),COLUMN(NumRange),4)
Address ของค่าทีม
่ ากทีส
่ ด
ุ ค่าสุดท ้าย
Copyright of www.ExcelExpertTraining.com
262
31 =INDEX(Rng,MATCH(MAX(COUNTIF(Rng,Rng)),COUNTIF(Rng,Rng),0))
้ ํ้ามากทีส
ค่าทีใ่ ชซ ่ ด
ุ
=(MAX((DataRange2<>"")*ROW(DataRange2)))-
32
ROW(DataRange2)+1
นับจํานวนบรรทัดทีม
่ ข
ี ้อมูล
=INDIRECT(ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
33
COLUMN(DataRange2),4))
=INDIRECT(ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
34
COLUMN(DataRange2)+1,4))
=SUM(IF(FREQUENCY(IF(LEN(Range1)>0,MATCH(Range1,Range1,0),""
3
),
5
IF(LEN(Range1)>0,MATCH(Range1,Range1,0),""))>0,1))
นับจํานวนค่าทีเ่ ป็ น Unique
Copyright of www.ExcelExpertTraining.com
263
36 =SUM(1/COUNTIF(A1:A10,A1:A10))
37 =SUM(N(FREQUENCY(A1:A10,A1:A10)>0))
=ADDRESS(ROW(DataRange2),COLUMN(DataRange2),4)&":"&
38 ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
COLUMN(DataRange2)+COLUMNS(DataRange2)-1,4)
=RIGHT(A1,LEN(A1)-
MAX(ROW(INDIRECT("1:"&LEN(A1)))
39
*(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="
")))
แสดงคําสุดท ้ายขวาสุด
=MID(A10,SMALL(IF(MID(" "&A10,ROW(INDIRECT
40 ("1:"&LEN(A10)+1)),1)="
",ROW(INDIRECT("1:"&LEN(A10)+1))),
Copyright of www.ExcelExpertTraining.com
264
=MID(A10,SMALL(IF(MID(" "&A10,ROW(INDIRECT
("1:"&LEN(A10)+1)),1)="
",ROW(INDIRECT("1:"&LEN(A10)+1))),
41 B10),SUM(SMALL(IF(MID(" "&A10&" ",ROW(INDIRECT
("1:"&LEN(A10)+2)),1)="
",ROW(INDIRECT("1:"&LEN(A10)+2))),
B10+C10*{0,1})*{-1,1})-1)
แยกคําลําดับทีต
่ ้องการออกจากประโยค
=SUM(IF(WEEKDAY(A2-1+ROW(INDIRECT("1:"&TRUNC(B2-
42
A2)+1)))=C2,1,0))
่ ๆ จากชว่ งเวลาทีก
นับจํานวนวันจันทร์หรือวันอืน ่ ําหนด
A2 เป็ นวันเริม
่ ต ้น
ิ้ สุด
B2 เป็ นวันสน
C2 เป็ นเลขทีข ั ดาห์ (1=Sunday,
่ องวันในสป
Copyright of www.ExcelExpertTraining.com
265
2=Monday,...,7=Saturday)
=IF(ROW()-ROW(NoBlanksRange)+1>ROWS(BlanksRange)-
COUNTBLANK(BlanksRange),"",INDIRECT(ADDRESS(SMALL(
43 (IF(BlanksRange<>"",ROW(BlanksRange),ROW()+
ROWS(BlanksRange))),
ROW()-ROW(NoBlanksRange)+1),COLUMN(BlanksRange),4)))
=SUM(IF(IF(B$5>=F6:F10,F6:F10-F5:F9,$B$5-F5:F9+1)>0,
44
IF(B$5>=F6:F10,F6:F10-F5:F9,$B$5-F5:F9+1),0)*G5:G9)
้ ก FIFO
Progressive Pricing คํานวณจํานวนเงินทัง้ หมด ใชหลั
E F G H
4 Quantity UnitPrice
5 1 5
6 10 4
7 30 3
Copyright of www.ExcelExpertTraining.com
266
8 60 2
9 100 1
10 9999999
11
A B C D E
{=LEFT(A2,
MIN(IF(ISNUMBER( =RIGHT(A2,
2 ab2 ab 2 MID(A2,{1,2,3,4,5,6},1) LEN(A2) -
45
*1),{1,2,3,4,5,6},7))- LEN(B2))*1
1)}
{=LEFT(A6,
MIN(IF(ISNUMBER( =RIGHT(A3,
3 OP30 OP 30 MID(A3,{1,2,3,4,5,6},1) LEN(A6) -
*1),{1,2,3,4,5,6},7))- LEN(B6))*1
1)}
Copyright of www.ExcelExpertTraining.com
267
{=LEFT(A8,
MIN(IF(ISNUMBER( =RIGHT(A4,
4 OP1221 OP 1221 MID(A4,{1,2,3,4,5,6},1) LEN(A8) -
*1),{1,2,3,4,5,6},7))- LEN(B8))*1
1)}
แยกคําทีเ่ ป็ นตัวอักษรออกจากตัวเลข
ตะแคงตารางเป็ นแนวตัง้
Copyright of www.ExcelExpertTraining.com
268
=OFFSET($B$5,MIN(IF(COUNTIF($G$11:G11,$B$5:$GR$10)=0,
ROW($B$5:$GR$10)-
ROW($B$5))),MOD(MIN(IF(COUNTIF($G$11:G11,$B$5:$GR$10)=0,
ROW($B$5:$GR$10)- ROW($B$5) +(COLUMN($B$5:$GR$10)-
COLUMN($B$5))/1000)),1)*1000)
47
=INDEX(tbl,MIN(IF(COUNTIF($A$1:A1,tbl)=0,ROW(tbl)-
MIN(ROW(tbl))+1)),
MATCH(0,COUNTIF($A$1:A1,INDEX(tbl,MIN(IF(
COUNTIF($A$1:A1,tbl)=0,ROW(tbl) -MIN(ROW(tbl))+1)),,1)),0),1)
48 =AND(NOT(ISNA(MATCH(Range1,Range2,0))))
=MMULT(N(ROW(INDIRECT("1:"&ROWS(A)))=TRANSPOSE(
49 ROWS(A)+1-ROW(INDIRECT("1:"&ROWS(A))))),A)
=MMULT(A,N(ROW(INDIRECT("1:"&COLUMNS(A)))=TRANSPOSE
Copyright of www.ExcelExpertTraining.com
269
(COLUMNS(A)+1-ROW(INDIRECT("1:"&COLUMNS(A))))))
กลับข ้างตาราง
=OR(A1=2,A1=3,ISNA(MATCH(TRUE,A1/ROW(INDIRECT(
50 "2:"&INT(SQRT(A1))))=
INT(A1/ROW(INDIRECT("2:"&INT(SQRT(A1))))),0)))
51 =MATCH(TRUE,EXACT("A",MyRange),0)
case-sensitive MATCH
17 = 5x + 3y + 2z
13 = 2x + 4y + z
22 = 3x + 2y + 5z
Put the coefficients of the unknowns in, e.g., A1:C3 (i.e., 5,3,2 in
A1:C1, 2,4,1 in A2:C2, etc.);
=MMULT(MINVERSE(A1:C3,D1:D3)
and the solution vector (1,2,3) will appear in E1:E3; i.e., x=1,
y=2, z=3 For a set of equations that does not have a solution,
Copyright of www.ExcelExpertTraining.com
270
=SUM(N(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),
53 MID(A1,ROW(INDIRECT
("1:"&LEN(A1))),1),0)=ROW(INDIRECT("1:"&LEN(A1)))))=LEN(A1)
ี ํ้ากันหรือไม่
ตรวจสอบว่าตัวอักษรในเซลล์มซ
=SUM(VALUE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*10
54
^(ROW(INDIRECT ("1:"&LEN(A1)))-1))
กลับข ้างหลักตัวเลข
A1:D1 = {1,2,3,4}
A5:D5 = {5,6,7,5}
55
=SUM({1,2,3,4}*{5,7,6,5}) = 57
=SUM(A1:D1*INDEX(A5:D5,5-COLUMN(A5:D5)))
สูตรเพีย
้ นโดยไม่ทราบสาเหตุ เมือ
่ สร ้างสูตรสุดท ้ายลงในเซลล์เดียวจะ
คํานวณผิด ต ้องสร ้างสูตรลงในเซลล์ 2 เซลล์
=ROWS(iRng)-
56
ROW(OFFSET($A$1,,,ROWS(iRng),)).
Copyright of www.ExcelExpertTraining.com
271
กลับตําแหน่งเซลล์
=IF(T(OFFSET(iRng,ROWS(iRng)-
ROW(OFFSET($A$1,,,ROWS(iRng),)),,,))="",N
57 (OFFSET(iRng,ROWS(iRng)-
ROW(OFFSET($A$1,,,ROWS(iRng),)),,,)),T(OFFSET
(iRng,ROWS(iRng)-ROW(OFFSET($A$1,,,ROWS(iRng),)),,,)))
กลับตารางแนวตัง้
=LARGE(IF(MATCH(Rng,Rng,0)=ROW(Rng)-
58
MIN(ROW(Rng))+1,Rng,""),N)
=SUM(N(FREQUENCY(IF(lookupRange="specifStr",
59
MATCH(colRange,colRange,0)), MATCH(colRange,colRange,0))0))
=SMALL(IF(MATCH(TheList,TheList,0)=ROW(TheList),
ROW(TheList),""),
60
ROW(INDIRECT("1:"&SUM(N(MATCH(TheList,TheList,0)=
ROW(TheList))))))-1
Copyright of www.ExcelExpertTraining.com
272
=IF(SUBTOTAL(3,OFFSET(Rge,ROW(Rge)-
61
MIN(ROW(Rge)),,1)),Rge,"")
=IF(MONTH(DATE(y,m,1))<>MONTH(DATE(y,m,1)-
(WEEKDAY(DATE(y,m,1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1),
62
"", DATE(y,m,1)-(WEEKDAY(DATE(y,m,1))-
1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1)
สร ้างปฏิทน
ิ ของเดือน
=SUM((WEEKDAY(DATE($B$2,$A3,ROW(INDIRECT("1:"&
63
DAY(DATE($B$2,$A3+1,0))))))=C$1)*1)
64 =SUM(IF(ISNONTEXT(data),1))
65 =SUM(IF(ISTEXT(data),1))
จํานวนเซลล์ทเี่ ป็ นตัวอักษร
Copyright of www.ExcelExpertTraining.com
273
66 =SUM(IF(ISLOGICAL(data),1))
จํานวนเซลล์ทเี่ ป็ น logical
67 =SUM(IF(EXACT(data,text),1))
=SUM(IF(LEN(data)-
68
LEN(SUBSTITUTE(data,text,""))>0,1))
=(SUM(LEN(data))-
69 SUM(LEN(SUBSTITUTE(UPPER(data),UPPER(text),""))))/LEN(text)
=(SUM(LEN(data))-SUM(LEN(SUBSTITUTE(data,text,""))))/LEN(text)
=INDIRECT(ADDRESS(ROW(Data)+MATCH(MIN(ABS(Target-
70
Data)),ABS(Target-Data),0)-1,COLUMN(Data)+ColOffset))
Closest Match
Copyright of www.ExcelExpertTraining.com
274
=SUM((MATCH(Grades,{"F","D","C","B","A"},0)-
71
1)*CreditHours)/SUM(CreditHours)
GPA
=ADDRESS(ROW(Data)+MATCH(Target,Data,0)-
72
1,COLUMN(Data))
ตําแหน่งเซลล์ทม
ี่ ค
ี า่ อยูใ่ นตารางแนวตัง้
=ADDRESS(ROW(Data),COLUMN(Data)+MATCH(Target,Data,0)-
73
1)
ตําแหน่งเซลล์ทม
ี่ ค
ี า่ อยูใ่ นตารางแนวตัง้
=INDEX(Code,
74
MATCH(Make&Model,Range1&Range2,0))
2 value lookup
=INDEX(Data, SMALL(IF(Data>0,
ROW(INDIRECT("1:"&ROWS(Data)))),
75 ROW(INDIRECT("1:"&ROWS(Data)))))
IF(ISERR( SMALL(IF(Data>0,
ROW(INDIRECT("1:"&ROWS(Data)))),
Copyright of www.ExcelExpertTraining.com
275
สรุปค่าบวก
=IF(ISERR(SMALL(IF(Data<>"",ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data))))),
76 "",INDEX(Data,SMALL(IF(Data<>"",
ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data))))))
=IF(INDEX(Data,ROWS(Data) -
ROW(INDIRECT("1:"&ROWS(Data)))+1)="", "",
77
INDEX(Data,ROWS(Data) -
ROW(INDIRECT("1:"&ROWS(Data)))+1))
กลับตําแหน่งค่าในตารางแนวตัง้
=LARGE(Data,ROW(INDIRECT("1:"&ROWS(Data))))
Copyright of www.ExcelExpertTraining.com
276
80 =SUM(LARGE(Data,ROW(INDIRECT("1:"&n))))
รวมค่าทีม
่ ากทีส
่ ด
ุ n ลําดับแรก
=IF(OR(TheName=NameList),"Found","Not
81
Found")
82 =SUM(IF(MyData=YourData,0,1))
นับจํานวนเซลล์ทม
ี่ ค
ี า่ ไม่เท่ากัน เมือ
่ เทียบ 2 ตาราง
=ADDRESS(MIN(IF(Data=MAX(Data),ROW(Data),
83
"")),COLUMN(Data))
84 =MIN(IF(Data=MAX(Data),ROW(Data), ""))
Copyright of www.ExcelExpertTraining.com
277
85 =SMALL(IF(Data=Value,ROW(Data), ""),n)
86 =INDEX(Data,MATCH(MAX(LEN(Data)),LEN(Data),FALSE),1)
คํายาวทีส
่ ด
ุ ในตาราง
87 =ISNA(MATCH(TRUE,ISNA(MATCH(MyList,Master,0)),0))
88 =SUM(1*ISNA(MATCH(MyList,Master,0)))
89 =INDEX(MyList,MATCH(TRUE,ISNA(MATCH(MyList,Master,0)),0))
=SUM(VALUE(MID(ABS(A1),ROW(INDIRECT
90
("1:"&LEN(ABS(A1)))),1)))
Copyright of www.ExcelExpertTraining.com
278
รวมตัวเลขทุกหลักในค่าจํานวนเต็ม
=MID(A4,MATCH(0,(ISERROR(MID(A4,
ROW(INDIRECT("1:"&LEN(A4))),1)*1)*1),0),LEN(A4)-
91
SUM((ISERROR(MID(A4, ROW(INDIRECT(
"1:"&LEN(A4))),1)*1)*1)))
แยกเฉพาะสว่ นตัวเลขออกจากตัวอักษร
=INDEX(Data,MATCH(SMALL(ABS(Target-
92
Data),1),ABS(Target-Data),0))
ค่าทีใ่ กล ้เคียงทีส
่ ด
ุ กับค่าทีต
่ ้องการ
=INDIRECT(ADDRESS(MAX((ROW(4:503)*
93
(A4:A503<>""))),COLUMN(A:A)))
=INDIRECT(ADDRESS(6,(MAX((TRANSPOSE(
94
ROW(1:256))*(6:6<>""))))))
Copyright of www.ExcelExpertTraining.com
279
95 =SUM(1*(B6<=Sales))-(SUM(1*(B6=Sales))-1)/2
96 =SUM(IF($E6&F$5=Date&Category,Amount))
Dynamic crosstabulation
=LEN(A1)+1-MATCH(" ",MID(A1,LEN(A1)+1-
97
ROW(INDIRECT("1:"&LEN(A1))),1),0)
ค่าติดลบ
Copyright of www.ExcelExpertTraining.com
280
=INDEX(Product, SMALL(IF((Type=YourType) *
(Account=YourAcct) * (Date>=YourDate) * ROW(INDIRECT("1:"&
100 ROWS(Product)))<>0, (Type=YourType) * (Account=YourAcct) *
(Date>=YourDate) * ROW(INDIRECT("1:"&ROWS(Product)))),
ROW(INDIRECT("1:"&ROWS(Product)))),1)
Unique List
Copyright of www.ExcelExpertTraining.com
281
การกําหนดขอบเขตตารางแบบยืดหยุน
่
ขอบเขตตารางแบบยืดหยุน
่ หมายถึง ขอบเขตตารางทีส
่ ามารถยืดได ้หดได ้ตามจํานวนรายการ
หรือปริมาณข ้อมูลทีม ่ ลด ทําให ้ไม่ต ้องใชวิ้ ธค
่ เี พิม ี อ
่ ยๆ Insert เพิม
่ row เพือ
่ ขยายพืน
้ ทีต
่ าราง
ให ้มีเซลล์วา่ งเตรียมไว ้สําหรับข ้อมูลในอนาคต หรือไม่ต ้องกําหนดขอบเขตตารางแบบฟุ่ มเฟื อย
่
โดยสร ้างสูตรอ ้างอิงกับทัง้ column เชน
ในบทความนีข
้ อแนะนํ าวิธก
ี ําหนดขอบเขตตารางแบบยืดหยุน
่ ตัง้ แต่วธิ ี Dynamic Cell ไปจนถึง
วิธ ี Dynamic Range ซงึ่ ใชสู้ ตร Offset, Index, Indirect, Address ชว่ ยในการกําหนดขอบเขต
ตารางแบบอัตโนมัต ิ
วิธก
ี า
ํ หนดตําแหน่งเซลล์แบบยืดหยุน
่ (Dynamic Cell)
Copyright of www.ExcelExpertTraining.com
282
ต ัวอย่า
าง
งึ่ าตัวเลข 2
ตัวอย่างงนีเ้ ป็ นตารางสูตรคูณซงนํ 2, 3, 4, 5 บนหั
บ วตาราง
งมาคูณกับตั วเลข 10, 20,
2 30
้
ด ้านข ้างงซายของตา ชวิ้ ธต
าราง โดยใช ื่ เซ
ี งั ้ ชอ ซลล์ C2:F2 บนหัวตารา
างว่า Top แ ื่ เซลล์
และตัง้ ชอ
้
B3:B5 ด ้านซายขอ
องตารางว่า Left
ในเซลล
ล์ C3 สร ้างสู
สูตร =Top*
*Left แล ้วเมื
มือ ซลล์ C3 ไป paste ลงไป
่ copy เซ ปในเซลล์ตงแต่
งั ้
C3:G7 ย่อมพบว่าสูตร =Top* ้ ที่ C3:F5 ซงึ่
*Left สามารรถคํานวณหาผลคูณไดถู้ถกต ้องเฉพาาะพืน
เป็ นตารรางทีอ
่ ยูใ่ นข
ขอบเขตแนว
วคูข
่ นานตัดก
กันของ Top ้ สว่ น
p และ Left เท่านัน นสูตรในเซล
ลล์นอก
แนวคูข
่ น
นานของ To
op กับ Left ให ้คําตอบเเป็ น error ว่วา #VALUE
E!
แทนทีจ
จะดั
่ ดแปลง Top กับ Le
eft ให ้เป็ น D
Dynamic Ra
ange ด ้วยสู
สูตร Offset เพือ
่ ทําให ้ Top
T กับ
Left ขย
ยายขอบเขต
ตให ้มีขนาดต
ตามค่าตัวเล
ลขบนหัวตารรางและตัวเล ้ ของตารางที
ลขข ้างซายข ทีอ
่ าจจะ
มีเพิม
่ ขึน
้ ให ้ดัดแปล
ลงตําแหน่งอ ้างอิงของ Top กับ Le
eft ให ้เป็ น Dynamic
D Ceell โดยมีขนตอน
น
ั้
ดังนี้
1. คลิกเลือกเซ
ซลล์ C3
2. เลือกคําสงั่ Formulas > Name M
Manger
3. แก ้ตําแหน่งอ
ง ้างอิงของ Top =C$2
2 และ Left =$B3
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
283
เมือ
่ Top =C$2 จะะทําให ้ Exce
el ถือว่าทุกเเซลล์ทอ ่ื ว่า Top แ
ี่ ยูใ่ น row 2 มีชอ และเมือ
่ Lefft =$B3
มายถึงทุกเซ
ย่อมหม ื่ วว่า Left ทําให
ซลล์ใน column B มีชอ ใ ้สามารถใใชสู้ ตร Top *Left ได ้ทุกที
ก ใ่ น
ี โดยไม่จําเป็ นต ้องกํ
ชท ้ าหนดข
ขอบเขตตาราางของ Top
p กับ Left ตามขนาดข
ต อมู
้อ ลอีกต่อไป
ป
ต ัวอย่า
าง
ในกรณีทีต ปลีย
่ ้องการเป ่ นส ี colu ใ ้มีสเี ฉพาะะแนวของ coolumn ทีอ
umn ในตารรางสูตรคูณให ่ ยู
ยใ่ ต ้
ตัวเลขบ
บนหัวตารางงทีเ่ ป็ นเลขคี
คี่
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
284
ให ้เลือก
กพืน
้ ทีต
่ วั เลข
ขผลคูณตัง้ แต่ แล ้วใชคํ้ าสงั่ Home > Conditionaal Formattiing
แ C3:G7 แ
แบบ Usse a formu
ula to deterrmine whicch cells to format
f ้ว สู้ ตรต่อไไปนี้
แลวใช
=MOD(C$2,2)=1
ประโยช
ชน์ของวิธท
ี ําให C เป็ น Dyynamic Celll จะชว่ ยทําให
า ้เซลล์ C$2 ใ ้ใชคํ้ าสงั่ Conditiona
al
Formattting กําหนดเงือ
่ นไขให
ห ้กับทัง้ ตาราางได ้พร ้อมก ี
กันในทีเดียว โดยไม่จําาเป็ นต ้องเสยเวลา
ย
ใชคํ้ าสงั่งนีก
้ บ
ั ทีละเซ
ซลล์หรือทีละ
ล column และยังสามารถนํ าหลักการนีไ กั้ บคําสงั่ Da
้ ปใชก ata
Validattion ทีก
่ ําหน m โดยใชสู้ ตรตรวจสอบ
นด Allow แบบ Custom ต การบันทึกค ่ กัน
ค่าได ้เชน
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
285
ตามปกติเมือ
่ สร ้างสู
สูตรอ ้างอิงกับ
ั ตําแหน่งเ ซลล์หรือตําแหน่
า งตารา
าง จากนัน
้ เมื
มือ่ มีการย ้าย
ยหรือ
Insert//Delete ทําให
ใ ้เซลล์หรือตารางนั
อ น
้ เเปลีย
่ นตําแห
หน่งหรือมีขนาดพื
น น ่ า่ างไปจากเดิม จะ
้ ทีต
พบว่าตําาแหน่งอ ้างอ
อิงทีก
่ ําหนด
ดไว ้ในสูตรมีการปรับตําแหน่
แ งตามให
ห ้เอง แต่ถ ามี
้า การเปลีย
่ นแปลง
น
เฉพาะจํ
จํานวนรายการของข ้อมูลในตารางนั
นัน้ ให ้มีจํานววนรายการเพิ
พิม
่ ลด จะพบ
บว่าตําแหน่งอ
ง ้างอิง
ทีก
่ ําหน
นดไว ้ในสูตร มิได ้ขยายห
หรือลดขอบ เขตตารางต
ตามปริมาณข
ข ้อมูลทีม
่ อ
ี ยู แ ด ผู ้ใช ้
่ ต่อย่างใด
Excel ทัว่ ไปจึงมักแก
แ ้ไขโดยสรร ้างสูตรทีม
่ ข
ขอบเขตตาร
ี รางเผือ
่ ไว ้ บางคนถึ
บ บใชตํ้ าแหน่งอ
งกับ ง ้างอิง
ทัง้ colu ่ ไวว ้ สง่ ผลให ้แฟ้ มนัน
umn เผือ ้ ลงผิดปกติ
้ มีขนาาดใหญ่และะคํานวณชาล
ใน Exce
el 2003 แล
ละรุน ้ มีคําสงั่ Daata > List ไว
่ ก่อนนัน ไ ้ใชช้ ว่ ยแก กล่าว สว่ นใน
ก ้ปั ญหาดังก น Excel
2010 ไ ื่ คําสง่ั ใหม่เป็ น Table
ได ้ตัง้ ชอ T นคําสงั่ ทีต
(เป็ น ่ า่ งจาก Data Table)
T ยสงั่ Insert >
โดย
หรือ Home > Format as Table ท
Table ห ทําให ้ Excell ปรับขอบเข
ขตตารางตาามปริมาณขอมู
้ ลที่
เพิม
่ ใหโดยอั
้โ ต ชว่ ยทําให
ตโนมัติ ่ ําหนดไว ้ในสูตร, Format, Conditional
ห ้ตําแหน่งอ ้า้างอิงทีก
Formattting, Data Validation
n, หรือแม ้แต
ต่ใน Pivot Table
T ปรับขนาดตามให
ข ห ้ทันที
ก่อนทีจ
จะใช
่ คํ้ าสงั่ Table
T ื่ Rangee Name ให
ควรตังั ้ ชอ ้ มือของ
ห ้กับตารางฐานข ้อมูลทาางด ้านซายมื
ภาพนีไ ดสงั เกตว่า Range
้ ว ้ก่อน โปรด R Nam ื่ ้องมีขนาด
me แต่ละชอต
อ ดอย่างน ้อย 2 เซลล์ขน
ึ้ ไป
(ตามภาาพนีค
้ อ
ื MyD
Data, Id, Name,
N Amo
ount และสาาเหตุทไี่ ม่ตงช ื่ ให ้กับเซ
งั ้ อ ซลล์ของ Co
ost เพือ
่
พิสจ
ู น์วาไม่
่ จําเป็ นต ื่ ไว
ต ้องตัง้ ชอ ว ้ก่อนก็ยงั ได
ด ้) จึงจะทําให
ใ ้ Table ขยายขอบเข
ข ื่ ตา
ขตของชอ าราง
ตามปริม
มาณข ้อมูลทีเ่ พิม
่ ขึน
้
ื่ Range Name
่ ตัง้ ชอ
เมือ N ไว ้ก่อนเรี
อ ยบร ้อย ้อ ลแล ้วสงั่ Insert
ยแล ้ว ให ้คลิกลงไปในตารางฐานข อมู
> Table
e โดย Exce
el จะเลือก =$B$2:$E$
= $3 เป็ นขอบ
บเขตตารางใให ้เองพร ้อม ่ ง My
มกับกาชอ
table h
has headerss ไว ้ด ้วยแล ้ว้ เมือ
่ กดปุ่ ม OK จะเกิด Range Na ื่ Taable2 มีตําแหน่
ame ชอ แ ง
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
286
เมือ
่ บันท
ทึกข ้อมูลเพิ
พิม่ ขึน
้ จะพบ ื่ Rang
บว่าชอ ge Name ทัง้ หมดมีขอบเขตของตํ ําแหน่งอ ้างอิง
ขยายตาามให ้อย่างอ ว่
อัตโนมัต ิ ชวยทํ าให ้ตําแ
แหน่งอ ้างอิงที
ง ก ่ ําหนดไว ้ในสูตร, Foormat,
Conditiional Formatting, Datta Validatio
on, หรือแม ้แต่
้ ใน Pivott Table ปรับ
บขนาดตามให ้ทันที
การยกเเลิก Table ทํ
ทาได ้ง่ายๆโ
โดยคลิกขวาาลงไปในตาารางทีเ่ ป็ น Table
T สั ง่ Table >
แล ้วส
Converrt to range แต่ถ ้าเปลียนใจส
ย่ งั่ Inssert > Table ขึน
้ มาใหม
ม่ จะพบว่าสู ตร
=SUM((Sheet1!$E
E$3:$E$7) ไม่เปลีย
่ นก ลับไปเป็ น =SUM(Tab
= ble2[Cost]) แต่อย่างใด
ด ดังนัน
้
นะนํ าให ้ใช ้ Range Nam
จึงขอแน me ทีต ื่ น
่ งั ้ ชอ
อขึ ้ มาเองไวว ้ก่อน จะยืดหยุ
ด น ่ และถาาวรกว่าการใใช ้
Structu
ured Refere
ence
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
287
อย่างไรรก็ตามหากมี
มีการลบเฉพ
พาะตัวข ้อมูล ไ ้สงั่ Delette Row จะพ
ลทิง้ โดยไม่ได พบว่าขอบเข
ขต
ตารางยั
ยังคงมีขนาด ้ ต
ดคงเดิม ทัง้ Range Na me และตําแหน่งอ ้างอิงทีใ่ ชในสู ตร ไม่ได ้ลดข
ขนาด
ตามจําน
นวนรายการทีล
่ ดลงแต่อย่ ํ ญของกา
อ างใด จึงเเป็ นข ้อแม ้สาคั ารใช ้ Table ว่าจะชว่ ยข
ขยาย
ขอบเขต
ตตารางตาม
มปริมาณข ้อม
มูลทีเ่ พิม
่ โด
ดยอัตโนมัต ิ แต่ไม่ได ้ลด
ดขนาดตามป
ปริมาณข ้อมู
มูลที่
ลดลง
้ ตร IF หรื
วิธใี ชส
สู ห อ Choo
ose กําหน
นดขอบเข
ขตตาราง
ตามปกติในสูตร VLLookup, Ma
atch, Offseet, หรือสูตรด ้านฐานข ้อมูลใดๆ สาม
มารถรับตําแหน่
แ ง
ตารางไ
ได ้เพียงตาราางเดียวในวง
งเล็บของสูต ่ สูตร =VLOOKU
ตร เชน UP($H$3,M 0) ใช ้
MyData,2,0
ื่ MyData เป็
Range Name ชอ ปนตําแหน่งต
ตารางฐานข ้อมู
้ ลทีต
่ ้องก
การค ้นหาคําาตอบ ถ ้าตองการ
้อ
ทําให ้สูตร VLooku
up หรือสูตรฐ
ฐานข ้อมูลสูตรใดๆสูตรเเดียวสามารถ
ถค ้นหาข ้อมู
มูลจากหลาก
กหลาย
ตาราง ใให ้ใชสู้ ตร IF
F หรือ Choo ้ ข ้ ้าไปในสว่ นของ
ose ซอนเข น MyData
เมือ
่ ต ้องงการค ้นหาข
ข ้อมูล ให ้พิมพ์
ม ชอ ื่ Classs A, B, หรือ C ลงไปใน
นเซลล์ B100 ซงึ่ ตัง้ ชอ
ื่ ว่า Class
แล ้วพิมพ์รหัสลูกคาลงไปในเซ
้า ซลล์ B14 จะะสามารถคนหาข
้น ้อมูลขอ
อง Name แ
และ Amoun
nt โดย
ใชสู้ ตร IF(Class=""A", ClassA
A, IF(Class= ้
="B", ClasssB, ClassC) ) ซอนลงไ
ไปในสูตร
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
288
VLooku
up เพือ
่ ทําให
ห ้สามารถเลื
ลือกได ้ว่าจะะหาข ้อมูลจาากตารางใดต
ตามเงือ
่ นไข ื่ Class
ขชอ
กลายเป็ป็ นสูตรดังนี้
ในเซลล
ล์ C14
=VLOO
OKUP( $B$
$14, IF(Cla
ass="A", C
ClassA, IF(C
Class="B", ClassB, CllassC) ), 2,
2 0)
ในเซลล
ล์ D14
=VLOO
OKUP( $B$
$14, IF(Cla
ass="A", C
ClassA, IF(C
Class="B", ClassB, CllassC) ), 3,
3 0)
ี
หากไม่ต ้องการเสยเวลาพิ
ย ่ื Class เพื
มพ์ชอ พือ่ เพิม
่ ความ ้ สในเซล
มสะดวกให ้ใชรหั ลล์ B14 เลือก
ท ให ้ใชสู้ ตร =Left(C14
ค ้นหาข ้้อมูลได ้ทันที 4) สร ้างลงไ ื่ ว่า Classs เพือ
ไปในเซลล์ B10 ซงึ่ ตัง้ ช อ ่ ดึง
ตัวอักษ
ษรทีอ
่ ยูซ ้ สุดของรหัสมาใช
่ ายส ม ้ นชอ
เป็ ื่ Class ดังนั
นน ื่
้ การตัง้ ชอรหั
อ สให ้มีคววามหมายจะะทําให ้
เกิดประะโยชน์ชว่ ยลั
ลัดขัน
้ ตอนใน ้ นอย่างมาก
นการใชงาน
การใชสู้ ตร IF เพือ
่ เลือกพืน
้ ทีตารางหลาย
ต่ ๆแห่งมาใช ้ จะกลายเป็ นสูตร IF ซ อนกั
้ น ทําให
ห ้สร ้าง
ขึน
้ มาได
ด ้ยากและกล
ลายเป็ นสูตรยาวขึ
ร น ้ เรือ นํ าให ้ให ้ใชสู้ ตร Choosee แทน IF แต่
่ ยๆ จึงแนะนํ แ ต ้อง
ใชตั้ วเล
ลขทีต
่ าราง 1, ้ นเเงือ
1 2, หรือ 3 มาใชเป็ ่ นไขแทน ื่ ตาราง A,
นชอ A B, หรือ C
เมือ
่ ต ้องงการค ้นหาข
ข ้อมูล ให ้พิมพ์
ม เลขที่ Cl ass 1, 2, หรื ปในเซลล์ B 10 ซงึ่ ตัง้ ชอว่
ห อ 3 ลงไป ื่ า
อ
Class แ
แล ้วพิมพ์รหัส
ั ลูกค ้าลงไปในเซลล์ B
B14 จะสามารถค ้นหาข ้อมู
้ ลของ Naame และ Amount
A
สู้ ตร CHOOSE(Class,C
โดยใชส ้
Class1,Classs2,Class3) ซอนลงไปใ
ในสูตร VLoookup เพือ
่ ทํ
ทาให ้
สามารถ
ถเลือกได ้ว่าจะหาข ้อมูลจากตารางใใดตามเงือ
่ นไขเลขที
น ่ Cllass กลายเป
ป็ นสูตรดังนี้
ในเซลล
ล์ C14
=VLOO
OKUP( $B$
$14, CHOO
OSE(Class,,Class1,Class2,Class3
3), 2, 0)
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
289
ในเซลล
ล์ D14
=VLOO
OKUP( $B$
$14, CHOO
OSE(Class,,Class1,Class2,Class3
3), 3, 0)
ี
หากไม่ต ้องการเสยเวลาพิ
ย มพ์เลขที่ Class เพือ
่ เพิม
่ คววามสะดวกให ้ สใน เซลล์ B14 เลือก
ห ้ใชรหั
ค ้นหาข ้้อมูลได ้ทันที
ท ต ้องสร ้างตารางสรุปค ั พันธ์ระหว่างรหั
ความสม หัสกับเลขที่ Class ขึน ้
้ มาใชงาน
ตามภาพ
พต่อไปนีค
้ อเซลล์
อ
ื F10:G12 โดยตั ื่ ว่า Cla
ตัง้ ชอ งึ่ column ซายสุ
assTable ซงมี ้ ดเรียงลํ
ย าดับ
เลขรหัส Id เฉพาะรหัสตัวแรกข
ของแต่ละก ลุม ้ใ สู้ ตร VLookup แบบ Approachiing
่ แล ้วใหใช
10 ซงึ่ มีชอ
Match =VLOOKUP(B14,ClasssTable,2) สร ้างลงไปใในเซลล์ B1 ื่ ว่ า Class
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
290
้ ตร Inde
วิธใี ชส
สู ex กําหน
นดขอบเข ตตาราง
สูตร Ind
dex เป็ นสูตรทํ
ต าหน ้าทีดึ
ด่ งึ ค่าออกมาาจากตารางทีก
่ ําหนดตา
ามตําแหน่ง row และ column
c
ทีต ่ ตาม
่ ้องการ เชน มภาพตัวอย่างต่อไปนี้ =
=Index(Cla
ass1,3,2) จะดึ
จ งชอื่ c อ
ออกมาให ้เพ
พราะอยู่
ในตําแห
หน่ง row ที่ 3 ตัดกับ column ที่ 2 ภายในพืน
้ ทีต ื่ Class1 หรืรอถ ้าไม่ต ้องการ
่ ารางชอ
กําหนดตําแหน่ง ro
ow หรือ col ก็ให ้กําหนด ทีต
ดเลขตําแหน่งรายการที่ ้องการแท
ทนเพียงค่าเดี
เ ยว
่ =Index(CusttId1,3) จะดึ
เชน ดึงรหัส a003
3 ออกมาเพ
พราะรหัสนีม
้ ตํ
ต
ี าแหน่งเป็ น
นลําดับที่ 3 ใน
ชอ
ตารางช ื่ CustId1 (ทัง้ นี้ CusttId1 มีลก
ั ษ
ษณะเป็ น Sin
ngle Colum
mn จากเซลล
ล์ B3:B7)
สูตร Ind
dex ยังมีโครงสร
ค ร เศษ ซงึ่ ชว่ ยเลือกตํ
้างสูตรแบบพิ อ าแหน่งตารางที
ต ต ่ ้องงการได ้ทันที
ทโดยไม่
จําเป็ นต ั สูตร
ต ้องอาศย ต If หรือ Choose
C เข ามาช
้า ว่ ย เชน
่
สูตรในเเซลล์ C11 ใช ้
ใ หาชอื่ ลูกค ้า g ตามรห
หัส b002 ทีพ
่ ม
ิ พ์ลงไปในเซลล์ B111
=INDE
EX( (Class1
1,Class2,Class3), TrN
Num, 2, Class)
• ในสูตรนี้ พืนที
น้ ต ว่
่ ารางสวนของ (Claass1,Class2
2,Class3) เป
ป็ น 3 ตารางงทีต
่ ้องการเเลือก
• TrNum เป็ นเลขที
น ต ่ ําแห
หน่งรายการรของรหัส b002
b ทีพ
่ ม
ิ พ์
พไว ้ในเซลล์ ์ B11 มาจากสูตร
=MATCH(B
B11, CHOO
OSE(Class, CustId1,C
CustId2,CusstId3), 0)
• เลข 2 คือ เลขช
เ ตี้ ําแหน ื่ ลูกค ้า
น่ง column ของชอ
• ่ ารางซงึ่ หามาจา ก ClassTab
Class เป็ นเลขทีต ble ด ้วยสูตร
=VLOOKUP(B11, Cla
assTable, 2
2)
• CHOOSE(C
Class, CusttId1,CustId
d2,CustId3) ทําหน ้าทีเลื
เ่ อกตําแหน
น่งตารางรหั
หัสลูกค ้า
ตามเลขทีของ
ข่ Class
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
291
นอกจาก
กนีถ
้ ้าสร ้างสู
สูตร Index แบบ Arrayy จะทําหน ้าท
ทีห
่ าตําแหน
น่งตารางทัง้ ห
หมดตามแน
นวนอน
หรือแนววตัง้ ได ้อีกด ้วยโดยกํ
้ าหนดเลขที่ ro ่
ow หรือ column ให ้เท่ากับ 0 เชน
=Indexx(Class1, 0,
0 3)
จะได ้ค่าาทุก row ของ column
n ที่ 3 คือ ยอ
อด Amoun
nt ={10;20;30;40;50}} หรือ
=Indexx(Class1, 3,
3 0)
จะได ้ค่าาทุก column ของ row
w ที่ 3 คือ รห
หัส a003 ={"a003","c
c",30}
้ ตร Offs
วิธใี ชส
สู set กําหน
นดขอบเข
ขตตารางแ
แบบยืดหยุน
่ (Dyn
namic Ra
ange)
จากภาพ
พนีเ้ มือ
่ ต ้องก
การขอบเขต ห ้ใชสู้ ตร =O
ตตารางตัง้ แ ต่ B3:D7 ให OFFSET($B
B$3,0,0,5,3
3)
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
292
Copyright of www.ExcelExpertTraining.com
293
เมือ
่ หาความสูงของตารางด ้วยสูตรได ้แล ้ว จากเดิมทีเ่ ป็ นสูตร =OFFSET($B$3,0,0,5,3) ให ้นํ า
้
สูตรคํานวณหาความสูงมาซอนกั
นกลายเป็ นสูตร
=OFFSET($B$3,0,0, CountA($B:$B)-1, 3)
={"a001","a",10;"a002","b",20;"a003","c",30;"a004","d",40;"a005","e",50}
เมือ
่ เห็นค่าทีแ
่ ท ้จริงของสูตรแล ้ว ให ้กดปุ่ ม Esc เพือ
่ แก ้กลับคืนเป็ นสูตรตามเดิม
Copyright of www.ExcelExpertTraining.com
294
ถ ้าต ้องก
การปรับสูตร Offset ให ้คื้ นค่าเป็ นพื
พื้นทีต พียงบางสว่ น ให ้ปรับสว่ วนของตําแห
่ ารางเพ หน่ง
row, co
olumn, ควาามสูง และความกว ้างใน ่
นสูตร เชน
• =OFFSET(($B$3,2,0) หมายถึง B
B5
• =OFFSET(($B$3,4,2) หมายถึง D
D7
• =OFFSET(($B$3,2,0,1
1,3) หมายถึ
ถึง B5:D5
• =OFFSET(($B$3,4,0,1
1,3) หมายถึ
ถึง B7:D7
• =OFFSET(($B$3,2,0,2
2,3) หมายถึ
ถึง B5:D6
• =OFFSET(($B$3,0,0, CountA($B
B:$B)-1, 1)) หมายถึง B3:B7
B
• =OFFSET(($B$3,0,1, CountA($B
B:$B)-1, 1)) หมายถึง C3:C7
C
• =OFFSET(($B$3,0,2, CountA($B
B:$B)-1, 1)) หมายถึง D3:D7
D
• =OFFSET(($B$3,0,0, CountA($B
B:$B)-1, 2)) หมายถึง B3:C7
B
• =OFFSET(($B$3,0,1, CountA($B
B:$B)-1, 2)) หมายถึง C3:D7
C
• =OFFSET(($B$3, Cou
untA($B:$B
B)-2,0,1,3) หมายถึง B7:D7
B หรือรรายการสุดท ้าย
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
295
ชว่ ยกําหนดข
แม ้สูตร Offset จะช ขอบเขตตารรางให ้อัตโน
นมัตก
ิ ็ตาม แต่
แ ขอบเขตที
ทีไ่ ด ้ขึน
้ อยูก
่ บ
ั
ปริมาณ
ณข ้อมูลหรือจํ
จานวนรายการทีบ ั ทึกไไว ้ ซงึ่ ในบาง
่ น ม่ตรงกับควาามต ้องการ บางครัง้
งกรณีอาจไม
้ นอาจต ้องกาารกําหนดขอ
ผู ้ใชงาน อบเขตตาราางให ้แปรเปล
ลีย
่ นไปตามเงือ
่ นไขพิเศ
ศษ
จากภาพ
พนีส
้ มมุตวิ า่ ต ้องการหาย
ยอดรวมของงตัวเลขในพื
พืน
้ ทีต จาก B2:F155 ซงึ่ ตามปก
่ ารางจ กติ
ถใชสู้ ตร =S
สามารถ SUM(B2:F15) ได ้อยูแ
่ ล ้ว เมือ
่ ต ้องก
การเพิม
่ ลดข
ขนาดตาราง B2:F15 ให
ห ้ต่างไป
จากเดิม
มก็ต ้องแก ้ไข ้า งในสูตร หรือสงั่ In
ขตําแหน่งอางอิ e Row หรือ Column ซงึ่ ย่อม
nsert/Delete
ทําให ้ตําาแหน่งอ ้างอ
อิงในสูตร Sum
S ปรับตาาม แต่ผลจากการ Inserrt/Delete R
Row หรือ Column
อาจกระะทบกับพืน
้ ทีต
่ ารางใกล ้เคี
้ ยงทีอ
่ ยูใ่ น
นแนวเดียวกั
กันและทําให
ห ้ต ้อง Copyy สูตรทีส
่ ร ้าง
งไว ้เดิม
มีลําดับเซลล์ทอ
ี่ ้างอิงไว ้ผิดเพียนไปจากที
้ ที่ควรก็ได ้
นํ าตําแห
หน่งอ ้างอิงที ื่ มต่
ทไ่ ด ้มาเชอ ม อกันในเซ
ซลล์ I4 ด ้วย
ยสูตร =FirsstCell&":"&
&LastCell ทําให ้ได ้
B$2:$F$15 ซงึ่ มีลก
ตําแหน่งอ ้างอิง $B ั ษณ
ณะเป็ น Textt ทีบ
่ อกตําแหน่ง พร อมที
้อ จ ปใชกั้ บ
่ ะนํ าไป
direct
สูตร Ind
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
296
เมือ
่ ต ้องงการหายอด ส้ ตรในเซลล
ดรวม ให ้ใชสู ล์ I6 =SUM(INDIRECT
T(I4)) หรือจจะนํ าสูตร
=INDIR
RECT($I$4 ื่ เป็
4) ไปตัง้ ชอ เ น Formu
ula Name เพ
พือ
่ เพิม
่ ความ
มสะดวกในก ชร่้ วมกับ
การนํ าไปใช
สูตรอืน
่ ใใดก็ได ้ โดย
ยไม่จํากัดเฉพาะสูตร Su
um
หากต ้องการปรับเป
ปลีย
่ นขนาดต
ตาราง ให ้ย ายเซลล์
้า Firrst หรือ Lasst ไปวางลงงในตําแหน่งที
ง ่
ต ้องการร
จากภาพ
พนีเ้ มือ
่ ย ้ายเเซลล์ First กับ Last ไป
ปวางไว ้ทีเ่ ซลล์
ซ C5 และะ E9 ตามลําาดับ จะทําให
ใ ้สูตร
Sum หาายอดรวมใน
นขอบเขตตา
าราง C5:E9
9 ตามไปด ้วย
นสําคัญมิไดขึ
ประเด็น ้ขน ่ เพราะการสงั่ ย ้ายเซ
้ กับการสงั่ ย ้ายเซลล์ไไปตําแหน่งอืน ซลล์ยอ
่ มต ้องเกิด
จากฝี มือ
อของมนุษย์
ย แต่ขน
ึ้ กับการใช
ก สู้ ตร =
=Cell(“Add
dress”,cell) ต่างหาก เพ
พราะสูตรนีจะคื
จ
้ นค่า
เป็ นตําแ
แหน่งของเซ
ซลล์ทก
ี่ ําหน
นดไว ้ภายใน วงเล็บของส
สูตร เมือ ส้ ตร IF, Ch oose, Inde
่ ใชสู ex, หรือ
้
Offset ซอนเข ้าไปก็จะได ้ตําแห
หน่งเซลล์แ
แปรเปลีย ่
่ นตามให ้ทันที เชน
=CELL("Ad
ddress",INDEX(MyNu
um,FirstRow
w))
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
297
การจ ััดการค่าซํา้
ในหลักการบันทึกข ้อมู
้ ลทีด ี ้องควบคุมกาารบันทึกค่าซํ้าให ้เกิดขึนได
่ ต น้ ้เท่าทีจ
่ ําาเป็ นเท่านัน ่ ใน
้ เชน
งานบันท ิ ้าทีข
ทึกข ้อมูลสนค
น ่ าย จะมี
จ ตารางบัน ิ ้าเอาไว ้ จจากนัน
ั ทึกรายละเอียดของสนค
น ้ เมือ
่ ต ้องการ
ิ ้าไปใชที
รายละเอียดของสนค
น ้ เ่ ซลล์อน
ื่ ไม่
ม่จําเป็ นต ้องพ ิ ้านัน
พิมพ์รายละเอียดของสน
นค ํ้า ก
้ ๆซาอี
่ ําเเป็ นต ้องพิมพ์ซํ้ามีเพียงรหั
ค่าทีจ ง ส พอพิม
มพ์รหัสลงไป ส้ ตรดึงข ้อมูล
ปแล ้วให ้ใชสู ิ ค ้านัน
ลของรหัสสน ้
มาแสดงง โดยใชสู้ ตร
ต VLookup
p, Match, IIndex, หรือสูตรอืน
่ ๆดึงรายละเอียด
ดของรหัสมา
าแสดง
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
298
ถ ้าต ้องก
การเปลีย สเี ซลล์ทม
่ นส ี่ ก า นทึกค่า ซํ้า ให ้เริม
ี ารบั ่ จากเลือกพืนที
น
้ ต ่ ารางตัง้ แ 5 แล ้วสงั่
แต่ B3:B15
Home > Conditio ้ งือ
onal Formatting > Neew Rule โดยเลือกใชเงื ่ นไขแบบ Use a form
mula to
mine which cells to format แล ้วใ ชสู้ ตร =CO
determ OUNTIF($B$3:$B$15, B3)>1 ซงึ่ ถ ้าสูตรนี้
คืนค่าเป็ป็ น True ย่อมแสดงว่
อ ล ้วพบว่ามีคา่ ซํ้าจริง
าสูตร CountIIF นับข ้อมูลแล
โปรดสงังเกตว่าถ ้าใช
ช ้ Data Validation จะใใชสู้ ตร =CO
OUNTIF($B
B$3:$B$15 ,B3)=1 แต ่ ใช ้
ต่เมือ
กับ Con
nditional Fo
ormatting ต ้องเปลีย
่ นส
สมการจากเเท่ากับ 1 เป็
ปนมากกว่า 1 แทน ด ้วย
ยสูตร
=COUN
NTIF($B$3:$B$15,B3
3)>1 เพราะ Data Valid
dation จะยอมให ้บันทึก
กค่าต่อเมือ
่ นับแล ้วมี
เพียงค่าาเดียวคือนับแล ้ สว่ นการใใช ้ Conditio
บ ้วเท่ากับ 1 ค่าเท่านั น ่ นส ี
onal Formaatting จะเปลีย
เพือ
่ เตือ ่ มีคา่ ซํ้าคือเมือ
อนเมือ ่ นับแล
บ ้วทีค
่ า่ มาากกว่า 1
Data V
Validation เป็ป็ นเครือ
่ งมือที
อ ค ่ วรนํ ามาาใชร่้ วมกับ Conditiona
C al Formattinng เสมอ เนื
นือ
่ งจาก
Data V จ ว่ ยตรวจส
Validation จะช สอบค่าซํ้าให
ห ้ต่อเมือ ด าซํ้าขึน
่ เกิดค่ ้ จากการพิมพ์ ลงไปในตาราง
เท่านัน กมีการ copyy ค่าซํ้าวางล
้ แต่จะไม่ตรวจสอบหาก ลงไปแต่อย่างใด
า ดังนัน ่ เกิดค่าซํ้าขึน
้นเมือ ้
เมือ ก็จะเห็นสใี นเซลล์เปลีย
่ ใดก็ ่ นแปลงต่
น างไไปจากเดิมจากคํ
จ าสงั่ Conditional
C Formatting เป็ น
ยของการตรรวจสอบอีกชัน
ปราการรด่านสุดท ้าย ้ หนึง่
ในภาพต
ต่อไปหากต
ต ้องการเปลี
้ ยนส
ย ่ เี ซลล์เพือ
่ ชว่ ยแสด
ดงตําแหน่งข ้อมู
้ ลรายกาารทีต
่ ้องการให ้เห็น
ั เจนขึ
ชด ขึน้
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
299
ตารางด ้ อเป็
ด ้้านซายมื เ นตารางฐา
านข ้อมูล ให
ห ้เลือกพืน าะสว่ นของรรายการทัง้ หมด
้ ทีตารางเฉพา
่
ตัง้ แต่ B ้ว งั่ Home > Conditio
B3:E20 แลวส onal Forma
atting > Ne
ew Rule โด ้ งือ
ดยเลือกใชเงื ่ นไข
แบบ Usse a formu
ula to deterrmine whicch cells to format
f ้ว สู้ ตร =$$C3=$G$3
แลวใช
เซลล์ G
G3 เป็ นเซลล ้
ล์ทใี่ ชกรอกรหัสทีต การใชส้ บ
่ ้องก ี อก
กตําแหน่ง ดังั นัน
้ ในสูตร =$C3=$G
G$3 ที่
ใชนี้ จ
้ งึ ก
กําหนดตําแห
หน่งแบบคง อาไว ้ สว่ นเซ
งที่ $G$3 เอ ซลล์ C3 เป็ นเซลล์
น แรกข
ของรายการรหัส ID
ซงึ่ ในสูต
ตรนีก
้ ําหนดให ้เลือ
่ นตําแหน่งไปเรือ
่อยๆใน colu
umn C จึงตองใช
้อ ้ $C3
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
300
การหา
าเลขตําแหน่
แ งรายการข้อมูล ่ ํา้ ด้วยสู
ลทีซ ย ตร Mu
ultiple M
Match
สูตร Mu
ultiple Matcch ถือเป็ นสู
สูตรทีถ
่ ก
ู ถาม
มกันบ่อยครังมาก
ง้ ถึงแม ้ได
้ ้เคยเขียน
นอธิบายไวอย่
้อ าง
ละเอียด
ดหลายครัง้ หลายโอกาส
ห สแล ้วก็ตาม มักไม่เข ้าใจ
จว่าสูตรนีส
้ ร ้างกั
้ นได ้อย่
ย่างไรหากไม
ม่ได ้เห็น
ขัน
้ ตอน
นการสร ้างทีละขั
ล น ้ กับตาตัวเอง
ตารางด ้ อของภาพนี
ด ้้านซายมื ข เ้ ป็ นตารางฐา นข ้อมูลซงึ่ มีคา่ ซํ้ากันบัน ่ ข ้อมูลของ
ั ทึกไว ้ เชน งรหัส
a001 ถูกบันทึกไวในรายการที
้ใ ่ 1, 6, 9, 1 1, และ 15 โดยตัวเลขต
ตําแหน่งราย
ยการของรหั
หัส a001
เหล่านีส
สามารถหาไ
้ ได ้ด ้วยสูตร Multiple
M Maatch {=SM ึ่
MALL(IF(ID=G3,Num)),Num)} ซงสร ้าง
ไว ้ในเซ
ซลล์ L3:L12
2 แบบ Array
้
ตัวอย่างงนีใ้ ชการตั ื่ Range Name ว่า N
ง้ อ
งช Num, ID, Name,
N และะ Amount ใให ้กับพืน
้ ทีข
่ ้อมูล
B3:B20
0, C3:C20, D3:D20, และ 0 ตามลําดับ สว่ นเซลล์ G3 เป็ นเซล
แ E3:E20 ลล์รับค่ารหัสที
ส ่
ต ้องการรค ้นหาตําแห
หน่งรายการร
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
301
เพือ
่ แสด
ดงให ้เห็นทีไปที
ไ่ ม ่ าของ
งสูตร {=SM
MALL(IF(ID=G3,Num)),Num)} ว่าาเกิดจากการ
คํานวณ
ณหลายขัน
้ ตอ
อนและแต่ละขัน
้ ทําหน าที
้า ห่ าค่าอะไ
ไรบ ้าง ขออธิ
ธิบายสูตรที่สร ้างไว ้ใน Step1
S -
Step3 ด ้
ดังนี้ (เวลาใใชงานจริ
งไม
ม่จําเป็ นต ้องงสร ้างสูตรเห
หล่านีแ
้ ต่อย่
ยางใด)
Step1 : เริม
่ จากเลื
ลือกเซลล์ I3:I20 พร ้อม
มกันแล ้วสรร ้างสู
้ ตร =ID
D=G3 แล ้วก
กดปุ่ ม
Ctrl+Sh
hift+Enter จะมีวงเล็บปี กกาปิ ดหัววท ้ายสูตรกล
ลายเป็ น {=IID=G3} คืน
นค่าออกมาเป็ น
True คูขนานตรงกั
่ บ ั ตําแหน่งรายการทีม
่ รี ห
หัส a001
Step2 : ปรับตําแห
หน่งทีเ่ ป็ น True
T จาก S
Step1 ให ้เป็ นเลขทีร่ ายก
การ Num โโดยเลือกเซลล์
J3:J20 พร ้อมกันแล
ล ้วสร ้างสูตร =IF(I3:I2
20,Num) แล
ล ้วกดปุ่ ม Cttrl+Shift+E
Enter จะมีวงเล็บ
ปี กกาปิ ดหัวท ้ายสูตรกลายเป็
ต น {=IF(I3:II20,Num)} จะพบว่าตําแหน่
า งทีเ่ คย
ยเป็ นค่า Tru
ue
กลายเป็ป็ นเลขตําแห
หน่งรายการ 1, 6, 9, 11
1, 15 ขึน
้ มาาให ้เห็นแทน
น
Step3 : นํ าตัวเลข
ขตําแหน่งรา
ายการจาก S
Step2 มาเรียงจากน
ย ้อยไ
ไปมากโดยน ้ นสูตร
นํ าไปซอนใ
Small โโดยเลือกเซ
ซลล์ K3:K20
0 พร ้อมกันแ
แล ้วสร ้างสูตร
ต =SMALL
L(J3:J20,Nuum) แล ้วกด
ดปุ่ ม
Ctrl+Sh
hift+Enter จะมีวงเล็บปี กกาปิ ดหัววท ้ายสูตรกล
ลายเป็ น {=S
SMALL(J3: J20,Num)}}
เมือ
่ นํ าสูตรจาก Ste ้
ep1 – Step3 มาซอนกั
น ั จะกลายเป็ป็ นสูตร Multtiple Matchh ในเซลล์ L3:L12
L
{=SMA
ALL(IF(ID= Num)} ทัง้ นีโ้ ปรดสงั เก
=G3,Num),N กตว่าไม่จําเป็
ป็ นต ้องสร ้างงสูตรลงไปใในเซลล์
L3:L20 ทีย
่ าวลงมาาถึง row 20 ่ ทีใ่ ชกั้ บ
0 เชน ั สูตรใน Sttep1 – Step
p3 แต่อย่างงใด แต่ให ้เลื
ลือก
จํานวน row จากเซ
ซลล์ L3:L12
2 หรือ 10 ro
ow เท่าทีค
่ ดว่
ด มีโอกาสซาํ้ กั นสูงสุดกีค
ิ ารหัสจะมี ่ รัง้ ก็พอ
้ ใให ้ใชสู้ ตร Index ดึงขอมู
จากนัน ้อ ลตามลําด
ดับรายการที
ทีห
่ าได ้มาแส
สดงต่อไป
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
302
การหา
าเลขตําแหน่
แ งรายการข้อมูล
ลทีเ่ ป็น Unique
U Ittem
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
303
Step2 : นํ าค่าจาก
ก Step1 ไปเทียบกับเล ขลําดับ Num จะพบว่าตําแหน่งราย
ยการทีต
่ รงก
กัน หรือ
แสดงค่าาเท่ากับ True คือตําแห
หน่งทีเ่ ป็ น U
Unique Item
m
Step3 : เปลีย
่ นค่า True จาก
ก Step2 ให เป็
้เ นเลขทีร่ ายการด
า ้วยสู
สตร
IF(MAT
TCH(ID&"",ID&"",0) = Num, Nu
um)
Step4 : เรียงเลขต
ตําแหน่งราย
ยการทีไ่ ด ้จาาก Step3 ให
ห ้เรียงจากน
น ้อยไปมากด
้ ด ้วยสูตร Sm
mall
เมือ
่ ไดตั้ตัวเลขตําแห
หน่งรายการท ้ใ สู้ ตร Inde
ทีเ่ ป็ น Unique แล ้วใหใช ื่อรหัส ID ต่อไป
ex แสดงชอ อ
นอกจาก
กสูตรข ้างตนแล
้น ้ว ยังมีสู
สต ื่
ู รลัดหาชอ
อรายการที
เ่ ป็ น Unique คํ้ าสงั่ Data >
e หรือจะใชค
Advancced แบบ Unique reco
ords only
เซลล์ D
D3 สร ้างสูตร =B3 เพือ
่ นํ ารหัสรายก
การแรกยกม
มาเป็ น Uniq
que Item ไวว ้ก่อน จากนั
นัน้ ใน
เซลล์ D
D4 ให ้สร ้างส
สูตร Array {=INDEX(I
{ ID,MATCH(0,COUNTIF($D$3:D
D3,ID),0))} แล ้ว
copy สูตรไปต่อลงไปในเซลล์ถ
์ ด
ั ไปด ้านล
ล่าง โปรดดูรายละเอี
ร ยดของสูตรนีไ
้ ด ้จาก
http://w
www.get-d
digital-help
p.com/2009
9/03/30/ho
ow-to-extra
act-a-uniquue-list-and
d-the-
duplica
ates-in-excel-from-on
ne-column//
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
304
การคํานวณยอดรวมเพือ
่ จ ัดทํารายงาน
การจัดเก็บข ้อมูลไว ้ในโครงสร ้างฐานข ้อมูลทีถ ู ต ้อง เป็ นองค์ประกอบสําคัญชว่ ยทําให ้เกิด
่ ก
่ ้องการ แต่ผู ้ใช ้ Excel แบบมักง่ายอาจหาทางทีง่ า่ ย
ความสะดวกและง่ายในการหาคําตอบทีต
้ โดยปรับแต่งโครงสร ้างฐานข ้อมูลให ้กลายเป็ นหน ้ารายงาน ทําให ้ไม่สามารถใช ้
กว่านัน
ฐานข ้อมูลได ้เต็มทีอ
่ ก
ี ต่อไป ยิง่ กว่านัน
้ หากรายงานทีต
่ ้องจัดพิมพ์มรี ้อยหน ้า ก็มก
ั ออกแบบ
ตารางรายงานเลียนแบบหน ้ารายงานทัง้ ร ้อยหน ้า ทําให ้แฟ้ มมีขนาดใหญ่ขน
ึ้ อย่างมากเนือ
่ งจาก
ต ้องเตรียมพืน
้ ทีใ่ นชท ี หรือต่างแฟ้ ม รอไว ้สําหรับแสดงข ้อมูลทุกหน ้า
ี เดียวกัน ต่างชท
Copyright of www.ExcelExpertTraining.com
305
ทางออ
อกทีด
่ ก ้ ต
ี ว่าการใชสู
ส ู รบวกห
หรือสูตร Sum
S
ก่อนจะอ
อธิบายสูตร SubTotal หลายคนอา
ห ั ว่าทํ
จจะสงสย ม่อธิบายวิธใีใชสู้ ตร Sum
า าไมจึงไม m ไว ้
ก่อน ทังงนี
้ ไ ้ ม่ใชเ่ พรราะสูตร Sum
m เป็ นสูตรง่งายทีท
่ ก
ุ คนค
ควรรู ้จักกันดีอยูแ
่ ล ้วหรอ
อก แต่เนือ
่ งจาก
ง
มาะสําหรับใช
Sum เป็ป็ นสูตรทีเ่ หม ้
ใ หายอด
กตารางซงึ่ มีโครงสร ้างแ
รวมจาก แน่นอน
ถาวร แล
ละในอนาคต
ตต ้องไม่มก
ี าร
เปลีย
่ นแ
แปลงโครงส
สร ้างอีกต่อไป
ไ
ในภาพน
นี้ เซลล์ B12 หายอดรว
วมของ
เซลล์ B
B2:B11 ด ้วย
ยสูตร =SUM
M(B2:B11)
ได ้คําตอ
อบยอดรวมเท่ากับ 55
หากต่อมามีการปรับโครงสร
บ ้างตาราง โดย
กําหนดให ้หายอดรรวมของเซลล์ B2:B6 เพิ
พิม่ และใหแทรก
้แ row ใหม่
ใ ระหว่าง row 6 และะ row 7
แล ้วสรางสู
้า ตร =SU
UM(B2:B6) ลงไปในเซ ากับ 15 แต่จจะสง่ ผลใหสู้สูตร
ซลล์ B7 ไดยอดรวมเท่
้ย
Sum เดิ
ดิมทีห
่ ายอดรวมทัง้ หมด ยอดรวมใหม่เท่ากับ 77 ซงึ่ เป็ นคําตอบทีผ
ดเท่ากับ 55 กลายเป็ นย ่ ด
ิ
เนือ
่ งจาากนํ ายอดรวมของ Sum
m ในเซลล์ B
B7 ไปรวมเข
ข ้าไปอี
้ ก
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
306
บวกกันท ่ างออกทีด
ทีละเซลล์ไม่ใชท ่ น
ี ักหาก
กมีเซลล์ทต
ี่ ้องการนํ ามาบวกกันนับ
บพันนับหมืนเซลล์
น่
วิธท
ี ด ี ว่าการใชสู้ ตรบวกหรื
ี่ ก ต อสูตร Sum ก็ คือ การใชสู้ ตร SubTottal
การใช
ชส้ ต
ู ร SubTotal ร่ าสง่ ั Filter และ Cu
รวมก ับคํา ustom Viiews
หากแปลคําว่า Sub
bTotal กันตรงๆอาจเข าใจว่
้า าสูตร SubTotal
S นีทํ
ท
้ าหน ้าทีห
่ าายอดรวม To
otal
ยการแต่ละก
ของราย กลุม
่ ที่ Sub เอาไว
เ ้ ซงึ่ ก็แ
แปลงได ้ไม่ผิดนัก แต่สตรนี
สู ม ้ ไิ ด ้หาาคําตอบใหเฉพาะ
้เ
ยอดรวม
มเท่านัน
้ หาากยังสามารถ
ถดัดแปลงให
ห ้คํานวณหาาค่าเฉลีย
่ หรืรือนับได ้อีกด ้วย โดยเลือก
กําหนดให ้สูตร Sub
bTotal คํานวณหายอดต
ตัวเลขได ้ถึง 11 แบบตา
ามโครงสร างสู
้า ตรต่อไป
ปนี้
=SubT
Total( ตัวเลข
ขประเภทกา
ารคํานวณ, พ
พืน
้ ทีเ่ ซลล์ )
ตัวเลขป
ประเภทการค
คํานวณ กําหนดตั
ห วเลขต 1 – 111 แต่เลขทีใ่ ช กั้ นทัว่ ไปได
ตัง้ แต่เลข 101 ด ้แก่
• 101 กําหนด
ดให ้ SubTo
otal ทําหน าที
้า แ่ บบสูตร Average
• 102 กําหนด
ดให ้ SubTo
otal ทําหน าที
้า แ่ บบสูตร Count
• 103 กําหนด
ดให ้ SubTo
otal ทําหน าที
้า แ่ บบสูตร CountA
• 109 กําหนด
ดให ้ SubTo
otal ทําหน าที
้า แ่ บบสูตร Sum
SubTottal มีความส
สามารถพิเศษ
ษเหนือกว่าส
สูตร Sum กล่
ก าวคือ SubTotal เป็ น
นสูตรทีจ
่ ะไม
ม่นําค่า
จากเซล
ลล์ทม
ี่ ส
ี ต
ู ร SubTotal
S มาคํานวณซํ้าาอีก
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
307
(Excel รุน
่ เก่ากว่า Excel
E 2003
3 จะรับตัวเล ชร่้ วมกับ
ลขประเภทการคํานวณตังั ้ แต่เลข 1 - 11 และใช
้ แต่ถ ้าใช ้ Ex
การ Filtter เท่านัน นะนํ าให ้ใชตั้ วเลข 101 – 111 แทน
xcel 2003 เเป็ นต ้นมาแน น จะ
ถใชร่้ วมกับ Filter
สามารถ F หรือจะซ
จ อ ่ น row//column เอ
องได ้อีกด ้วย
ย)
หลังจาก
กทีก
่ รองหรือจั
อ ดโครงสรร ้างตารางเพื
พือ่ แสดงผลให ้เห็นบนจอตามต ้องก
การได ้แล ้ว ควรใช
ค ้
คําสงั่ V
View > Cusstom Viewss > Add เพื ื่ ใหกั้กับการแสดง
พื่อตัง้ ชอ งผลตามทีจ
่ ั ดไว ้
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
308
จากนัน
้ เเมือ ด ให ้สงั่ View
่ ต ้องการรแสดงโครงสร ้างตาราง ตามแบบใด w > Custo m Views แล
แ ้วคลิก
ื่
เลือกชอ
อแบบที
ต ่ งั ้ ไว ่ ง Views แล ้วกด
ไ ้ในชอ ดปุ่ ม Show จะได ้โครงส
สร ้างตารางต
ตามแบบทีตั
ต ื่ ไว ้
่ ง้ ชอ
พร ้อมกับ
ั สูตร SubT
Total แสดง
งตัวเลขคําต อบเฉพาะเซ
ซลล์ทย
ี่ งั มองเห็นให ้พร ้ ้อมกันไป
(นอกจาากนัน om Views ยังชว่ ยจํากาารกําหนด Print
้ Custo P บให ้อีกด ้วย)
Setting แต่ละแบบ
การใช
ชค้ า
ํ สง่ ั Data
D > Su
ubtotal
เริม
่ จากจัดเรียงข ้อม
มูลเพือ
่ จัดกล
ลุม
่ ข ้อมูลทีต
่ ้องการหาย
ยอดรวม แยกเฉพาะแต่ล ่ ก่อน โดยสงั่
ละกลุม
Data > Sort จากนั
นัน้ คลิกลงใน
นตารางข ้อมู ก็ได ้ แล ้วสงั่ Data > Suubtotal
มูลเซลล์ใดก็
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
309
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
310
เมือ
่ กดป
ปุ่ มเครือ
่ งหม
มายลบหรือปุ่ปมหมายเลข ั ้ ของ Outline ด ้านบนซาย
ขระดับชน ้ ย รายการข ้อมู
้ ลจะ
หุบ และะปุ่ ม Outline จะกลายเป็ นเครือ มายบวกแทน หากต ้องการ Copy เเฉพาะ Visib
่ งหม ble
Cells ให
ห ้เลือกพืน
้ ทีต
่ ารางแล ้วก
กด F5 > Sp
pecial > เลื
ลือก Visible ้ สงั่ Copy
e cells only จากนัน
ไป Passte จะได ้เฉพ
พาะพืน
้ ทีท
่ เี่ หลือจากกาารกดปุ่ ม Ou
utline เท่านัน
้
หมายเห
หตุ หากตองการสร
้อ ้าง Outline ขึน
้
นมาใช ้
เอง ใ ้เลือกเซลล์ทต
ให ี่ อ
่ เนือ ค้ าสงั่
่ งงกันแล ้วใชคํ
Data > Group
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
311
การใช
ชค้ า
ํ สง่ ั Data
D > Co
onsolida
ate
จากภาพ
พนีต
้ ารางขอ
อง Division 1 และ Divvision 4 มีโครงสร
ค ้างเหมือนกัน ถ ้าต
ต ้องการหาย
ยอดรวม
ตัวเลขเเรือ
ื่ งเดียวกันจากหลายต
น ตารางเข ้าด วยกั
้ว น ให ้เริมจากเปิ
ม่ ี
ดชทใหม่
ท ขนึ้ มาาก่อน แล ้วสงั่ Data
> Conssolidate จากนัน
้ คลิกเลื
ลือกพืน
้ ทีต ่ งR
่ า รางข ้อมูลชุดแรกให ้แสดงในชอ Reference แล ้วกด
ปุ่ ม Add
d แล ้วเลือกพ
พืน
้ ทีจ
่ ากตา
ารางอืน Add ซํ้าจนก
่ มา A กว่าจะครบทุ
ทุกตารางทีต
่ ้ ้องการ (โดยจะ
เลือกจาากตารางทีอยู
อ่ ต ี หรืรือต่างแฟ้ มก
่ า่ งชท กันก็ได ้) แล
ล ้วอย่าลืมกา ่ ง Use laabels in พรร ้อมกับ
าชอ
่ ง Crate linkss to source
กาชอ e data ให ้ค รบเพือ
่ จะได
ด ้สูตรลิงค์คาจากตาราง
า่ ต ้นทางมาใชด้ ้วย
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
312
วิธี
ธส ี ร้าง
งสูตรบ
บนกรา
าฟ
กราฟ E
Excel มีความ แทบทุกสงิ่ ซงึ่ ประกอบกั
มพิเศษอย่างหนึง่ คือ แ กันเป็ นรูปกราาฟ สามารถ
ถนํ าสูตร
link ค่าจากตารางไ
ไปทีก
่ ราฟ ไม่วา่ จะเป็ นตั ละสว่ วน เราสามารถสร ้าง
ตัว marker หรือคําอธิบายแต่
บ
สูตร link ในแต่ละจ ชวิ้ ธงี า่ ยๆ ต่อ
จุดได ้โดยใช อไปนี้
1. สร ้างกราฟใให ้เสร็จก่อนตามวิ
น ธปี กติ
ติ
2. คลิกครัง้ หนึ
นึง่ ลงไปทีตั
ต่ วั marker ห
หรือข ้อความ
มใดๆก็ได ้บน
นกราฟ แล วคลิ
้ว กลงไปอี
อีกทีท ี่
เดิม จะพบวว่า จุดนัน
้ กล
ลายเป็ นกล่อ
อง
3. ให ้คลิกลงบ
บน formula bar แล ้วพิมพ์เครือ
่ งหมายเท่ากับ =
4. คลิกกลับไป
ปยังเซลล์ขอมู
้อ ลต ้นตอใในตาราง แล
ล ้วกด enter
5. จะพบว่าตัว marker กล
ลายเป็ นสูตร link ข ้อมูลมาจากเซล
ล ลล์
ด ้วยวิธเเดี
ี ยวกันนี้ เรราสามารถสร ้างสูตร linkk นํ าข ้อมูลมาทั
ม ง้ ตาราง นํ ามาแสดงงไว ้บนกราฟ
ฟได ้เลย
ทัง้ ตาราาง เริม
่ ต ้นโด
ดย
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
313
วิธส
ี ร้า
างสูตรเพือดึ
่ งรูปภา
าพ
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
314
6. กําหนดเลข
ขทีร่ ป ่ ใสเ่ ลข 2 จะได ้รูปที
ู ลงไปใในเซลล์ A1 เชน ท่ 2 ถูกนํ าม
มาแสดงในรูปเซลล์
ป
ที่ copy มา
7. คลิกขวาทีรูร่ ป
ู เซลล์ แล ้วจั
้ ดรูปแบบ ี ละเสนกรอบตา
บของสแ ้ มต ้องการ
Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom
315
วิธจ
ี ัดการก ับความอ้วนอุย
้ อ้าย...ของแฟ้ม
้
แฟ้ ม Excel ทีเ่ ราเพิง่ เปิ ดใชงานขึ
น ้ ใหม่ในวันนี้ จะเริม
่ มีขนาดแฟ้ มใหญ่ขน
ึ้ เรือ
่ ยๆ แล ้วเมือ
่ วัน
ั ปี สองปี คอมพิวเตอร์ทใี่ ชอยู
เวลาผ่านไปสก ้ ก ้ ดสงั เกตโดยมีเหตุมาจาก
่ ็จะทํางานชาลงไปจนผิ
แฟ้ มใหญ่ขน ่ หละ ตัวผู ้ใช ้ Excel มักชอบวิง่ ไปบอกหัวหน ้า ขอให ้ซอ
ึ้ มากนีแ ื้ คอมพิวเตอร์เครือ
่ ง
่ จะได ้ทําให ้ Excel ทํางานเร็วเหมือนเดิม ซงึ่ ถ ้าผมเป็ นหัวหน ้าของคุณล่ะก ้อ ... แทนที่
ใหม่เพือ
จะเปลีย
่ นคอมพิวเตอร์เครือ
่ งใหม่ ขอเปลีย ่ จะดีกว่า !!! เพราะแม ้จะได ้ใช ้
่ นตัวพนักงานเป็ นคนอืน
่ งใหม่แล ้วก็ตาม ต่อมาพอแฟ้ มเริม
คอมพิวเตอร์เครือ ่ ใหญ่ขน ้
ึ้ อีก คอมพิวเตอร์ก็จะชาลงไปอี
ก
ื้ เครือ
แล ้วเราก็ต ้องซอ ่ งใหม่ทเี่ ร็วขึน
้ กว่าอีกหรืออย่างไรกัน
สงิ่ ทีม
่ ผ
ี ลต่อขนาดของแฟ้ ม
1. จํานวนเซลล์ทใี่ ช ้
2. จํานวนเซลล์ทถ
ี่ ก
ู อ ้าง
3. รูปแบบหรือ Format ทีใ่ ช ้
จํานวนเซลล์ทใี่ ช ้
Copyright of www.ExcelExpertTraining.com
316
จํานวนเซลล์ทถ
ี่ ก
ู อ้าง
ในกรณีทส
ี่ ร ้างสูตร link ข ้อมูลข ้ามแฟ้ ม จะพบว่าแฟ้ มปลายทางมีขนาดใหญ่ขน
ึ้ มาก หรือ
ี อีก ทัง้ ๆทีใ่ นแฟ้ มปลายทางมีเซลล์ทใี่ ชงานเพี
บางครัง้ จะมีขนาดใหญ่กว่าแฟ้ มต ้นทางเสย ้ ยง
เซลล์เดียวก็ตาม เนือ ่ ร ้างไว ้ในเซลล์ได ้นํ าข ้อมูลจากแฟ้ มต ้นทาง
่ งจากในสูตร link ข ้ามแฟ้ มทีส
มาเก็บไว ้ในแฟ้ มปลายทาง เรียกว่า Cache Data
ี ทัง้ ชท
การกําหนดรูปแบบให ้กับชท ี พร ้อมกันทีเดียวทุกเซลล์ จะทําให ้แฟ้ มมีขนาดเล็กกว่าการ
กําหนดรูปแบบเพียงบางสว่ นของตาราง เพราะ Excel จะใชวิ้ ธรี ับรู ้ทีเดียวว่าชท
ี นัน
้ ๆใชรู้ ปแบบใด
Copyright of www.ExcelExpertTraining.com
317
สงิ่ ทีผ
่ ลต่อความเร็ว
ในเรือ
่ งความเร็วนีไ
้ ม่ได ้เกีย
่ วข ้องกับความเร็วในการคํานวณของโปรแกรม Excel เท่านัน
้ แต่ยงั
สง่ ผลกระทบต่อความเร็วของมนุษย์ในการใช ้ Excel อีกด ้วย นับตัง้ แต่จะชาหรื
้ อเร็วในการสร ้าง
งาน สร ้างเสร็จแล ้วเมือ ี เวลาแก ้ไขชาหรื
่ นํ ามาแก ้ไขจะต ้องเสย ้ อเร็วเพียงใดกว่าจะแก ้ไขเสร็จ
้
บางคนใชเวลาสร ี เวลาแก ้ไขนาน
้างแฟ้ มนิดเดียวแต่พอย ้อนกลับมาแก ้ไขแฟ้ มเดิมกลับต ้องเสย
ขึน
้ มาก
ี่ หละต้นเหตุของความชา้ อุย
มนุษย์นแ ้ อ้าย
้ อ
แม ้ยุคนีเ้ ราใชเครื ่ งคอมพิวเตอร์แทนเครือ
่ งคิดเลขกันมากขึน
้ แต่แทนทีเ่ ครือ
่ งคอมพิวเตอร์จะ
ชว่ ยให ้ทํางานได ้เร็วขึน ้
้ หลายๆคนกลับทํางานเสร็จชาลง จนแทบอยากจะย ้อนไปกดปุ่ มบน
เครือ
่ งคิดเลขทีต ้ ้เร็วกว่า ทัง้ นีเ้ นือ
่ นใชได ่ นแปลง ชอบทําอะไรใช ้
่ งจากคนเราไม่ชอบการเปลีย
Copyright of www.ExcelExpertTraining.com
318
อะไรทีต ้
่ วั คุ ้นเคยมาก่อน พอจะใชคอมพิ
วเตอร์ก็คด ้
ิ ไม่ออกว่าจะใชโปรแกรมอะไร ฟั งเขามาว่า
ถ ้าเรือ ้
่ งของตัวเลขต ้องใชโปรแกรม ่ งเก็บข ้อมูลต ้องใช ้ Access แล ้วถ ้าข ้อมูลมี
Excel แต่ถ ้าเรือ
้
ทัง้ ตัวเลขและตัวอักษรล่ะ จะใชโปรแกรมอะไรดี บางคนอาจคิดง่ายๆว่า ถ ้าข ้อมูลมีเลขมากกว่า
ก็ให ้ใช ้ Excel หรือถ ้าข ้อมูลมีตวั อักษรมากกว่าตัวเลข ก็ให ้ใช ้ Access แล ้วกัน
้
ในประเด็นของการเลือกใชโปรแกรม ้ งต ้นสําหรับคนทีเ่ พิง่ จับ
Excel หรือ Access นี้ ในเบือ
คอมพิวเตอร์ ขอแนะนํ าให ้เลือกใช ้ Excel กับงานทีต
่ ้องการความยืดหยุน ่ ู ้ใชยั้ งไม่
่ หรืองานทีผ
มัน ่ ้องการเก็บไว ้อย่างไร เพราะ Excel มีคําสงั่
่ ใจว่าจะจัดโครงสร ้างหน ้าตาของตารางข ้อมูลทีต
ชว่ ยสําหรับการโยกย ้ายข ้อมูลเตรียมไว ้พร ้อม และเราอยากจะย ้ายตารางไปเก็บไว ้ทีช ี อืน
่ ท ่ แฟ้ ม
่ ก็จะเห็นผลทันทีบนหน ้าจอกับตา แถม Excel ยังชว่ ยแก ้ไขสูตรทีเ่ กีย
อืน ่ วข ้องกับตารางซงึ่ ถูก
ย ้ายให ้เสร็จ แล ้วต่อมาภายหลังพอมีข ้อมูลปริมาณมากขึน
้ เริม
่ มีมาตรฐานของโครงสร ้างตาราง
แน่นอนตายตัวแล ้ว จึงคิดถึง Access
Copyright of www.ExcelExpertTraining.com
319
สาเหตุยอดนิยมเหล่านีแ
้ หละทีท ้
่ ําให ้เราได ้ผลลัพธ์จาก Excel ชาลง แต่โดยทัว่ ไปผู ้ใช ้ Excel ที่
ไม่เคยนํ าผลงานไปเปรียบเทียบกับผู ้อืน
่ มักจะหลงภาคภูมใิ จในผลงานของตน และเข ้าใจผิดไป
ว่าตนได ้ใช ้ Excel ชว่ ยสร ้างผลงานทีเ่ ร็วขึน
้ ดังนัน
้ การให ้พืน ่ งแนวทางการใช ้ Excel
้ ฐานในเรือ
ทีด
่ แ
ี ละถูกต ้องจึงเป็ นเรือ ่ ําคัญมาก
่ งทีส
Copyright of www.ExcelExpertTraining.com
320
• แทนทีจ
่ ะสร ้างสูตรยากๆยาวๆทีม ี ว่ นการคํานวณทีซ
่ ส ่ ํ้ากันลงไปในตารางนับพันนับหมืน
่
เซลล์ ซงึ่ ทําให ้แฟ้ มใหญ่และคํานวณชาลง
้ ควรหาทางกระจายโครงสร ้างสูตรออกเป็ น
ั ้ ๆหลายๆเซลล์แต่ใชการคํ
สูตรสน ้ านวณครัง้ เดียว เพือ
่ ทําให ้แฟ้ มเล็กลงและคํานวณเร็ว
ขึน
้
• อย่าลืมว่า ตารางทีเ่ ป็ นสูตร จะมีขนาดแฟ้ มใหญ่กว่าตารางทีเ่ ป็ นตัวเลขหรือตัวอักษร
ดังนัน ่ ะใชสู้ ตรคํานวณค่าใดๆทีเ่ ป็ นค่าคงที่ เชน
้ แทนทีจ ่ เลขลําดับ แนะนํ าให ้ใชตารางที
้ ่
เป็ นตัวเลขผลจากการคํานวณแทนไปเลยดีกว่า
• ในกรณีทต
ี่ ้องสร ้างสูตรทีอ
่ ้างอิงกับตารางแนวนอนแนวตัง้ แนะนํ าให ้เลือกตารางตาม
แนวนอนก่อนตารางแนวตัง้ เพือ
่ สร ้างมาตรฐานวิธส
ี ร ้างสูตรของตนเอง และนอกจากนัน
้
่ Index หรือ Offset จะใชตํ้ าแหน่งอ ้างอิง
ยังสอดคล ้องกับโครงสร ้างของสูตร Excel เชน
ตามแนวนอนก่อนแนวตัง้ เสมอ
• หากสร ้างสูตรทีต ้ ํ้าแล ้วซํ้าอีก ควรตัง้ ชอ
่ ้องนํ ามาใชซ ื่ ตําแหน่งเซลล์ (Range name) ที่
ื่ ถึงทีไ่ ปทีม
สอ ่ าของสูตร แทนการอ ้างอิงกับตําแหน่งอ ้างอิงโดยตรง
• ควรแยกสูตรทีไ่ ม่จําเป็ นต ้องคํานวณพร ้อมกันออกเป็ นแฟ้ มแยกจากกัน (หรืออีกนัยหนึง่
ให ้เก็บเฉพาะสูตรทีต
่ ้องคํานวณพร ้อมกันเท่านัน
้ ไว ้ในแฟ้ มเดียวกัน) เพือ
่ ทําให ้เรา
สามารถเลือกเปิ ดแฟ้ มตามขอบเขตการคํานวณทีช ั เจน และทําให ้แฟ้ มมีขนาดเล็กลง
่ ด
• ให ้เลือกใช ้ VBA เฉพาะเมือ
่ ต ้องการใช ้ Excel ทีเ่ หนือกว่าปกติจากสูตรและเมนูคําสงั่ ที่
้ ้ต่อเนือ
ทําได ้ และรหัส VBA ทีใ่ ชต้ ้องสามารถใชได ่ งไปตลอดแม ้โครงสร ้างตารางจะ
เปลีย
่ นแปลงต่างไปจากเดิมก็ตาม
• ี ได ้อย่างก็ต ้องเสย
ทุกอย่างมีได ้ก็ต ้องมีเสย ี อย่าง ขอให ้พิจารณาเปรียบเทียบข ้อดี
ี ก่อนทีจ
ข ้อเสย ่ ะสร ้างงาน เพือ
่ ให ้เหมาะสมกับเงือ
่ นไขและสภาพแวดล ้อมของการ
ทํางาน
แนวทางการลดความอ้วน
Copyright of www.ExcelExpertTraining.com
321
แล ้วสูตรคํานวณทีส
่ ร ้างไว ้ มันต ้องถูกนํ ามาคํานวณใหม่พร ้อมกันทุกครัง้ ทีม
่ ข
ี ้อมูลเปลีย
่ นแปลง
ไปแค่เซลล์เดียวหรือไม่ สูตรทีค ิ ค ้าหรือค่าใชจ่้ ายซงึ่ มีคา่ คงที่ ซงึ่ นานๆจึงจะ
่ ํานวณหาต ้นทุนสน
มีคา่ เปลีย ั ที จําเป็ นหรือทีร่ วมตารางคํานวณค่าคงทีเ่ หล่านัน
่ นแปลงไปสก ้ ไว ้ในแฟ้ มซงึ่ มีสต
ู ร
คํานวณยอดกําไรจากการขาย
จากนัน
้ เมือ
่ ถึงคราวต ้องนํ าข ้อมูลนับพันนับหมืน
่ บรรทัด หรือตารางรายงานทีต
่ ้องพิมพ์นับร ้อยนับ
พันหน ้ามาแสดงให ้ดูนัน ้
้ เราใชสายตาดู
ตารางทัง้ หมดหรือกระดาษทุกแผ่นทีพ
่ ม
ิ พ์ออกมาพร ้อม
กันทุกหน ้าหรือไม่?
Copyright of www.ExcelExpertTraining.com
322
ผลจากสูตรทีม
่ ต
ี อ
่ ขนาดแฟ้มและความเร็วในการคํานวณ
้ ต
กรณีใชส ู ร SumIF เพือ
่ หายอดรวมตามเงือ
่ นไขเดียว
• ้
สูตร SumIF ใชเวลา ่
4 วินาที / ขนาดแฟ้ ม 2,984 KB เชน
=SumIF(IDRange,ID,NumRange)
• ้
สูตร SumIFArray ใชเวลา ่
38 วินาที / ขนาดแฟ้ ม 6,089 KB เชน
{=Sum(IF(IDRange=ID,NumRange))}
• ้
สูตร SumArray ใชเวลา ่
47 วินาที / ขนาดแฟ้ ม 5,547 KB เชน
{=Sum((IDRange=ID)*NumRange)}
• สูตร SumProduct แบบใสเ่ ครือ ้
่ งหมาย -- ใชเวลา 44 วินาที / ขนาดแฟ้ ม 2,987 KB
่ =SumProduct(--(IDRange=ID),NumRange)
เชน
• สูตร SumProduct แบบใสเ่ ครือ ้
่ งหมายคูณ ใชเวลา 50 วินาที / ขนาดแฟ้ ม 2,986 KB
่ =SumProduct((IDRange=ID)*NumRange)
เชน
้ ต
กรณีใชส ู ร SumIF เพือ
่ หายอดรวมตามเงือ
่ นไข 2 เงือ
่ นไขต่อเนือ
่ งก ัน
• ้ ้เพียงเงือ
สูตร SumIF ใชได ่ นไขเดียวจึงไม่ได ้นํ ามาทดสอบ
• ้
สูตร SumIFArray ใชเวลา ่
2 นาที 23 วินาที / ขนาดแฟ้ ม 9,716 KB เชน
{=Sum(IF(IDRange=ID,IF(KeyRange=Key,NumRange)))}
• ้
สูตร SumArray ใชเวลา ่
2 นาที 39 วินาที / ขนาดแฟ้ ม 8,633 KB เชน
{=Sum((IDRange=ID)*(KeyRange=Key)*NumRange)}
• สูตร SumProduct แบบใสเ่ ครือ ้
่ งหมาย -- ใชเวลา 2 นาที 30 วินาที / ขนาดแฟ้ ม
่ =SumProduct(--(IDRange=ID),--(KeyRange=Key),NumRange)
5,168 KB เชน
• สูตร SumProduct แบบใสเ่ ครือ ้
่ งหมายคูณ ใชเวลา 2 นาที 33 วินาที / ขนาดแฟ้ ม
่ =SumProduct((IDRange=ID)*(KeyRange=Key),NumRange)
5,165 KB เชน
Copyright of www.ExcelExpertTraining.com
323
้ ต
กรณีใชส ู ร VLookup VS Match
• ้
VLookup แบบ Approaching Match ใชเวลาไม่
ถงึ 1 วินาที / ขนาดแฟ้ ม 2,979 KB
้
แต่ถ ้าหาค่าไม่พบ (Not Available) ใชเวลา ่
3 วินาที เชน
=VLookup(ID,DataRange,2)
• ้
Match แบบ Approaching Match ใชเวลาไม่
ถงึ 1 วินาที / ขนาดแฟ้ ม 2,976 KB แต่
้
ถ ้าหาค่าไม่พบ (Not Available) จะแสดงตําแหน่งสุดท ้าย ใชเวลาไม่ ่
ถงึ 1 วินาที เชน
=Match(ID,IDRange)
• ้
VLookup แบบ Exact Match ขนาดแฟ้ ม 2,981 KB โดยจะใชเวลานานขึ
น ้ หากตําแหน่ง
้
ค่าทีใ่ ชหาห่
างจากบรรทัดแรกมากขึน ้
้ แต่ถ ้าหาค่าไม่พบ (Not Available) ใชเวลา 7
่ =VLookup(ID,DataRange,2,0)
วินาที เชน
• ้
Match แบบ Exact Match ขนาดแฟ้ ม 2,979 KB โดยจะใชเวลานานขึ
น ้ หากตําแหน่ง
้
ค่าทีใ่ ชหาห่
างจากบรรทัดแรกมากขึน ่ =Match(ID,IDRange,0)
้ เชน
นอกจากนัน ้
้ ยังได ้ทดสอบสูตรบวกลบคูณหาร ซงึ่ Excel คํานวณเร็วมากใชเวลาคํ านวณไม่ถงึ
ึ้ กับความยาวของสูตรทีใ่ ช ้ เชน
วินาที แต่พบว่าขนาดแฟ้ มจะเล็กหรือใหญ่ขน ่ =1+2+3+4+5 มี
ขนาดแฟ้ มใหญ่กว่า =A2+5 โดยที่ A2 มีสต ่ คํานวณสว่ นแรกแยกไว ้ก่อน
ู ร =1+2+3+4 เพือ
Copyright of www.ExcelExpertTraining.com
324
เมือ
่ ต้องเลือกระหว่างขนาดแฟ้มหรือความเร็วในการคํานวณ
ประเด็นเรือ
่ งความอ ้วนอุ ้ยอ ้ายของแฟ้ มตามทีก ้ ะไม่เป็ นสาระสําคัญ
่ ล่าวมาทัง้ หมดในบทความนีจ
หากคิดแต่เพียงว่า ถ ้าแฟ้ มใหญ่ขน ้
ึ้ หรือคอมพิวเตอร์ชาลง ื้ คอมพิวเตอร์เครือ
เราก็ซอ ่ งใหม่หรือ
ื้ RAM มาเพิม
ซอ ่ หน่วยความจําในเครือ
่ งให ้มากขึน ่ นี้
้ ก็แก ้ปั ญหาได ้แล ้ว แต่ถ ้าคิดกันง่ายๆเชน
ปั ญหาทีเ่ กิดจากการใช ้ Excel จะยิง่ มีความสลับซบ
ั ซอนมากขึ
้ น ่ ใช ้
้ โดยเฉพาะอย่างยิง่ เมือ
Excel 2007 ขึน ี หนึง่ มีกว่า 10,000 column และกว่า 1 ล ้าน row ซงึ่ ย่อมทําให ้
้ ไป โดยในชท
ผู ้ใช ้ Excel ทีข
่ าดความรู ้พืน
้ ฐาน และขาดวินัยในการสร ้างงาน สร ้างแฟ้ มงานทีจ
่ ะย ้อนกลับมาทํา
ร ้ายตัวเองในทีส
่ ด
ุ
Copyright of www.ExcelExpertTraining.com
325
การออกแบบโครงสร้างตารางคํานวณ
บทความนีจ ้
้ ะแนะนํ าคุณให ้หาทางใชตาราง ่ ใชคํ้ านวณหาผลลัพธ์ใน
Excel อย่างสร ้างสรรค์ เพือ
ปั ญหาต่างๆได ้สารพัด เพียงแค่นําตารางและสูตรสําเร็จรูปของ Excel มาใชร่้ วมกันอย่างมี
้ เป็ นตอน และอย่างมีเหตุผล จะชว่ ยให ้คุณได ้รับประโยชน์มากขึน
หลักการ อย่างเป็ นขัน ้ กว่าแต่
่
ก่อน เชน
3. สามารถตรวจสอบความถูกต ้องของการคํานวณในทุกขัน
้ ตอน
้
5. สามารถนํ าตารางไปใชในงานคํ านวณอืน ้ กการเดียวกันได ้ทันที หรือ
่ ทีใ่ ชหลั
หลังจากผ่านการปรับปรุงเพียงเล็กน ้อย
้
6. สามารถนํ าตารางไปใชงานร่วมกับเมนูคําสงั่ ของ Excel ได ้ทุกเมือ
่ แม ้แต่การนํ า
ข ้อมูลไปแสดงผลต่อในรูปกราฟ
ตารางคํานวณคืออะไร
เพือ
่ ทําให ้เข ้าใจตรงกัน จึงขอให ้คําจํากัดความในความหมายของตารางคํานวณก่อนว่า ตาราง
คํานวณในบทความนีม
้ ไิ ด ้หมายถึงพืน
้ ทีต
่ ารางว่างๆทีค
่ ณ
ุ จะเห็นทันทีบนจอเมือ
่ เปิ ดโปรแกรม
Excel ขึน ้
้ มาใชงาน แต่ตารางคํานวณในทีน
่ ม ี วามหมายถึงตารางซงึ่ คุณสร ้างขึน
ี้ ค ้ มาเองโดยมี
ข ้อมูลบันทึกไว ้แล ้ว อาจเป็ นข ้อมูลตัวเลข ตัวอักษร หรือสูตรใดๆก็ได ้ ทัง้ นีม
้ เี จตนาเพือ ้ น
่ ใชพื ้ ที่
Copyright of www.ExcelExpertTraining.com
326
เซลล์หรือตารางนัน
้ ในการคํานวณหาคําตอบทีค
่ ณ ่ ตารางคํานวณค่าแรง
ุ ต ้องการโดยเฉพาะ เชน
ทีต
่ ้องจ่ายให ้ลูกจ ้างทํางานในแต่ละกะ ตารางคํานวณยอดต ้นทุนขายแบบ Fist-in First-
ิ ค ้าทีต
out ตารางคํานวณหาจํานวนสน ่ ้องวางแผนสงั่ ผลิต (Material Requirements Planning)
หรือตารางคํานวณเพือ
่ วางแผนการลงทุน (Feasibility Study) เป็ นต ้น
ข้อควรพิจารณาก่อนเริม
่ สร้างตารางคํานวณ
สมมติวา่ คุณกําลังหาทางคํานวณค่าแรงทีต
่ ้องจ่ายให ้ลูกจ ้างทํางานในแต่ละกะ จะต ้องคิด
พิจารณาอะไรบ ้าง
Copyright of www.ExcelExpertTraining.com
327
ขนตอนการสร้
ั้ างตารางคํานวณ
Copyright of www.ExcelExpertTraining.com
328
ื้ อุปกรณ์กอ
การออกแบบคร่าวๆและเตรียมซอ ่ สร ้าง หิน ทราย ปูนซเิ มนต์ เตรียมไว ้ไม่ให ้ขาด
ไม่ให ้เกินกว่าความจําเป็ น ขัน
้ จากนีเ้ ป็ นหน ้าทีข
่ องสถาปนิกและวิศวกรทีจ
่ ะต ้องลงมือก่อสร ้าง
บ ้านของจริงให ้สวยหรู ดูด ี อยูส
่ บาย อากาศถ่ายเทสะดวก และสามารถตกแต่งต่อเติมให ้น่าอยู่
ไปชวั่ ลูกชวั่ หลาน
เพือ
่ ทําให ้เห็นโครงสร ้างตารางคํานวณแบบง่ายๆ ขอยกตัวอย่างการสร ้างตารางคํานวณสูตรคูณ
มาพิจารณากันตามรูปต่อไปนี้
Copyright of www.ExcelExpertTraining.com
329
นอกจากเซลล์สต
ู รจะรับค่ามาจากเซลล์ตวั แปรแล ้ว เซลล์สต
ู รยังอาจรับค่าต่อมาเซลล์สต
ู ร
้ ก่อนได ้อีก ซงึ่ จะเห็นได ้ชด
คํานวณในขัน ั จากตารางคํานวณงบการเงินหรือวางแผนการผลิตทีม
่ ี
ยอดคงเหลือปลายงวดสง่ ต่อไปตัง้ เป็ นยอดคงเหลือต ้นงวดของชว่ งเวลาถัดไป
ตารางคํานวณทีด
่ ต
ี ้องมีความยืดหยุน
่ สามารถคํานวณให ้ผลลัพธ์ได ้ตามต ้องการตลอดไปไม่วา่ จะ
มีการโยกย ้ายหรือแยกตารางตัวแปรไปวางไว ้ทีช ี อืน
่ ท ่ เหนือแฟ้ มอืน
่ ดังนัน
้ พอสร ้างตาราง
คํานวณเสร็จ ขอให ้ทดลอง cut ตารางไปวางไว ้ทีต
่ ําแหน่งอืน
่ หรือโยกย ้ายเซลล์ตวั แปรแยก
ออกจากกัน เพือ
่ พิสจ
ู น์วา่ ตารางคํานวณยังคงสามารถให ้ผลลัพธ์ถก
ู ต ้องตามเดิมหรือไม่
1. ตรงกับกะ (8:00-10:00)
2. อยูภ
่ ายในกะ (8:30-9:00)
Copyright of www.ExcelExpertTraining.com
330
้
สูตรคํานวณหาระยะเวลาทํางานทีใ่ ชในกะ ในเซลล์ H4 = MAX( 0, MIN(F4,D4) -
MAX(E4,C4) ) โดยแยกอธิบายแต่ละสว่ นในสูตรได ้ ดังนี้
• ้
MIN(F4,D4)-MAX(E4,C4) คํานวณหาระยะเวลาทํางานทีใ่ ชในกะ
• MAX(0,xxx) ปรับผลลัพธ์ทค
ี่ ํานวณได ้ให ้ไม่มท
ี างตํา่ กว่า 0
ัั ้
สูตร = MAX(0,MIN(F4,D4)-MAX(E4,C4)) นี้ เป็ นสูตรสนๆที ส ้
่ ามารถใชแทนสู
ตร IF เพราะ
หากจะใช ้ IF ในการคํานวณก็จะต ้องนํ า IF มาซอนกั
้ ั้
นถึง 7 ชน
Copyright of www.ExcelExpertTraining.com
331
่ นสูตรล ัดมาทีหล ัง
ตารางคํานวณต้องมาก่อน สว
ทุกวันนีค
้ ณ
ุ สามารถค ้นหาสูตรคํานวณเพือ
่ หาคําตอบในปั ญหาต่างๆได ้โดยตรงจากอินเตอร์เน็ ต
หรือยกคําถามไปหารือในฟอรัมถามตอบปั ญหา Excel ได ้ไม่ยาก หลายๆครัง้ ทีเดียวทีจ
่ ะได ้รับ
้
คําตอบเป็ นสูตรซอนกั
นยาวเหยียดเป็ นหน ้า จนอดทึง่ ในความสามารถของคนทีส
่ ร ้างสูตร
เหล่านัน
้ ไม่ได ้ว่าเขาคิดสูตรกันมาได ้อย่างไร
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filenam
e"))-FIND("[",CELL("filename"))-1)
สูตรนีม
้ ท
ี ม
ี่ าจากสูตร
=MID(ข ้อความทีม
่ ช ื่ แฟ้ ม, เลขตําแหน่งเครือ
ี อ ื่
่ งหมาย [, เลขจํานวนตัวอักษรของชอ
แฟ้ ม)
Copyright of www.ExcelExpertTraining.com
332
Copyright of www.ExcelExpertTraining.com
333
การออกแบบโครงสร้างตารางคํานวณร่วมก ับสูตรล ัด
ตัวอย่างนีข
้ อสมมติวา่ ในกําหนดเวลาทํางานแต่ละวัน ตัง้ แต่ 6:00-24:00 น.นัน
้ ถูกแบ่งออกเป็ น
่ จากชว่ งเวลา 6:00, 8:00, 10:00, 12:00, 13:00, 17:00, 19:00, และ
8 กะ แต่ละกะเริม
22:00 โดยกําหนดค่าแรงในชว่ งกะทีเ่ ริม
่ 8:00, 10:00, 13:00, และ 17:00 ให ้ใชอั้ ตราค่าแรง
ปกติ สว่ นกะอืน
่ ๆมีอต
ั ราค่าแรง OT 1.5 เท่าของอัตราปกติ
ิ ใจว่า จะยังไม่นําประเด็นเรือ
แรกสุดผมตัดสน ้
่ งค่าแรงมาใชในการคํ านวณ โดยต ้องการคํานวณ
้
ให ้ได ้ระยะเวลาทีใ่ ชในแต่
ละกะให ้ได ้ก่อน เพือ ่ ว่าจะสามารถใชตั้ วเลขระยะเวลาไปใชในงาน
่ เผือ ้
วางแผนอืน
่ ทีอ
่ าจเกีย ่ หากต ้องการวัดประสท
่ วข ้องได ้อีก เชน ิ ธิภาพในการทํางาน ก็อาจนํ า
้
ระยะเวลาทีใ่ ชในแต่
ละกะไปคูณกับอัตรากําลังผลิตมาตรฐาน แล ้วนํ ามาเปรียบเทียบกับผลงานที่
ผลิตได ้จริงในแต่ละกะว่าดีกว่าหรือตํา่ กว่ามาตรฐานอย่างไร
ในการออกแบบตารางคํานวณให ้เลือกวางแนวตารางทีอ
่ าจจะมีรายการเพิม
่ ให ้เพิม
่ ได ้ใน
แนวนอน จะสะดวกกว่าการวางตารางทีเ่ พิม
่ ไว ้ตามแนวตัง้ ดังนัน
้ จึงกําหนดให ้แบ่งหัวตารางที่
ื่ ว่าสว่ นนีค
เป็ นกะต่างๆไว ้ตัง้ แต่เซลล์ E5:L5 เพราะเชอ ้ งไม่มก
ี ารปรับเพิม
่ จากเดิมมากนัก แล ้ว
้
กําหนดให ้ใชตารางด ้ ดเรียงลําดับงานแต่ละงานไปเรือ
้านซายสุ ่ ยๆ จากเซลล์ B6:D10
Copyright of www.ExcelExpertTraining.com
334
ตัวเลขเวลาเริม
่ กะทีบ
่ น
ั ทึกไว ้ในเซลล์ E5:L5 นัน
้ ยังถูกนํ าไปกระจายแยกเป็ นเวลาเริม
่ กะ
ิ้ สุดของกะ (To) ไว ้ทีเ่ ซลล์ E2:L3 เพือ
(From) และเวลาสน ั เจนขึน
่ แสดงให ้เห็นชด ้ ว่าแต่ละกะมี
เวลาเริม ิ้ สุดอย่างไร และยังเผือ
่ ต ้นและสน ่ ไว ้ใชกั้ บสูตรคํานวณหาระยะเวลาทีใ่ ชในกะอี
้ กด ้วย จะ
ได ้ทําให ้สูตรมีการใชตํ้ าแหน่งอ ้างอิงในแนวเดียวกันไปตลอด ชว่ ยให ้สร ้างและแกะทีไ่ ปทีม
่ าได ้
ง่ายขึน
้
สว่ นด ้านของรายละเอียดการทํางานนัน
้ ในชว่ งแรกนีใ้ ชเลขที
้ ง่ านเรียงไปเรือ
่ ยๆไว ้ก่อนในเซลล์
B6:B10 ซงึ่ ในอนาคตอาจเปลีย ื่ คน หรือเลขเครือ
่ นจากเลขทีง่ าน ไปเป็ นชอ ่ งจักรแทนก็ได ้ ทัง้ นี้
เพือ ้
่ ใชแสดงชอื่ รายการเท่านัน
้ ว่าเป็ นการทํางานของใคร และสามารถพิมพ์รายการต่อไปได ้อีก
นับหมืน
่ รายการตามแนวนอน
กําหนดให ้บันทึกเวลาเริม
่ งาน (Start) และออกจากงาน (Stop) คูข
่ นานกับเลขที่ Job ไว ้ใน
เซลล์ตงั ้ แต่ C6:C10 และ D6:D10 ตามลําดับ
ตารางตัง้ แต่เซลล์ E6:L10 ใชสู้ ตร =MAX(0,MIN( E$3, $D6 ) - MAX( E$2, $C6 )) เพือ
่
คํานวณหาระยะเวลาทีท
่ ํางานในแต่ละกะ โดยสร ้างสูตรนีล
้ งไปในเซลล์ E6 เซลล์เดียวแล ้ว
่ ใชคํ้ านวณทุกเซลล์ตงั ้ แต่ E6:L10
copy ไป paste เพือ
วิเคราะห์ล ักษณะโครงสร้างตารางคํานวณทีใ่ ช ้
1. พืน
้ ทีต ่ ารางทีใ่ ชรั้ บตัวแปร เชน
่ B6:B10, C6:C10, D6:D10, และ E5:L5 ถูกวาง
ไว ้เป็ นแนวคูข
่ นานกับแนวตารางสูตรคํานวณ E6:L10
Copyright of www.ExcelExpertTraining.com
335
หมายเหตุ :
้
1. การไล่ลําดับงานในตัวอย่างนีเ้ ป็ นการไล่จากบนมาล่างหรือจากซายไปขวา ซงึ่ ใน
แง่การวางแผนกําหนดการณ์แล ้ว เรียกว่า แบบ Push เพือ ่ หากําหนดเวลาทีง่ าน
เสร็จ
้
4. ผู ้สนใจตารางคํานวณหาระยะเวลาทีใ่ ชในกะ สามารถเรียนรู ้ได ้จากการอบรม
หลักสูตรประยุกต์ใช ้ Excel เพือ
่ วางแผนความต ้องการวัสดุ(MRP)และจัดตาราง
การผลิต หรือหลักสูตรฉลาดใชสารพั ้ ดสูตร Excel อย่างมืออาชพ ี
หรือ download ตัวอย่างได ้ฟรีจาก
http://www.excelexperttraining.com/extreme/files/timeplan/timeconsu
me.xls
Copyright of www.ExcelExpertTraining.com
336
การออกแบบโครงสร้างตารางคํานวณ ภาค 2
ตารางคํานวณในภาคแรกเกิดจากการใชสู้ ตรทีม
่ โี ครงสร ้างเดียวกันซํ้าในทุกเซลล์ของตาราง
คํานวณ โดยกําหนดให ้หาทางสร ้างสูตรขึน ้
้ เพียงสูตรเดียวในเซลล์แรกตรงหัวมุมซายบนสุ
ดของ
้ ง้ ตาราง และจากการทีใ่ ชสู้ ตรทีม
ตาราง แล ้วจัดการ Copy สูตรไปใชทั ่ โี ครงสร ้างเดียวกันไป
ตลอดนีย
้ อ
่ มแสดงว่าเป็ นสูตรทีค
่ ํานวณหาคําตอบในเรือ
่ งเดียวกัน จากนัน ้
้ เราจึงใชโครงสร ้างของ
ตารางเป็ นตัวชว่ ยในการเลือกใชคํ้ าตอบจากตําแหน่งของเซลล์ทเี่ กีย
่ วข ้องกับคําตอบ ซงึ่ ตาราง
คํานวณแบบแรกนีไ
้ ม่เหมาะกับการคํานวณทีม
่ ค ั ซอนมากนั
ี วามสลับซบ ้ ก
ความหมายของ Module
Copyright of www.ExcelExpertTraining.com
337
จุดประสงค์ของการสร้างตารางคํานวณแบบ Module
1. เพือ
่ ลดความซบ ั ซอนของสู
้ ตรคํานวณ จากเดิมทีต ่ ้องสร ้างสูตรยากๆยาวๆลงไปในเซลล์
เพียงเซลล์เดียว เปลีย ่ นไปเป็ นการกระจายสูตรแยกให ้ใชเซลล์ ้ แต่ละเซลล์มสี ต
ู รคํานวณ
ทีละขัน ้ สง่ ผลการคํานวณต่อเนือ ่ งกันไป ทําให ้สูตรสน ั ้ ลง และทําให ้คุณเข ้าใจลําดับการ
คํานวณได ้ง่ายขึน ้
2. เพือ่ ทําให ้คุณสามารถใช ้ Excel กับการคํานวณงานทีม ่ ห
ี ลายขัน ้ ตอนหรือเกีย
่ วข ้องกับ
การทํางานทีม ่ ล
ี กั ษณะต่อเนือ
่ งกัน
3. เพือ ่ ชว่ ยให ้คุณสามารถลดขนาดแฟ้ มและจํานวนตารางทีม ่ อ ี ยู่
Copyright of www.ExcelExpertTraining.com
338
Copyright of www.ExcelExpertTraining.com
339
ี เดียว
ต ัวอย่างโครงสร้างตารางคํานวณแบบ Single Module ในชท
ตัวอย่างนีเ้ ป็ นการคํานวณงบกําไรขาดทุนจากตัวอย่างประกอบการอบรมหลักสูตรสุดยอดเคล็ด
ลับและลัดของ Excel ซงึ่ กําหนดให ้มีตารางทีต
่ ้องการคํานวณตามยอดขายและต ้นทุนทีต
่ า่ งกัน
ไปอยู่ 3 case แต่ละ case กําหนดให ้แปรเปลีย
่ นยอดขายและต ้นทุนต่างกันไป ดังนัน
้ แทนที่
จะต ้องสร ้างตารางคํานวณขึน
้ 3 ตารางเพือ ี
่ แยกคํานวณแต่ละ case ขอให ้ออกแบบตารางในชท
เดียวกันแบ่งเป็ น 3 สว่ น
สาเหตุทต
ี่ ้องจัดให ้บันทึกตัวแปรของแต่ละ case ไว ้ในแนวตัง้ เดียวกันนัน ่ ทําให ้สามารถใช ้
้ เพือ
สูตร Index ดึงข ้อมูลตัวแปรทีเ่ ก็บไว ้ในแนวตัง้ เดียวกันไปพร ้อมกัน โดยสร ้างสูตร Index
ต่อไปนีไ
้ ว ้ในเซลล์ F3:F6 แบบ Array (โดยเลือกเซลล์ F3:F6 แล ้วสร ้างสูตร จากนัน
้ กดปุ่ ม
Ctrl+Shift+Enter พร ้อมกันเพือ
่ บันทึกสูตรลงไปทีเดียวทุกเซลล์ จะพบเครือ
่ งหมายวงเล็บปี ก
กาปิ ดหัวท ้ายสูตรให ้เอง)
Copyright of www.ExcelExpertTraining.com
340
เมือ
่ ดึงตัวแปรตามตัวเลขของ CaseNum ทีต
่ ้องการมาแสดงในเซลล์ F3:F6 ได ้แล ้ว จากนัน
้ จึง
สร ้างสูตร link ตามปกติไปใชคํ้ านวณงบกําไรขาดทุนในสว่ นของตารางด ้านซายสุ
้ ดจากเซลล์
D3:D9
ในกรณีทต
ี่ ้องการเปรียบเทียบผลของการคํานวณทุก case พร ้อมกัน ให ้สร ้างตาราง Data
Table แบบ 1 ตัวแปร ทีใ่ ช ้ Row Input Cell เป็ นเซลล์ CaseNum ตามรูปต่อไปนี้
เซลล์ H11:K18 เป็ นพืน ่ ารางทีใ่ ชกั้ บคําสงั่ Data > Table แล ้วกําหนดให ้เซลล์ F2 หรือ
้ ทีต
CaseNum เป็ น Row Input Cell หรือเซลล์มรี่ ับค่าตัวแปรจากหัวตารางตามแนวนอน ซงึ่
้
กําหนดให ้ใชเซลล์ I11:K11 บันทึกหมายเลข 1, 2, 3 ซงึ่ หมายถึงเลขที่ case ไว ้ สว่ นหัวตาราง
้
ด ้านซายสุ
ดตัง้ แต่ H12:H18 เป็ นสูตรที่ link การคํานวณมาจากตารางคํานวณงบกําไรขาดทุน
จากเซลล์ D3:D9
เมือ
่ ตาราง Data Table นีท
้ ํางาน เราจะได ้ผลลัพธ์การคํานวณของแต่ละ case เสร็จใน
พริบตา แต่ถ ้าเข ้าใจขัน ้ จะพบว่า Excel ค่อยๆสง่ ตัวเลขตัว
้ ตอนการทํางานของ Excel ทีละขัน
Copyright of www.ExcelExpertTraining.com
341
Copyright of www.ExcelExpertTraining.com
342
ในกรณีทก ั ซอนมากขึ
ี่ ารคํานวณมีความสลับซบ ้ น ้ หรือมีจํานวนตัวแปรมากขึน
้ คุณสามารถแยก
ตารางสว่ นของการคํานวณผลลัพธ์ไปไว ้ในชท
ี อืน
่ ต่างหาก เพือ
่ ทําให ้สามารถจัดโครงสร ้าง
ตารางได ้ยืดหยุน ี เก็บข ้อมูลให ้แยกเป็ นสว่ นๆได ้ชด
่ และแยกชท ั เจนยิง่ ขึน
้
ในตัวอย่างต่อไปเป็ นการคํานวณทางสถิตข
ิ องการวัด (Calibration) ก่อนอืน
่ ขอเล่าทีไ่ ปทีม
่ า
ของตัวอย่างต่อไปนีก
้ อ
่ นว่า แต่เดิมทีนัน ี นับร ้อยชท
้ แฟ้ มมีขนาดใหญ่มากเพราะมีชท ี แต่ละชท
ี มี
สูตรคํานวณทางสถิตย
ิ ากๆยาวเหยียดหลายๆเซลล์
ทุกครัง้ ทีม
่ ก ่ สน
ี ารผลิต ทางโรงงานต ้องสุม ิ ค ้าทีผ
่ ลิตได ้สง่ มาตรวจสอบคุณภาพก่อน โดยวัดผล
่ ยูใ่ นชว่ งทีย
ออกมาเป็ นตัวเลขแล ้วนํ าไปคํานวณทางสถิตวิ า่ เป็ นตัวเลขทีอ ่ อมรับได ้หรือไม่ ทุก
ครัง้ ทีจ ี ใหม่แล ้ว copy ตารางคํานวณจากชท
่ ะคํานวณ ก็ต ้องเปิ ดชท ี เก่ามาแก ้ตัวเลขตามการวัด
ทีเ่ กิดขึน
้ ใหม่ ดังนัน ี ใหม่เกิดขึน
้ ถ ้าต ้องคํานวณกันทุกวัน วันละหลายๆครัง้ ย่อมทําให ้มีชท ้ ทุก
ครัง้
ี หลายๆชท
นอกจากแฟ้ มจะมีขนาดใหญ่เพราะมีชท ี แล ้ว สงิ่ ทีน
่ ่าห่วงคือทุกครัง้ ทีต
่ ้องสร ้างตาราง
ี ใหม่นัน
คํานวณในชท ้ อาจสร ้างตารางทีม
่ ส
ี ต
ู รคํานวณผิดเพีย
้ นไปจากสูตรทีส ี เดิม
่ ร ้างไว ้ในชท
ี ให ้ต่าง
หรือแม ้คํานวณได ้ถูกต ้อง แต่นานไปอาจพลัง้ เผลอย ้อนกลับไปแก ้ไขบางเซลล์ในบางชท
ไปจากทีเ่ คยเป็ น และเนือ ี หลายชท
่ งจากมีชท ี จึงเป็ นไปได ้ว่าเมือ
่ ทําการแก ้ไขไปแล ้ว อาจ
ี ชอ
หลงลืมจําไม่ได ้ว่าแก ้ไขชท ื่ ใด และแก ้ไขอะไรทีเ่ ซลล์ใดไปบ ้าง ยิง่ กว่านัน
้ เมือ
่ ใดทีต
่ ้องการ
แก ้ไขโครงสร ้างตารางคํานวณตามหน ้าตาใหม่ทผ ี แรงเสย
ี่ ู ้บริหารกําหนด ก็ต ้องเสย ี เวลา
ี เก่าทัง้ หมดทีอ
ย ้อนกลับไปแก ้ไขชท ี เข ้าไปแล ้วทีเดียว
่ าจมีถงึ นับร ้อยนับพันชท
Copyright of www.ExcelExpertTraining.com
343
จากเดิมซงึ่ ต ้องมีหลายชท
ี จึงกลายเป็ นแฟ้ มใหม่ซงึ่ มีชท
ี เพียง 2 ชท
ี ชท
ี หนึง่ เป็ นชท
ี ทีใ่ ชบั้ นทึก
ผลการวัดคุณภาพแต่ละครัง้ แล ้วใชอี้ กชท
ี หนึง่ เป็ นชท
ี แสดงการคํานวณทางสถิต ิ ( Download
ตัวอย่างได ้จาก www.ExcelExpertTraining.com/extreme/files/analysis/uncerdbf.xls)
ตารางตัง้ แต่เซลล์ E2:E21 ใชส้ ําหรับบันทึกข ้อมูลจากการวัดครัง้ แรกแล ้วใช ้ column ถัดไป
บันทึกข ้อมูลจากการวัดในครัง้ ถัดไปติดต่อกันไปตามแนว column โดยในตัวอย่างนีต ื่ พืน
้ งั ้ ชอ ้ ที่
ตารางสว่ นทีใ่ ชบั้ นทึกข ้อมูลจากการวัดนีว้ า่ DataRange
Copyright of www.ExcelExpertTraining.com
344
ี สําหร ับคํานวณทางสถิตข
โครงสร้างภายในชท ิ องการว ัด
ี นี้ เมือ
เซลล์ B4 ถือเป็ นหัวใจของชท ่ คุณพิมพ์เลขที่ CaseNo ลงไป จะทําให ้สูตร Index ใน
ี หนึง่ ตามภาพก่อนหน ้านี้ ดึงข ้อมูลสง่ ต่อมาใชแสดงหรื
column C ของอีกชท ้ อคํานวณในตาราง
้
คํานวณ Uncertainty Budget อีกทัง้ ยังใชเซลล์ B4 ร่วมกับคําสงั่ Data > Table เพือ
่ สรุป
ผลเปรียบเทียบการวัด หรือใชร่้ วมกับคําสงั่ พิมพ์อต
ั โนมัตท
ิ เี่ ขียนด ้วย VBA ตามนีไ
้ ด ้อีกด ้วย
Copyright of www.ExcelExpertTraining.com
345
การออกแบบโครงสร้างตารางคํานวณ ภาค 3
ี หรือแยกแฟ้ม
ล ักษณะของตารางคํานวณ Single Module แบบแยกชท
Copyright of www.ExcelExpertTraining.com
346
ตัวอย่างนีด
้ ด ้
ั แปลงมาจากตัวอย่างทีใ่ ชในการอบรมหลั
กสูตรสุดยอดเคล็ดลับและลัดของ Excel
จากเดิมซงึ่ รวมตัวแปรของงบการเงินทัง้ สาม case ไว ้ติดกันในตารางเดียวกันในชท
ี เดียวกัน
เปลีย ี ต่างหากของมันเอง
่ นมาเป็ นการแยกตัวแปรของแต่ละ case ไว ้ในชท
โปรดสงั เกตว่านอกเหนือจากตําแหน่งของตารางในชท
ี Case1, Case2, และ Case3 ต ้องใช ้
ี คือใชเซลล์
ตําแหน่งเซลล์ตรงกันทัง้ สามชท ้ F3:F6 เก็บตัวเลขของยอดขายและต ้นทุนแล ้ว การ
ื่ ชท
ตัง้ ชอ ี ให ้มีคํานํ าหน ้าว่า Case เหมือนกันแล ้วตามด ้วยตัวเลข 1, 2, หรือ 3 ถือเป็ นสว่ นสําคัญ
Copyright of www.ExcelExpertTraining.com
347
Copyright of www.ExcelExpertTraining.com
348
ต ้องการเลือกทุกชท ี ทีต
่ ด
ิ กัน ให ้เริม
่ จากอยูใ่ นชท ี แรกแล ้วกดปุ่ ม Shift พร ้อมกับคลิกเลือก
ชที สุดท ้าย ซงึ่ จะพบคําว่า [Group] แสดงไว ้ต่อท ้ายชอ ื่ แฟ้ มทีป
่ รากฏอยูด ่ ้านบนสุดของ
หน ้าจอ จากนัน ้ ทุกอย่างทีค ่ ณ
ุ สร ้างลงไปในชท ี จะถูกสร ้างพร ้อมกันลงไปในชท ี ทุกชท ี ที่
เลือกไว ้ใน [Group] เดียวกัน และเมือ ่ ต ้องการเลิกงานให ้คลิกเลือกชท ี อืน
่ ทีไ่ ม่ได ้เลือกไว ้
หรือชท ี อืน
่ ในกรณีทเี่ ดิมเลือกไว ้ทุกชท ี ซงึ่ จะพบว่าคําว่า [Group] หายไป
2. กรณีต ้องการสร ้างชท ี หลายชท ี ให ้มีหน ้าตาแบบเดียวกันโดยไม่ต ้องใชวิ้ ธ ี Copy จากชท ี
ต ้นแบบไปยังชท ี อืน่ ให ้เลือกชที แบบ [Group] โดยกดปุ่ ม Ctrl หรือ Shift แล ้วคลิกเลือก
ชที เชน
่ เดียวกับวิธใี นข ้อแรก จากนัน ้ ให ้คลิกเลือกพืน
้ ทีต ่ ้องการ แล ้วสงั่ Home >
่ ารางทีต
Fill > Across Worksheets หรือใน Excel 2003 ให ้สงั่ Edit > Fill > Across Worksheets
3. กรณีต ้องการคํานวณหายอดรวมของทุกชท ี ให ้เริม
่ จากพิมพ์สต
ู ร =sum( แล ้วคลิกเซลล์ใน
ชที แรกทีต
่ ้องการ จากนัน
้ กดปุ่ ม Shift แล ้วคลิกเลือกชท ี สุดท ้ายแล ้วกดปุ่ ม Enter จะได ้สูตร
=SUM(Case1:Case3!F3) โดยสูตรนีจ ้ ะหายอดรวมของเซลล์ F3 จากทุกชท ี ตัง้ แต่ชที ชอ
ื่
Case1 ถึง Case3 ให ้ทันที โดยไม่ต ้องเสย ี เวลาสร ้างสูตรบวกต่อกันทีละเซลล์ทล ี ตาม
ี ะชท
สูตร =Case1!F3+Case2!F3+Case3!F3 อีกต่อไป
4. กรณีต ้องการคํานวณหายอดรวมของทุกชท ี ”เว ้น” เฉพาะค่าจากชที ทีม
่ ส
ี ต
ู รยอดรวม ให ้
พิมพ์สตู ร =sum('*'!f3) โดยขอสมมติวา่ ในแฟ้ มมี 3 ชท ี ติดกันตามลําดับ คือชอื่ Sheet1,
Sheet2, และ Sheet3 ถ ้าสร ้างสูตรนีล
้ งไปใน Sheet1 จะได ้สูตร
=SUM(Sheet2:Sheet3!F3) แต่ถ ้าสร ้างสูตรลงไปใน Sheet2 จะได ้สูตร
=SUM(Sheet1!F3,Sheet3!F3) หรือถ ้าสร ้างสูตรลงไปใน Sheet3 จะได ้สูตร
=SUM(Sheet1:Sheet2!F3)
5. กรณีต ้องการจัดการแสดงโครงสร ้างแต่ละชท ี ให ้ดูตา่ งกันไปหลายๆแบบโดยอัตโนมัต ิ ให ้จัด
โครงสร ้างตารางโดยอาจสงั่ Hide Row/Column ซอ ่ นสงิ่ ทีไ่ ม่ต ้องการแสดง เพือ ่ ทําให ้เห็น
เฉพาะพืน ้ ทีต่ ารางเท่าทีต ่ ้องการก่อน จากนัน ้ ให ้สงั่ View > Custom Views > Adds แล ้ว
ตัง้ ชอ ื่ View ให ้กับโครงสร ้างตารางทีเ่ ห็นอยูบ ่ นจอในขณะนัน ้ จากนัน ้ ให ้จัดหน ้าตาตาราง
ใหม่ในชท ี เดิมซํ้าหรือในชท ี อืน
่ ตามต ้องการแล ้วตัง้ ชอ ื่ Custom View เพิม ่ เติมจนครบ แล ้ว
เมือ ่ ใดทีต ่ ้องการไปทีช ี ใดก็ไม่จําเป็ นต ้องใชวิ้ ธไี ล่คลิกไปทีละชท
่ ท ี อีก แต่ให ้สงั่ View >
Custom View แล ้วคลิกเลือกชอ ื่ View แทน ซงึ่ วิธน ี น ี้ อกเหนือจากชว่ ยเลือกตารางในชท ี ที่
ต ้องการให ้แล ้ว ในแต่ละ View ยังบันทึก Print Settings และ Filter Settings ตามให ้อีก
ด ้วย
6. กรณีต ้องการใชสู้ ตรเพือ
่ ค ้นหาชอ ื่ ชท
ี ทุกชท
ี มาแสดงในเซลล์ ให ้ใชสู้ ตร
=GetSheetName(เลขทีช ่ ที ) โดยสร ้างรหัส Function VBA ต่อไปนีไ
้ ว ้ในแฟ้ ม
Function GetSheetName(x)
GetSheetName = Sheets(x).Name
End Function
Copyright of www.ExcelExpertTraining.com
349
ขนตอนการปร
ั้ ี ให้เป็นแบบ
ับโครงสร้างตารางคํานวณ Single Module จากแบบแยกชท
แยกแฟ้ม
Copyright of www.ExcelExpertTraining.com
350
[SingleModuleLinkFilesCase1.xls]Case1!F5, และ =
[SingleModuleLinkFilesCase1.xls]Case1!F6 ตามลําดับให ้เอง
4. เมือ
่ ต ้องการดึงข ้อมูลจาก Case2 หรือ Case อืน
่ ให ้เปิ ดแฟ้ มปลายทางทีม ่ ส
ี ต
ู ร link ข ้าม
แฟ้ มแสดงอยูข ่ น ้
ึ้ มาใชงานเพี
ยงแฟ้ มเดียว (โดยไม่ต ้องเปิ ดแฟ้ มต ้นทาง) จากนัน ้ สงั่
Office > Prepare > Edit Links to Files หรือใน Excel 2003 สงั่ Edit > Links
Copyright of www.ExcelExpertTraining.com
351
เองทันที
้ อ
ข้อควรระว ังในการใชข ้ มูลที่ link ข้ามแฟ้ม
Copyright of www.ExcelExpertTraining.com
352
การออกแบบโครงสร้างตารางคํานวณ
แบบ Compound Module
จากประสบการณ์ทผ
ี่ มคลุกคลีอยูก
่ บ
ั Excel มานานกว่ายีส ิ ปี พบว่า คนทีเ่ ก่ง Excel มากๆมัก
่ บ
่ งการวางแผนการผลิต สว่ นคนทีเ่ ก่งในการวางแผนการผลิตก็มก
ขาดความรู ้เรือ ั จะไม่เก่ง Excel
จึงทําให ้ไม่มใี ครทีส ้
่ ามารถนํ าความรู ้ทัง้ Excel และการวางแผนการผลิตมาใชงานร่ ี ที
วมกันเสย
ทางสมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น) ุ่ ได ้กรุณาให ้ผมเข ้าอบรมหลักสูตรการวางแผนการ
Copyright of www.ExcelExpertTraining.com
353
Copyright of www.ExcelExpertTraining.com
354
้ เ่ ซลล์อน
แล ้ว Copy ไปใชที ื่ ได ้ทันที แต่ในโครงสร ้างตารางคํานวณแบบ Compound Module นี้
่ งหมาย $ กลับเป็ นสงิ่ ต ้องห ้าม ดังนัน
เครือ ้ แม ้ในระหว่างการสร ้าง Module แรกขึน ้
้ มาใชงาน ซงึ่
ั เครือ
เราจําเป็ นต ้องอาศย ่ งหมาย $ แต่เมือ
่ สร ้างงานเสร็จแล ้วก็ต ้องลบเฉพาะเครือ
่ งหมาย $ ที่
้ ทงิ้ ไป โดยใน Excel 2007 ใชคํ้ าสงั่ Home > Find & Select > Replace หรือใน
ใชในเซลล์
Excel 2003 ใชคํ้ าสงั่ Edit > Replace เพือ
่ สงั่ เปลีย
่ นเครือ
่ งหมาย $ ให ้หายไป
ตัวอย่างนีอ ี ชอ
้ ยูใ่ นชท ื่ SimpleCompound เป็ นตารางคํานวณหาระยะเวลาทีใ่ ชในการผลิ
้ ต
ิ ค ้า A, B, C, D (ProductName เซลล์ B4:B7) โดยสน
กําหนดให ้ผลิตสน ิ ค ้าแต่ละชนิดต ้องใช ้
่ ในการผลิตสน
เวลาในการผลิตต่างกันไป เชน ิ ค ้า A เมือ
่ ผ่านขัน
้ ตอนการผลิต 4 ขัน
้ ตอน (เซลล์
้
C4:F4) ต ้องใชเวลา 20 นาทีในการผลิตขัน
้ ตอนที่ 1 จากนัน ้
้ ต ้องใชเวลา 10 นาที ตามด ้วย 30
นาที และตามด ้วย 20 นาที ในขัน
้ ตอนที่ 2, 3, 4 ตามลําดับจึงจะแล ้วเสร็จ
ตารางด ้านขวาทีเ่ ซลล์ L4:L6 ของรูปข ้างต ้นเป็ นคําตอบทีไ่ ด ้จากการคํานวณ กล่าวคือ เมือ
่ เริม
่
ิ จะผลิตสน
ผลิตในเวลา 8 นาฬกา ิ ถือเป็ นระยะเวลาผลิต
ิ ค ้าทัง้ หมดเสร็จในเวลา 11 นาฬกา
ิ้ 3 ชวั่ โมง
ทัง้ สน
ปั ญหาทีต
่ ้องคํานึงถึงในการกําหนดขัน
้ ตอนการผลิตในตัวอย่างนีก
้ ็คอ
ื เราต ้องหาทางสร ้าง
ตารางคํานวณทีส
่ ามารถจัดลําดับการผลิตก่อนหลังแบบใดก็ได ้ อีกทัง้ ต ้องหาทางสร ้างสูตรให ้
Copyright of www.ExcelExpertTraining.com
355
กําหนดเวลาเริม
่ ผลิตในแต่ละขัน ิ ค ้าแต่ละตัว ต่อเนือ
้ ตอนของสน ่ งกับเวลาผลิตเสร็จในขัน
้ ตอน
ก่อนหน ้า หรืออีกนัยหนึง่ ห ้ามสงั่ ผลิตสน
ิ ค ้าชนิดถัดไป หากสน
ิ ค ้าชนิดแรกยังอยูใ่ นกระบวนการ
ผลิตขัน
้ ตอนนัน
้ ๆ ดังรูปต่อไปนี้
Copyright of www.ExcelExpertTraining.com
356
เซลล์สําคัญทีส
่ ด
ุ ทีท ้
่ ําให ้ Compound Module สามารถนํ าไปใชงานต่
อไปได ้ในตารางชุดอืน
่ คือ
ู ร =MAX(D10,C15) โดยขอให ้สงั เกตว่าตําแหน่งเซลล์ D10 ทีก
เซลล์ D14 มีสต ่ ําหนดไว ้ใน
สูตร MAX นีเ้ ป็ นตําแหน่งเซลล์ทอ ่ ให ้ใช ้
ี่ ยูเ่ หนือขอบเขตของตาราง Module (B12:Z15) เพือ
ตําแหน่งเซลล์ D10 ซงึ่ ไม่ได ้กําหนดเครือ
่ งหมาย $ ไว ้หรืออีกนัยหนึง่ คือเซลล์ทอ
ี่ ยูเ่ หนือพืน
้ ที่
้ ไปอีก 2 เซลล์ สําหรับนํ าเวลา Stop Time ของ Module ก่อนหน ้ามาเทียบ
ตาราง Module ขึน
กับเวลา Stop Time ของ Module ตัวเอง (D10 vs C15) ว่าให ้เลือกนํ าเวลาทีม
่ ากทีส ุ มาใช ้
่ ด
เป็ นกําหนดการเริม
่ กระบวนการผลิตในขัน
้ ตอนต่อไป
โปรดสงั เกตว่า แต่ละ Module ถูกวางห่างกันโดยเว ้นระยะ 1 row ระหว่างกันเสมอ ทัง้ นีเ้ พือ
่ ทํา
ให ้สูตร =MAX(D10,C15) จาก Module แรกเป็ นสูตรดึงค่าจาก Stop Time ซงึ่ เป็ น row
ล่างสุดของ Module ด ้านบนมาใชต่้ อไปนั่นเอง
Copyright of www.ExcelExpertTraining.com
357
สว่ นคําว่า LT ย่อมาจากคําว่า Lead Time หมายถึงชว่ งเวลานํ า ซงึ่ เป็ นระยะเวลาทีใ่ ชในการ
้
ผลิตหรือระยะเวลาทีต ิ ค ้า จากภาพแสดงว่าสน
่ ้องรอคอยในการได ้มาของสน ิ ค ้า A ต ้องใช ้
ระยะเวลาผลิต 1 วัน (หรือหน่วยของระยะเวลาอืน
่ ๆก็ได ้ ในตัวอย่างนีข ้
้ อใชระยะเวลาเป็ นหน่วย
้
วัน) วัสดุ B, C, D, E, F, G ต ้องใชระยะเวลาผลิ
ตหรือระยะเวลารอคอยเท่ากับ 2 วัน, 1 วัน, 1
ึ ษารายละเอียดเพิม
วัน, 2 วันและ 3 วัน ตามลําดับ (โปรดศก ื ระบบการวางแผน
่ เติมจากหนังสอ
และควบคุมการผลิต โดยรศ.พิภพ ลลิตาภรณ์ สํานักพิมพ์ของสมาคมสง่ เสริมเทคโนโลยี (ไทย-
ญีป
่ น))
ุ่
ในการออกแบบตารางคํานวณเพือ
่ วางแผนความต ้องการวัสดุ (Material Requirements
Planning - MRP) ต ้องหาทางสร ้างตารางคํานวณทีส
่ ามารถคํานวณตามโครงสร ้างผลิตภัณฑ์ท ี่
อาจเปลีย ่ เดิมสน
่ นแปลงไปจากเดิม เชน ิ ค ้า A มีวส
ั ดุ B และ C เป็ นโครงสร ้างในการผลิต หาก
ในภายหลังมีวส ่ เติม หรือเลิกใชวั้ สดุ B หรือใชวั้ สดุอน
ั ดุ G เพิม ื่ มาแทนที่ และหากตัวเลขจํานวน
Copyright of www.ExcelExpertTraining.com
358
ตัวอย่างต่อไปนีม ี ชอ
้ าจากชท ื่ DynamicCompound ในแฟ้ มชอ
ื่ CompoundModule.xls
วิธก ้
ี ารนํ า Module ไปใชงาน ให ้เริม
่ จาก Copy Module จากเซลล์ B6:P7 ไป Paste ต่อๆกันไป
ั พันธ์ระหว่าง Child->Parent ทีม
ให ้ครบตามจํานวนความสม ่ อ
ี ยู่ (B->A, C->A, D->B, E->B,
E->C, F->C, G->F, D->F) จากนัน
้ ให ้บันทึกค่าใหม่ลงไปในเซลล์รับตัวแปรใน Column B, C,
E, และ F ของแต่ละ Module ให ้ครบถ ้วนถูกต ้องตามทีก
่ ําหนดไว ้ในโครงสร ้างผลิตภัณฑ์ จะ
พบว่าพืน
้ ทีต
่ ารางใน Column H:P จะคํานวณจํานวนวัสดุทต
ี่ ้องการและกําหนดเวลาทีต
่ ้องเริม
่
สงั่ ผลิตเพือ ิ ค ้าหรือวัสดุเสร็จตามกําหนดให ้ทันที
่ ให ้ได ้สน
Copyright of www.ExcelExpertTraining.com
359
ี ชอ
ตัวอย่างจากชท ื่ DynamicCompound นีเ้ ป็ นการคํานวณอย่างง่ายเพือ
่ แสดงหัวใจของการ
ื่ มโยงตัวเลขการสงั่ ผลิต ณ กําหนดเวลาทีต
เชอ ่ ้องการของแต่ละ Module เข ้าด ้วยกัน แต่ในการ
ิ ค ้าต ้นงวดปลายงวดและตัวเลขอีกมากมายทีเ่ ป็ นเงือ
ผลิตจริงยังต ้องคํานึงถึงตัวเลขสน ่ นไข
่ วข ้องกับการผลิตแต่ละครัง้ จึงขอให ้ใช ้ Module ทีส
เกีย ี ชอ
่ ร ้างไว ้ในชท ื่ MRPModule แทน
Copyright of www.ExcelExpertTraining.com
360
จากนัน
้ เมือ ื ระบบการวางแผนและควบคุมการผลิต โดยรศ.
่ นํ าตัวอย่างการทํา MRP จากหนังสอ
พิภพ ลลิตาภรณ์ สํานักพิมพ์ของสมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น) ุ่ หน ้า 136 มาวางแผน
ความต ้องการวัสดุ จะเกิดเป็ น Compound Module ทีค
่ ํานวณร่วมกันตามตัวอย่างทีเ่ ปิ ดให ้
Download ได ้จาก www.ExcelExpertTraining.com/extreme/files/database/
CompoundModuleMRP(Ans).xls ซงึ่ เป็ นตัวอย่างทีใ่ ชประกอบการอบรมหลั
้ กสูตรการ
ประยุกต์ใช ้ Excel สําหรับวางแผนความต ้องการวัสดุและจัดตารางการผลิต ทีจ
่ ัดอบรมขึน
้ ณ
สมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น)
ุ่
Copyright of www.ExcelExpertTraining.com
361
่ ท้าย
บทสง
Copyright of www.ExcelExpertTraining.com
Copyright
ื่ ใดๆ เพือ
ผ่านสอ ้
่ ใชในการศ ึ ษาของตนเอง หรือเพือ
ก ่ นํ าไปแจกผู ้อืน
่ เป็ นวิทยาทานโดยไม่คด
ิ
้
มูลค่า และเป็ นการกระทําทีใ่ ชการลงทุ ้ กรุณาพิมพ์ได ้หรือทําสําเนาได ้
นลงแรงของตนเอง ผู ้นัน
ใช ้ ให ้แตกต่างไปจากข ้อกําหนดในลิขสท
ิ ธิข
์ องเว็บนีห
้ รือไม่ก็ได ้ หากมิได ้กําหนดเงือ
่ นไขใดๆ
ิ ธิข
ไว ้ ถือว่าให ้เป็ นไปตามข ้อกําหนดของลิขสท ์ องเว็บนีท
้ ก
ี่ ําหนดไว ้
ห ้ามผู ้อืน
่ ใดนํ าข ้อมูลบนเว็บ XLSiam.com นีไ
้ ปเผยแพร่เพือ
่ ประโยชน์ใดๆก็ตาม ทีเ่ กีย
่ วข ้องกับ
พอใจจากการให ้เพือ
่ เป็ นวิทยาทาน
หากทําเพือ
่ การจําหน่ายหรือเกีย
่ วข ้องกับการแสวงหาผลประโยชน์อน
ื่ ใด ไม่วา่ จะเป็ นการหา
ใดๆในการอบรมแทนทีจ ้
่ ะลงทุนจัดหาตํารามาเอง หรือใชการลงทุ ่ ซงึ่ ไม่ใช ่
นลงแรงของผู ้อืน
ิ ธิข
การลงทุนลงแรงของตนเอง ขอสงวนลิขสท ์ ้อมูลทัง้ หมดในเว็บนีต
้ ามกฎหมาย
20 เมษายน 2556