You are on page 1of 362


ฉลาดใชสารพั ดสูตร Excel

อย่างมืออาชพ

โดย

สมเกียรติ ฟุ้ งเกียรติ

www.ExcelExpertTraining.com

www.XLSiam.com

excel@XLsiam.com

โทร 02 718 9331 Fax 02 318 7021

ิ ธิต
สงวนลิขสท ์ ามกฎหมาย

17 เมษายน 2555

Copyright of www.ExcelExpertTraining.com 

สารบ ัญ

1. วิธป ้
ี รับ Excel ให ้พร ้อมต่อการใชงานอย่ ี
างมืออาชพ 6

2. การกําหนดตําแหน่งอ ้างอิง 9

3. วิธค
ี ้นหาสูตร 17

4. วิธแ
ี กะสูตร 21

5. วิธส ้
ี ร ้างสูตรซอนสู
ตร 23

6. วิธส ื่ ซอนช
ี ร ้างชอ ้ อื่ 25

7. เรือ
่ งทีไ่ ม่คอ
่ ยรู ้กันเกีย
่ วกับสูตร 26

8. การแบ่งขอบเขตพืน
้ ทีต
่ าราง 41

ี หรือข ้ามแฟ้ ม
9. การกําหนดตําแหน่งอ ้างอิงข ้ามชท 44

ื่ และใชช้ อ
10. หลักการตัง้ ชอ ื่ ใน Excel 54

11. การใชสู้ ตรปรับตําแหน่งอ ้างอิง 66

12. การกําหนดตําแหน่งอ ้างอิงแบบวงกลม 71

13. แป้ นพิมพ์ลด


ั ทีเ่ กีย
่ วข ้องกับตําแหน่งอ ้างอิง 78

14. หลักการแยกตัวแปร 79

15. วิธใี ช ้ Goal Seek 80

Copyright of www.ExcelExpertTraining.com 

16. วิธใี ช ้ Data Table 85

17. หลากหลายแนวทางการใชสู้ ตร IF 90

18. การใชสู้ ตร IF ในการตัดสน


ิ ใจ 95

19. หลบร ้อนหนีสต


ู ร IF ไปหาทางออกอืน
่ 104

ู ร IF ไปใชคํ้ าสงั่ Format


20. หนีสต 114

21. วิธใี ช ้ Data Validation 115

22. วิธใี ช ้ Conditional Formatting 116

23. สูตร Array 118

24. สูตร Array IF เพือ ้


่ ใชหายอดรวมแยกประเภท 130

้ ได ้ใน Excel
25. ของจริง ของปลอม ของใชไม่ 143

26. หลักการใชวั้ นทีแ


่ ละเวลา 147

27. หลักการกําหนด Format Cells > Number 151

28. วิธใี ช ้ Add-In 155

29. Function VBA 157

30. General Functions 202

31. Day and Time Formulas 224

Copyright of www.ExcelExpertTraining.com 

32. List & Database Formulas 246

33. Conditional Formatting & Data Validation Formulas 248

34. Array Formulas 253

35. การกําหนดขอบเขตตารางแบบยืดหยุน
่ 281

36. การจัดการค่าซํ้า 297

37. การคํานวณยอดรวมเพือ
่ จัดทํารายงาน 304

38. วิธส
ี ร ้างสูตรบนกราฟ 312

39. วิธจ
ี ัดการกับความอ ้วนอุ ้ยอ ้าย...ของแฟ้ ม 315

40. การออกแบบโครงสร ้างตารางคํานวณ 325

Copyright of www.ExcelExpertTraining.com 

คํานํา

ิ ปี ทีผ
ในระยะเวลาหลายสบ ่ า่ นมา แม ้ Excel ถูกพัฒนาให ้เป็ นโปรแกรมทีเ่ ป็ นประโยชน์มากขึน
้ มี
คําสงั่ และมีเครือ ้
่ งมือใหม่ๆเตรียมไว ้ให ้เลือกใชมากขึ
น ้ กว่าแต่กอ
่ นก็ตาม ทัง้ ๆที่ Excel จะเป็ น
Excel ได ้ก็เพราะการมีสต
ู รเพือ ้
่ ใชในการคํ านวณ แต่ตวั สูตรที่ Excel มีอยูก
่ ลับมีการเปลีย
่ นแปลง
น ้อยมาก มีสต
ู รใหม่ทจ ้
ี่ ําเป็ นต่อการใชงานเกิ
ดขึน ้ สว่ นทีเ่ ปลีย
้ เพียงเล็กน ้อยเท่านัน ่ นแปลงสูตร
ใน Excel 2010 ก็มงุ่ ปรับปรุงให ้มีความละเอียดในการคํานวณยิง่ ขึน


หลักสูตรฉลาดใชสารพั ี ก็ผา่ นร ้อนผ่านหนาวมาหลายปี เชน
ดสูตร Excel อย่างมืออาชพ ่ กัน
้ งุ่ ให ้ผู ้ใช ้ Excel รู ้จักคิด ฉลาดเลือกใชสู้ ตร Excel ให ้ถูกกับสถานการณ์ โดยเลือก
หลักสูตรนีม
เฉพาะสูตรทีม
่ ค ้
ี วามจําเป็ นต ้องนํ ามาใชงานขึ
น ้ มาอบรมเพือ ี และข ้อควรระวัง
่ ทราบข ้อดี ข ้อเสย
แนะนํ าวิธค
ี ด
ิ ออกแบบตารางให ้เหมาะสมกับการคํานวณ และหาทางกระตุ ้นให ้ผู ้เข ้าอบรมเรียนรู ้
วิธแ
ี ก ้ปั ญหาได ้ด ้วยตัวเอง

อย่างไรก็ตามเนือ
่ งจากระยะเวลาอบรมมีเพียง 3 วัน ไม่สามารถแนะนํ าเรือ
่ งราวและถ่ายทอด
ประสบการณ์การใชสู้ ตรได ้ครบถ ้วน จึงขอแนะนํ าให ้อ่านคูม
่ อ ้ งึ่ มีเนือ
ื เล่มนีซ ้ หาทีอ
่ าจไม่มโี อกาส
หยิบยกขึน
้ มาอบรมอยูอ
่ ก
ี มาก

คูม
่ อ
ื ประกอบการอบรมเล่มนีไ ้ หาสําคัญของหลายหลักสูตร ทัง้ หลักสูตรสุดยอด
้ ด ้รวบรวมเนือ
เคล็ดลับและลัดของ Excel หลักสูตรหันมาใช ้ Excel จัดการฐานข ้อมูลแทน Access กันดีกว่า
และหลักสูตรประยุกต์ใช ้ Excel เพือ
่ วางแผนความต ้องการวัสดุและจัดตารางการผลิต ตลอดจน
การใชสู้ ตรใน VBA อีกทัง้ ได ้นํ าตัวอย่างคําถามคําตอบและสูตรแบบแปลกๆจากเว็บหลายแห่ง
มารวมไว ้ จึงหวังว่าผู ้เข ้าอบรมจะได ้เปิ ดหูเปิ ดตาและได ้แนวทางนํ ากลับไปสร ้างงานของตน

ประเด็นสําคัญของการสร ้างสูตร คือ ต ้องรู ้จักคิดและสร ้างสูตรได ้ด ้วยตัวเอง มิใชล


่ อกสูตรของ
คนอืน ้ ้วแกะหรือแก ้ไขต่อให ้ดีขน
่ มาใชแล ึ้ กว่าเดิมไม่เป็ น

สมเกียรติ ฟุ้ งเกียรติ

17เมษายน 2555

Copyright of www.ExcelExpertTraining.com 

วิธป
ี ร ับ Excel ให้พร้อม
ต่อการใชง้ านอย่างมืออาชพ

1. ต้องการปร ับให้กดปุ่ม Enter เพือ



่ เี่ ซลล์เดิม สงั่
บ ันทึกค่าแล้วอยูท
File > Options > Advanced > ตัด
่ ง After pressing Enter,
กาชอ
Move selection

ทัง้ นีใ้ น Excel 2007 สง่ั Office >


Excel Options แทน File >
Options >

่ ง Move selection after Enter)


(Excel 2003 : Tools > Options > Edit > ตัดกาชอ

่ Edit แก้ไขบน Formula Bar แทนในเซลล์ สงั่ File >


2. ต้องการปร ับให้กดปุ่ม F2 เพือ
Options > Advanced > ตัดกา
่ ง Allow editing directly in
ชอ
cells

(Excel 2003 : Tools > Options


่ ง Edit directly
> Edit > ตัดกาชอ
in cell)

คําสงั่ นีย
้ งั มีผลทําให ้เมือ
่ ดับเบิลคลิกทีเ่ ซลล์สต
ู รแล ้ว Excel จะย ้ายตําแหน่งไปยังตําแหน่ง
เซลล์ต ้นทางทีอ
่ ้างอิงในสูตรนัน
้ และเมือ
่ กดปุ่ ม F5 > Enter จะย ้ายกลับมาทีเ่ ซลล์เดิมที่
เคยดับเบิลคลิก

Copyright of www.ExcelExpertTraining.com 

่ นระบบการคํานวณเป็น manual สงั่ File > Options > Formulas > กา


3. ต้องการเปลีย
่ ง Manual จากนัน
ชอ ่ สงั่ คํานวณทุกแฟ้ มหรือกด Shift+F9 เพือ
้ ต ้องกดปุ่ ม F9 เพือ ่ สงั่

คํานวณเฉพาะแฟ้ มทีเ่ ลือกอยูเ่ ท่านัน



่ ง Manual)
(Excel 2003 : Tools > Options > Calculation > กาชอ

หมายเหตุ ระบบการคํานวณจะเปลีย
่ นตามระบบของแฟ้ มแรกทีเ่ ปิ ดขึน
้ ก่อนเสมอ

4. ต้องการเปิ ดให้ใช ้ Macro และ Update Links ได้อ ัตโนม ัติทก


ุ แฟ้มในโฟลเดอร์ท ี่
กําหนดว่าปลอดภ ัย สงั่ File > Options > Trust Center > กดปุ่ ม Trust Center
่ ง
Settings... (Excel 2003 : Tools > Macro > Security > Security Level > กาชอ
Medium)

้ จากนัน
เลือกเมนู Trusted Locations จากเมนูด ้านซาย ้ กดปุ่ ม Add new location... เพือ

Copyright of www.ExcelExpertTraining.com 

ื่ โฟลเดอร์ (Trusted Folder) ตามต ้องการ


เลือกชอ

้ ําหรับ Excel 2010 เป็ นต ้นมายังมีเมนู Trusted Documents เพือ


นอกจากนีส ้
่ ใชควบคุ
มการ
เปิ ดแฟ้ มเพือ
่ ทําให ้แฟ้ มใดทีเ่ คยเปิ ดโดยให ้ Macro ทํางานหรือ Update Links มาก่อนก็จะ
เปิ ดแบบนัน
้ ให ้เองในคราวต่อไป

Copyright of www.ExcelExpertTraining.com 

การกําหนดตําแหน่งอ้างอิง

บทความนีม
้ จ ุ ประสงค์ให ้ผู ้ทีเ่ คยใช ้ Excel มาก่อนและมีพน
ี ด ื้ ฐานมาบ ้างจนพอทราบว่าตําแหน่ง
อ ้างอิง (Cell Reference) ในตาราง Excel คืออะไรและนํ าไปใชกั้ นอย่างไร จะได ้เปิ ดหูเปิ ดตา
เรียนรู ้เคล็ดลับทีค
่ นทัว่ ไปอาจมองข ้ามหรือไม่นก
ึ ฝั นว่าจะเป็ นไปได ้ แล ้วสามารถนํ าตําแหน่ง
อ ้างอิงไปใชกั้ บสูตรและคําสงั่ ได ้อย่างพลิกแพลงมากยิง่ ขึน
้ โดยเฉพาะการเลือกใสเ่ ครือ
่ งหมาย
$ ให ้กับตําแหน่งอ ้างอิงนัน
้ ไม่วา่ จะเป็ น $ ในเซลล์สต
ู ร, $ ใน Conditional Format, $ ใน
Data Validation, หรือ $ ในในเครือ ่ ๆของ Excel ก็ตาม ผมถือว่า $ เป็ นหัวใจของการใช ้
่ งมืออืน
Excel ทีเดียว

ตงหล
ั้ ักก ันก่อนว่าจะใช ้ Excel อย่างคอมพิวเตอร์

คุณลองนึกดูซวิ า่ มนุษย์เราได ้รับประโยชน์จากการใชเครื


้ อ ่ งคอมพิวเตอร์ตา่ งจากสมัยทีย
่ งั มีแต่
่ งคิดเลขให ้ใชกั้ นอย่างไรบ ้าง หลายคนน่าจะตอบว่า เครือ
เครือ ่ งคอมพิวเตอร์ต ้องชว่ ยให ้คําตอบ
่ งคิดเลขใชไ่ หม แล ้วความเร็วทีว่ า่ นีถ
ทีเ่ ร็วกว่าเครือ ้ ก ้
ู วัดมาจากเวลาทีใ่ ชไปของเครื
อ ่ ง
คอมพิวเตอร์หรือเวลาของคุณกันล่ะ

แน่นอนทีส
่ ด
ุ ว่าเครือ
่ งคอมพิวเตอร์ยอ
่ มทํางานเร็วกว่าเครือ
่ งคิดเลข และเครือ
่ งคอมพิวเตอร์รน
ุ่
ใหม่ยอ
่ มทํางานได ้เร็วกว่าเครือ ุ่ เก่า ยิง่ ใช ้ Excel ทีต
่ งคอมพิวเตอร์รน ิ ตัง้ บนเครือ
่ ด ่ งคอมพิวเตอร์
รุน ้ ซงึ่ ถ ้าใครหลงเข ้าใจว่าตัวเองใช ้ Excel
่ ล่าสุด ก็ยงิ่ ได ้คําตอบผลลัพธ์จากการคํานวณเร็วขึน
แบบคอมพิวเตอร์เป็ นอยูแ
่ ล ้วเพียงเพราะดูจากความเร็วของเครือ ้ ่ ก็เป็ น
่ งคอมพิวเตอร์ทใี่ ชอยู
ความเข ้าใจทีถ ู ต ้องเพียงบางสว่ น (และเป็ นสว่ นทีไ่ ม่สําคัญเท่าใดเสย
่ ก ี ด ้วย) เพราะถ ้าคุณใช ้
Excel อย่างคอมพิวเตอร์เป็ น ต่อให ้ยกเครือ
่ งคอมพิวเตอร์รน
ุ่ โบราณทีท ้ นเต่า ก็จะ
่ ํางานชาเป็
ี เวลาต่างกันมากนัก
พบว่าคุณไม่ได ้เสย

ลักษณะของการใช ้ Excel อย่างคอมพิวเตอร์มด


ี งั นี้

ี เวลาสร ้างงานนานหน่อย เนือ


1. คุณจะต ้องเสย ่ งจากต ้องหาทางคิดสร ้างงานให ้เหมาะสม
กับแต่ละสถานการณ์ ซงึ่ คุณควรตัง้ หลักไว ้ว่า แฟ้ มงานทีส
่ ร ้างขึน
้ มานัน
้ จะต ้องสามารถ
้ ํ้าแล ้วซํ้าอีกได ้โดยไม่ต ้องย ้อนกลับไปแก ้ไขใหม่อก
นํ ากลับมาใชซ ี แม ้แต่น ้อย

Copyright of www.ExcelExpertTraining.com 
10 


2. หากจําเป็ นต ้องแก ้ไข ต ้องสามารถแก ้ไขปรับปรุงแฟ้ มได ้ง่าย ใชเวลาไม่
มาก และไม่
สง่ ผลกระทบต่อการคํานวณเดิมทีถ
่ ก
ู ต ้องอยูแ
่ ล ้ว ทัง้ นีไ
้ ม่วา่ จะกําหนดให ้ผู ้ทีท
่ ําหน ้าที่
้ คือคุณซงึ่ เป็ นผู ้สร ้างแฟ้ มนัน
แก ้ไขนัน ่ ซงึ่ ไม่เคยใชแฟ้
้ เอง หรือแม ้แต่จะเป็ นผู ้อืน ้ มนัน
้ มา
ก่อนก็ตาม
3. สามารถลดจํานวนคนและไม่ต ้องเพิม
่ อัตรากําลังคนตามปริมาณงานทีเ่ พิม
่ ขึน

4. ประหยัดเงินลงทุน เพราะไม่ต ้องจ่ายเพือ ื้ เครือ
่ ซอ ่ งหรือโปรแกรมคอมพิวเตอร์รน
ุ่ ใหม่
5. คุณต ้องมีความสุขและมีเวลาว่างให ้กับชวี ต
ิ มากขึน

สูตรฉลาด (Smart Formula)

Smart Formula แปลว่า สูตรฉลาด ซงึ่ สูตรฉลาดทีว่ า่ นีจ


้ ะฉลาดได ้ก็ตอ
่ เมือ ้
่ ใชความฉลาดของ
คุณในการสร ้างสูตรขึน
้ มา เพือ
่ ให ้มีลก ้
ั ษณะการใชงานได ้ตามนี้

ี หนึง่ ๆหรือตารางหนึง่ ๆ ต ้องมีสต


ในชท ู รต ้นฉบับเพียงเซลล์เดียว ซงึ่ สามารถนํ าไปใชได
้ ้
กับเซลล์อน
ื่ ๆได ้ทัง้ ตาราง แล ้วเมือ
่ ใดทีจ
่ ําเป็ นต ้องแก ้ไขสูตรใหม่ ก็จัดการแก ้ไขสูตรนี้
เพียงเซลล์เดียวแล ้ว Copy นํ าไป Paste เพือ ้ ้กับทุกเซลล์ในตาราง
่ ใชได

ในโครงสร ้างของตัวสูตรฉลาดอาจใชวิ้ ธก
ี ําหนดตําแหน่งอ ้างอิงแบบเซลล์เดียวหรือแบบกําหนด
ขอบเขตตารางก็ได ้ โดยไม่วา่ จะใชวิ้ ธใี ดก็หลีกหนีการกําหนดตําแน่งอ ้างอิงทีม
่ เี ครือ
่ งหมาย $
กํากับตําแหน่ง 3 แบบต่อไปนีไ
้ ปไม่พ ้น

• ตําแหน่งอ้างอิงแบบ Absolute Reference มีเครือ


่ งหมาย $ วางไว ้ด ้านหน ้าของทัง้
่ =$A$1 โดยให ้ใชตํ้ าแหน่งอ ้างอิงแบบนีก
ตําแหน่ง Row และ Column เชน ้ บ
ั กรณีท ี่
ต ้องการนํ าค่าคงทีไ่ ปใช ้
• ตําแหน่งอ้างอิงแบบ Relative Reference เป็ นตําแหน่งอ ้างอิงซงึ่ ไม่มเี ครือ
่ งหมาย
่ =A1 ซงึ่ สูตรทีอ
$ เชน ่ ้างอิงแบบนีจ ้ เ่ ซลล์เดิมเซลล์เดียวไปตลอด ไม่สามารถ
้ ะต ้องใชที
่ ทําให ้ได ้ค่าเดิมซํ้าทีเ่ ซลล์อน
Copy นํ าไป Paste เพือ ื่ ได ้อีก เพราะตําแหน่งอ ้างอิงจะ
เขยือ
้ นต่างจากตําแหน่งเดิมเสมอ ดังนัน ้
้ จึงเป็ นการอ ้างอิงแบบทีใ่ ชในเซลล์
สตู รกันน ้อย
ทีส ุ แต่กลับถูกนํ ามาใชกั้ นมากใน Conditional Formatting หรือ Data Validation
่ ด
• ตําแหน่งอ้างอิงแบบ Mixed Reference เป็ นตําแหน่งอ ้างอิงทีน ิ มใชกั้ นมากทีส
่ ย ่ ด

โดยผู ้สร ้างสูตรต ้องเลือกใสเ่ ครือ
่ งหมาย $ ด ้านหน ้าตําแหน่ง Row หรือ Column เพียง
่ =A$1 เพือ
อย่างใดอย่างหนึง่ เชน ่ คงตําแหน่ง Row 1 ไว ้ตามเดิมตลอด หรือ =$A1

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 ด ้วยเครือ
่ งหมายใด)

นอกจากตําแหน่งอ ้างอิงทีต ่ งหมาย $ เป็ นองค์ประกอบสําคัญแล ้ว ในโครงสร ้างของ


่ ้องมีเครือ
่ ๆซงึ่ ทําหน ้าทีต
สูตร Smart Formula ยังอาจจําเป็ นต ้องพึง่ สูตร IF, And, Or หรือสูตรอืน ่ ด ิ ใจ
ั สน
่ ชว่ ยทําให ้สูตรมีเงือ
เพือ ่ นไขในการคํานวณต่างไปจากเดิมได ้เองทันที เมือ
่ มีการนํ าสูตรเดียวกัน
้ ํ้าทีต
ไปใชซ ่ ําแหน่งเซลล์อน
ื่

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

คําอธิบาย

• เซลล์ C3 เป็ นเซลล์ทม


ี่ ส ู ร Smart Formula ซงึ่ โดยทัว่ ไปจะเลือกให ้เซลล์หวั มุม
ี ต

ด ้านซายบนของตารางเป็ นเซลล์ทม
ี่ ส
ี ต
ู ร Smart Formula
• ้
คุณอาจเลือกสร ้างสูตรคูณโดยใชเลข 2 นํ าหน ้าแล ้วนํ าไปคูณกับเลข 10 เพือ
่ ทําให ้ได ้

สูตร =C$2*$B3 หรือจะเลือกใชเลข 10 นํ าหน ้าแล ้วนํ าไปคูณกับเลข 2 ซงึ่ จะทําให ้เกิด
สูตร =$B3*C$2 ก็ได ้และทําให ้เกิดผลลัพธ์ถก
ู ต ้องเท่ากันทัง้ สองแบบ แต่ขอแนะนํ าให ้
สร ้างพฤติกรรมในการสร ้างสูตรของตนว่า “ทุกสูตรทีส ้ จะนําตําแหน่งอ้างอิง
่ ร้างขึน
้ ก่อนตําแหน่งอ้างอิงตามแนวตงเสมอ”
ตามแนวนอนขึน ั้ ซงึ่ หลักนีจ
้ ะชว่ ยให ้คุณแกะ
้ และหากสงั เกตสูตรอืน
สูตรของตัวเองได ้ง่ายขึน ่ Index หรือ Offset
่ ๆของ Excel เชน

Copyright of www.ExcelExpertTraining.com 
13 

จะใชตํ้ าแหน่งอ ้างอิงจากแนวนอน Row ขึน


้ ก่อนตําแหน่งอ ้างอิงจากแนวตัง้ Column
่ กัน
เชน
• C$2 ต ้องมีเครือ
่ งหมาย $ วางไว ้หน ้าเลข 2 เนือ
่ งจากตารางสูตรคูณนีม
้ ี Row 2 เป็ น
ตําแหน่งอ ้างอิงทีต ่ น สว่ นตัว C ไม่ต ้องมีเครือ
่ ้องควบคุมไว ้ไม่ให ้เปลีย ่ งหมาย $ นํ าหน ้า
เพือ
่ ปล่อยให ้ C เปลีย ่ ๆตามแต่วา่ จะใช ้
่ นตําแหน่งเป็ น Column D E F หรือ Column อืน
สูตรนีห
้ รือไม่
• $B3 ต ้องมีเครือ
่ งหมาย $ วางไว ้หน ้า Column B เนือ
่ งจากตารางสูตรคูณนีม
้ ี Column B
่ ้องควบคุมไว ้ไม่ให ้เปลีย
เป็ นตําแหน่งอ ้างอิงทีต ่ น สว่ นเลข 3 ไม่ต ้องมีเครือ
่ งหมาย $
นํ าหน ้า เพือ
่ ปล่อยให ้เลข 3 เปลีย
่ นตําแหน่งเป็ น Row 4 5 6 หรือ Row อืน
่ ๆตามแต่วา่
จะใชสู้ ตรนีห
้ รือไม่
• หลักการใสเ่ ครือ
่ งหมาย $ นี้ ให ้จําไว ้ว่า “ถ ้าตําแหน่งอ ้างอิงในสูตรมาจากค่าตาม
แนวนอน ให ้ใส่ $ ไว ้หน ้า Row (เพราะ แนวนอน = Row) แต่ถ ้าตําแหน่งอ ้างอิงในสูตร
มาจากค่าตามแนวตัง้ ให ้ใส่ $ ไว ้หน ้า Column (เพราะ แนวตัง้ = Column)”

้ ําแหน่งอ้างอิงตามขอบเขตพืน
ต ัวอย่าง 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

คําอธิบาย

• ่ ้างอิงกับตําแหน่งทัง้ หมดบนหัวตารางหรือข ้างตาราง แล ้วใสเ่ ครือ


สูตรแบบทีอ ่ งหมาย $
ื่ เรียกว่า สูตรแบบล้อมรวั้ โดยทีส
ให ้กับตําแหน่งทัง้ Row และ Column นี้ ผมตัง้ ชอ ่ ต
ู ร
=$C$2:$F$2*$B$3:$B$5 จะทําหน ้าทีน
่ ํ าตําแหน่งอ ้างอิงบนรัว้ ตามแนวตัง้ ฉากทีต
่ ด
ั กัน
มาคูณกันทีละตัวให ้เอง ทําให ้ไม่ต ้องคอยพะวงว่าจะต ้องเลือกใสเ่ ครือ
่ งหมาย $ เพือ

ควบคุมตําแหน่งอ ้างอิงตามแนวใดเป็ นหลัก
• ี รกซงึ่ ใชตํ้ าแหน่งอ ้างอิงแบบเซลล์เดียว จะพบว่าการใช ้
ถ ้าเปรียบเทียบกับสูตรคูณวิธแ
สูตรอ ้างอิงแบบเซลล์เดียวมีความยืดหยุน ่ เมือ
่ มากกว่า เชน ่ หัวตารางมีขนาดใหญ่มากขึน

ก็สามารถ Copy สูตรไปใชต่้ อได ้ทันที แต่ถ ้าสร ้างสูตรแบบล ้อมรัว้ จะต ้องสร ้างสูตรใหม่
เพือ
่ กําหนดตําแหน่งอ ้างอิงในสูตรให ้มีขนาดขยายตาม (เว ้นแต่วา่ คุณทราบวิธข
ี ยาย
ขอบเขตตําแหน่งอ ้างอิง ซงึ่ จะนํ ามาอธิบายต่อไปในภายหลัง)
• ื สูตรแบบนีใ้ สเ่ ครือ
จุดอ่อนของสูตรแบบล ้อมรัว้ ก็คอ ่ งหมาย $ ควบคุมตําแหน่งแบบ
Absolute จึงคํานวณหาคําตอบให ้ได ้เฉพาะตารางจาก C3:F5 ซงึ่ อยูภ
่ ายในขอบเขต

ของรัว้ เป็ นแนวของตําแหน่งคงที่ หาก Copy สูตรไปใชนอกรั ว้ จะเกิด Error ขึน
้ ตามรูป

Copyright of www.ExcelExpertTraining.com 
15 

้ ําแหน่งอ้างอิงแบบ Array ตาม


ต ัวอย่าง Smart Formula แบบใชต
้ ทีห
ขอบเขตพืน ่ ัวตาราง

ขอให ้สร ้างตารางสูตรคูณ ซงึ่ นํ าตัวเลขบนหัวตารางมาคูณกับตัวเลขด ้านข ้างซายของตาราง


ขัน
้ ตอนการสร ้าง

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 

• ลองใช ้ Mouse คลิกลงไปในชอ


่ ง Formula Bar เลือกเฉพาะสว่ นของสูตร B3:B5 แล ้ว
กดปุ่ ม F9 จะพบว่าตําแหน่งอ ้างอิงสว่ นนีเ้ ปลีย
่ นเป็ น {10;20;30} จากนัน
้ ให ้กดปุ่ ม Esc
เพือ
่ คืนสภาพสูตรตามเดิม
• หากกดปุ่ ม F2 ตามด ้วย F9 จะพบว่าสูตร Array เดิมบน Formula Bar {=
่ นเป็ น ={20,30,40,50;40,60,80,100;60,90,120,150} แล ้ว
C2:F2*B3:B5} จะเปลีย
ขอให ้สงั เกตว่ามีเครือ ้ อยูร่ ะหว่างตัวเลข (ซงึ่
่ งหมาย Comma และ Semi-Colon ขัน
เครือ ้ สดงถึงว่าค่าถัดไปยังคงอยูใ่ น Row เดิม สว่ นเครือ
่ งหมาย Comma , นีแ ่ งหมาย
Semi-Colon ; แสดงว่าค่าถัดไปต ้องขึน
้ Row ใหม่)
• ดังนัน
้ ={20,30,40,50;40,60,80,100;60,90,120,150} จึงแสดงให ้เห็นว่าสูตร Array
นีค ื ค่าเป็ นคําตอบซงึ่ มีขนาดความกว ้าง 4 Column และมีความสูง 3 Row ตามขนาด
้ น
พืน
้ ทีต
่ งั ้ แต่ C3:F5 ทีต
่ ้องเลือกไว ้ก่อน เพือ
่ ให ้กระจายค่าลงไปให ้ครบนั่นเอง
• หากหัวตารางมีขนาดเปลีย
่ นไป ต ้องลบสูตร Array ทีส
่ ร ้างไว ้เดิมนีท
้ งิ้ ไปก่อนแล ้วจึง
สร ้างสูตร Array ใหม่ลงไป ซงึ่ ในการลบสูตร Array ทิง้ นี้ หากตอนทีส
่ ร ้างสูตรเกิดจาก
การสร ้างพร ้อมกันทีเดียวหลายเซลล์ จะเลือกลบสูตรทิง้ บางเซลล์ไม่ได ้ ต ้องเลือกเซลล์
C3:F5 ทัง้ หมดแล ้วจึงสงั่ ลบสูตรทิง้ พร ้อมกันทีเดียวจึงจะลบได ้
• ่ งจากสูตร Array ในตัวอย่างนีเ้ กิดจากการสร ้างพร ้อมกันทัง้ ตารางด ้วยสูตรเดียว จึง
เนือ
ทําให ้ Excel คํานวณสูตรทัง้ ตารางสูตรคูณเพียงครัง้ เดียว ถือเป็ นเคล็ดลับและลัดที่
น่าสนใจเป็ นอย่างยิง่ เพราะถ ้าสร ้างได ้จะทําให ้แฟ้ มคํานวณเร็วขึน
้ อย่างผิดหูผด
ิ ตาทีเดียว
(เร็วกว่าตัวอย่างสูตรคูณซงึ่ สร ้างสูตรลงไปในเซลล์เดียวแล ้วต ้อง Copy ไป Paste
่ ให ้คํานวณซํ้าอีกในเซลล์อน
เพือ ื่ )
• หากต ้องการค ้นหาว่าสูตร Array ทีเ่ ห็นนัน
้ สร ้างขึน
้ พร ้อมกันจากเซลล์ใดถึงเซลล์ใด ให ้
เริม
่ จากคลิกเลือกเซลล์สต ้ ๆก่อนเพียงเซลล์เดียว แล ้วกดปุ่ ม F5 >
ู ร Array นัน
่ ง Current array
Special > กาชอ จะ
พบว่า Excel เลือกพืน ่ ารางสว่ นทีเ่ กิด
้ ทีต
จากการสร ้างด ้วยสูตร Array พร ้อมกันนัน
้ ให ้
ทันที จากนัน
้ หากต ้องการลบหรือสร ้าง
สูตร Array ใหม่ลงไปก็ให ้กระทําต่อพืน
้ ที่
ตารางทีเ่ ลือกให ้แล ้วนัน
้ ร่วมกันเสมอ

Copyright of www.ExcelExpertTraining.com 
17 

วิธค
ี น
้ หาสูตร

เมือ
่ เจอปั ญหาในงาน ให ้ค่อยๆวิเคราะห์ปัญหาทีละขัน
้ ตอน แบ่งปั ญหาแยกออกเป็ นขัน
้ ๆ
ิ ใจ ควรลองสร ้างแนวทางแต่ละขัน
ตามลําดับการคํานวณ ตามลําดับการตัดสน ้ ลงบนกระดาษ
่ จัดลําดับการสง่ ค่าไปทีละขัน
ก่อน เพือ ้ ให ้ถูกต ้อง แล ้วลองใชมื้ อ ใชเครื
้ อ ่ งคิดเลข คิดคํานวณ
อย่างคร่าวๆก่อนว่า จะใชสู้ ตรคํานวณอย่างไร และได ้ผลลัพธ์ออกมาเป็ นเท่าใด

ปั ญหาทีว่ า่ ยาก อาจยากเพราะเราทําให ้มันยากขึน ่ คํานวณว่า ถ ้าซอ


้ เอง เชน ื้ สน
ิ ค ้าต ้นทุน 127
้ อีก 13.45% จะต ้องกําหนดราคาขายเท่าใด
บาทต่อหน่วย มาปรับกําไรขึน

ปั ญหานีท ้
้ ําให ้ง่ายลง โดยใชเลขตั
วกลมแทนตัวเลขจริงไปก่อน ลองคํานวณต ้นทุน 100 บาท
แทน 127 บาท ลองกําหนดกําไรเป็ น 10% แทน 13.45% จะคํานวณได ้ผลลัพธ์งา่ ยขึน
้ จริง
ไหม

สาเหตุทเี่ ราปรับปั ญหาให ้ง่ายลงนี้ เพือ


่ ให ้มองทีล
่ ําดับขัน
้ การคํานวณแทนทีจ
่ ะมัววุน
่ อยูก
่ บ

ตัวเลข เมือ
่ ได ้ขัน
้ การคํานวณทีต ่ ะใช ้ ภายหลัง
่ ้องการแล ้ว จึงหันมาสร ้างมาค ้นหาสูตร Excel ทีจ
จากสร ้างสูตรเสร็จแล ้ว เราจะเปลีย
่ นตัวเลขให ้ยากขึน
้ เท่าใดก็ได ้ทัง้ นัน
้ Excel จะคํานวณให ้
เสร็จในพริบตา

ู รคํานวณสําหรับปั ญหาของเราทุกอย่าง บางปั ญหาต ้องใชสู้ ตร


ขอให ้ยึดหลักว่า Excel มีสต
่ ต่อๆกันไป บางปั ญหาต ้องใชสู้ ตรซอนสู
ร่วมกับสูตรอืน ้ ตร แต่บางปั ญหาใชสู้ ตรๆเดียวก็ได ้
ผลลัพธ์แล ้ว ขัน
้ ตอนการแก ้ปั ญหาจึงเป็ นภาระของมนุษย์ ต ้องหาสูตรทีต ้ ้เจอ
่ ้องการใชให

แทนทีจ ี เงินซอ
่ ะเสย ื้ หนังสอ
ื เรือ
่ งสูตร ให ้เปิ ดดูจาก 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 ด ้านล่างซ ้ ดเพื
า ายสุ พือ่
เปิ ดดูราายละเอียดของสูตร

วิธท ต ใ่ ชง้ านทดแทน


ี ี่ 2 ค้นหาสูตรที า นก ัน

เมือ
่ เปิ ด
ดสูตรทีต
่ ้องก
การ แล ้วเลือนจอไปด
อ่ ้าน
นล่าสุด ใหคลิ
้ค กคําว่า See Also เพื
พอเปิ
่ ื่ ตรที่
ดรายชอสู

เกีย
่ วของกั
้อ น

บรู ้สูตรซงึ่ มีความเกี


ควรรอบ ค ย ่ วของกั
้อ นทัง้ หม
มดก่อน แลวจึ ิ ใจ
้ว งตัดสน จเลือกใชสู้ ต
ตรซงึ่ เหมาะก
กับ
ปั ญหาที
ทีส่ ด

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
19 

วิธท ใ่ ชใ้ นสูตร


ี ี่ 3 ค้นหาต ัวแปรที

ให ้เริม
่ พิมพ์ = ตาม ื่ สูตรที
มด ้วยชอ ร ต ้
่ ้องการใใชงานก่
อน แล ้วกดปุ่ ม Ctrl+a
C ่ อเปิ ด Help สําหรับ
เพือ
ชว่ ยเลือ
อกตัวแปรใน
นสูตรให ้เอง

นํ าให ้ใช ้ Function Scre


ไม่แนะน een Tips เพ
พราะคําอธิบายที
บ ป ่ รากฏ
ฏขึน
้ จะทับแน
นวของหัว column
c
่ ง Show
ทําให ้มองไม่วา่ เป็ น column ใด โดยตัดกาาชอ สง่ั File
w Function ScreenTipps จากการส
ons > Advanced (และควรสงั่ Filee > Option
> Optio ns > Formu
ulas > ตัดก ่ ง Form
กาชอ mula
AutoCo
omplete ทิงไปด
ง้ ้วยเพรราะ Excel จ ะพยายามเด ื่ สูตรทีพิ
ดาชอ พ
่ มพ์ลงไปใให ้)

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
20 

วิธท
ี ี่ 4 ค้นหาข้อ
้ จําก ัดของสูตร

เมือ
่ เปิ ด
ดดูรายละเอียดของสู
ย ตรใใน Excel Heelp แล ้วให ้ดู้ ข ้อจํากัดของสู
ข ks ซงึ่
ตรได จ้จ าก Remark
อธิบายข
ข ้อแม ้หรือข ้อจํ
้ ากัดในก ้
การใชงานขอ
องสูตรเอาไว ้

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
21 

วิธแ
ี กะสูตร

ิ้ สุดในงาน Material Requirements Planning ต่อไปนี้


ลองพิจารณาสูตรคํานวณหาเวลาสน

=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 

• ควรพิมพ์ พ Commen nt กํากับเซล ลล์ โดยคลิกขวาลงไปใ


ก ในเซลล์ทต ี่ ้อ้องการ แล ้วเลือก
เมนูยอ ่ ย Insert Co omment เพื พือ ่ อธิบายสูตรทีต ใ่ ชงานว้ ว่ามีความเป็ น นมาอย่างไรร
• สูตรซงึ่ อยู
อ ใ่ นวงเล็บในสุบ ด จะสง่งค่าต่อมาให ห ้สูตรสว่ นนอก ดังนัน ้ จึงงควรแกะสูตรจาก

นอกเขาใน ้า เพือ ่ เขาใจกั
้า บความ มหมายของส สูตรทัง้ หมดก่อน แล ้วแก กะสูตรจากใใน
ออกมาอีกครัง้ เพือ ไ ลําดับการรคํานวณสง่ ค่าในสูตรเซ
่ ไล่ ซลล์หนึง่ ๆ
• สูตรบางงสูตรไม่ไดอยู ้อ ใ่ นเซลล์ แต่เป็ น Forrmula
Name ให ใ ้ดูได ้จากคําสงั่ Form mulas > Na ame
Manager เพือ ่ เข ้าไไปดูและแก ไขสู ้ไ ตร
• ถ ้าต ้องก การค ้นหาเซ ซลล์ต ้นทางห หรือปลายท ทางที่
เชอ ื่ มโยยงกันด ้วยสูตร ต ให ้เลือกเเซลล์สต ู รแล ้วกดปุ่ ม
F5 > Special
S > กาชอ ่ ง Row Difference es หรือ
Column n Differencces หรือเลือ อก Precede ents /
Depend dents และเเลือก Direcct only เพือ ่ หาเซลล์
ถัดไป แล แ ้วกดปุ่ ม OK O จากนัน ้ ใให ้กดปุ่ ม F4 4 ต่อไป
เรือ
่ ยๆเพ ่ สงั่ ให ้ Ex
พือ xcel ทวนคําาสงั่ ค ้นหานีซ ้ ํ้าไป
เรือ่ ยๆจนกว่าจะหมดการเชอ ื่ มโโยง
• ถ ้าต ้องก การลากเสนลู น้ กศรแสดงงความเชอ ื่ มโยงสง่ ค่าระะหว่างสูตร ใให ้ใชเมนู ้
Formullas > Form mula Auditin ng > Trace e Preceden nts/Dependdents

• แสดงสูตรในเซลล์ให ใ ้เห็นแทน การแสดงผลลัพธ์


้ มนู Formula
ให ้ใชเม as > Formu ula Auditing >
Show Formulas
F และใช
แ คู้ ก
่ บ คําสงั่ File >
ั ค
Options > Formu ulas > กาชอ ่อง R1C1
referen nce style เพื
พือ
่ แสดงรูปแ แบบตําแหน น่ง
อ ้างอิงว่
วาเป็ นแบบเดียวกันหรือ อไม่ และแกคื้คนสู่
สภาพเดิ ดิมเมือ่ ตรวจ
จสอบสูตรเรีย ยบร ้อยแล ้ว

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
23 

วิธส ้ นสูตร
ี ร้างสูตรซอ

จุดประสงค์ของการนํ าสูตรมาซอนสู้ ตร เพือ่ ทําให ้สูตรๆเดียวสามารถคํานวณให ้ผลลัพธ์ได ้เลย


ทันที โดยไม่ต ้องพึง่ พาสูตรในเซลล์อน
ื่ ๆ ทําให ้เกิดประโยชน์ดงั นี้

• ชว่ ยจํากัดเซลล์ทต ี่ ้องใชเพื ้ อ


่ สร ้างสูตร
• ชว่ ยให ้ค ้นหาเซลล์สต ู รได ้ง่ายเนือ ่ งจากสูตรถูกนํ ามารวมกันไว ้เพียงทีเ่ ดียว
• หากมีจํานวนเซลล์ทม ี่ ส
ี ต
ู รยาวๆจํานวนไม่มากนัก จะทําให ้ file มีขนาดเล็ก
ลง เนือ่ งจากไม่ต ้องเปลืองเซลล์หรือ sheet เพือ ่ แยกเก็บสูตร และชว่ ยให ้
คํานวณรวดเร็วขึน ้

สว่ นข ้อเสยี ของการสร ้างสูตรซอนสู ้ ตรก็คอ ื สร ้างยาก และทําให ้แก ้ไขสูตรในภายหลังยากขึน ้


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

้ นสูตร
หล ักการสร้างสูตรซอ

1. ควรรวมกลุม ่ ของสูตรซงึ่ คํานวณเป็ นลําดับต่อเนือ


่ งกันไว ้เป็ นสูตรเดียว และแยก
้ ตอนซงึ่ ไม่ตอ
ขัน ่ เนือ
่ งออกเป็ นอีกสูตรหนึง่
2. ควรแยกสูตรออกให ้ทํางานคืนค่าซงึ่ มีความหมายสมบูรณ์ในขัน ้ นัน
้ ๆ และง่ายต่อการ
ตรวจสอบว่า ลําดับการคํานวณขัน ้ ใดผิดพลาด จะได ้สะดวกต่อการแก ้ไขให ้ถูกต ้อง
3. อย่ารวมทุกขัน ้ ตอนของการคํานวณไว ้ในสูตรๆเดียวจนยาวเกินไป

วิธส ้ นสูตร
ี ร้างสูตรซอ

ให ้สร ้างสูตรซงึ่ ควรเป็ นสูตรวงเล็บในสุดก่อนสูตรอืน


่ สูตรนีม ั ใชคํ้ านวณหาค่าพืน
้ ก ้ ฐานแรกสุด
ซงึ่ จะถูกนํ าไปใชเป็้ นตัวแปรในสูตรอืน ่ สร ้างสูตรคํานวณหาเลขทีบ
่ ถัดไป เชน ่ รรทัด ด ้วยสูตร
=MATCH( MinimumCost, TotalCost, 0)

จากนัน
้ จึงสร ้างสูตรอืน ่ นํ าผลลัพธ์จากสูตร Match ไปใช ้ เชน
่ คร่อมข ้างนอกเพือ ่

=INDEX( LotSize, MATCH( MinimumCost, TotalCost, 0), 1)

ถ ้าเป็ นสูตรชว่ ยการตัดสน ิ ใจ เชน ่ สูตร IF ให ้พิจารณาหาสูตรซงึ่ ใชตั้ ดสน


ิ ใจอืน ้
่ ๆ มาซอนเข ้าไป
ในสูตรเดิมเมือ ่ ถึงตัวแปรซงึ่ ต ้องการใชสู้ ตรอืน ่ ต ้องการตัดสน
่ คํานวณค่าให ้ เชน ิ คะแนน 0 - 50
ให ้เกรด C ถ ้าคะแนน 51 - 80 ให ้เกรด B แต่ถ ้าเกินกว่า 80 ให ้เกรด A ให ้สร ้างสูตรหาเกรด A
ให ้ได ้ก่อน

Copyright of www.ExcelExpertTraining.com 
24 

=IF(คะแนน>80,"A","BC")

ิ เกรด B C ต่อไปด ้วยสูตร IF อย่างไร


แล ้วค่อยพิจารณาต่อว่า จะตัดสน

=IF(คะแนน>80,"A",IF(คะแนน>50,"B","C"))


ถ ้าไม่ถนัดสร ้างสูตรต่อกันซอนกั
นไปเลยทีเดียว ให ้สร ้างสูตรแยกแต่ละขัน
้ ตอนออกไปลงใน
เซลล์แยกจากกันก่อน แล ้วจึง copy ตัวสูตร ไป paste ทับในตําแหน่งอ ้างอิง เชน่

A1: =NOW()

A2: =DAY(A1)


ให ้ copy สูตร NOW() จากเซลล์ A1 ไปทับคําว่า A1 ในเซลล์ A2 จะได ้สูตรซอนกั
นเป็ น
=DAY(NOW())

วิธ ี copy สูตร ให ้คลิกเลือกสว่ นของสูตรทีต


่ ้องการจากสูตรบน Formula Bar เชน่ เลือกคําว่า
NOW() แล ้วคลิกขวาเลือก copy (หรือกด Ctrl+c) แล ้วกด Esc หนึง่ ครัง้ เพือ
่ ออกจากการเลือก
แล ้วจึงไปคลิกเลือกคําว่า A1 บน Formula Bar ของสูตรในเซลล์ A2 แล ้วคลิกขวาสงั่ paste
(หรือกด Ctrl+v)

Copyright of www.ExcelExpertTraining.com 
25 

วิธส
ี ร้างชอ ้ นชอ
ื่ ซอ ื่

ใชคํ้ าสงั่ Formulas > Define Name เพือ ื่ ให ้กับสูตร หลังจากนัน


่ ตัง้ ชอ ื่ นัน
้ จึงนํ าชอ ้
้ ไปซอนใน
ชอื่ อืน
่ ต่อไปอีก เชน ่ สูตรในงานวางแผนการผลิต ซงึ่ ใชเวลาเริ
้ ม
่ งาน และเวลาทีใ่ ชทํ ้ างาน
คํานวณหาเวลาสน ิ้ สุดงาน ต่อไปนี้

Calc1 =VLOOKUP(RelativeStart, Begin, 1)

Calc2 =INDEX(Working_Hour, MATCH( Calc1, Begin, 1 ), 1 )

Calc3 =INDEX(Cum_Hour, MATCH( Calc1, Begin, 1 ), 1 )

Calc4 =Calc3 - Calc2

Calc5 =RelativeStart - Calc1

Calc6 =Calc4 + ( Calc5*24 )

Calc7 =RelativeHour + Calc6

Calc8 =COUNTIF(Cum_Hour, "<" & Calc7 ) + 1

Calc9 =INDEX(Working_Hour, Calc8, 1)

Calc10 =INDEX(Cum_Hour, Calc8, 1)

Calc11 =Calc10 - Calc9

Calc12 =(Calc7 - Calc11) / 24

Calc13 =INDEX(Begin, Calc8, 1)

Calc14 =Calc13 + Calc12

วิธน ื่ ทีต
ี ํ าชอ ่ งั ้ ไว ้มาใสใ่ นสูตร ให ้กดปุ่ ม F3 เพือ ื่ ทีต
่ เลือกชอ ่ งั ้ ไว ้ เพือ
่ สร ้างสูตรลงไปในเซลล์กอ
่ น
แล ้วจึง Copy สูตรไปใสต ่ อ ่ งสูตรของ Define Name
่ ในชอ


เวลาใชงานก็ ื่ Calc14 ไปใชเท่
นําสูตรชอ ้ านัน
้ ก็จะคํานวณสูตรทัง้ หมดตัง้ แต่ Calc1 – Calc13
ให ้อัตโนมัต ิ

Copyright of www.ExcelExpertTraining.com 
26 

เรือ
่ งทีไ่ ม่คอ
่ ยรูก
้ ันเกีย
่ วก ับสูตร

โปรแกรม Microsoft Excel รุน


่ ใหม่ มิได ้มีเสน่หอ
์ ยูท
่ รี่ ป
ู ร่างหน ้าตาบนหน ้าจอทีป
่ ระกอบไปด ้วย
แถบริบบอนแบบใหม่(ทีย
่ งั ไม่คอ
่ ยคุ ้นเคย) และมีพน ่ ารางซงึ่ มีขนาดใหญ่มากขึน
ื้ ทีต ้ กว่าเดิม
หลายเท่าเพียงเท่านัน
้ แต่สาเหตุทท
ี่ ําให ้ Excel มีเสน่ห ์ กลายเป็ นโปรแกรมยอดนิยมมานาน
แสนนาน ก็เพราะมีองค์ประกอบสําคัญ นั่นคือ Excel ตัง้ แต่รน
ุ่ แรกๆได ้จัดเตรียมสูตรสําเร็จรูปไว ้
มากมายให ้นํ ามาใชกั้ น หากสูตรทีม
่ อ ่ งั ไม่สามารถใชคํ้ านวณหาคําตอบทีต
ี ยูย ่ ้องการได ้ เราก็
สามารถนํ าสูตรทีม
่ อ
ี ยูน
่ ัน ้
้ มาใชร่้ วมกัน ซอนกั
น หรือผูกสูตรเข ้าด ้วยกัน จนกล่าวได ้ว่าเราสามารถ
ใช ้ Excel คํานวณหาคําตอบได ้กับโจทย์การคํานวณทุกเรือ
่ ง ปั ญหาใดทีค ิ ว่าไม่สามารถใช ้
่ ด
่ งั คิดไม่ออก ไม่ใชว่ า่ ใช ้ Excel หาคําตอบ
Excel หาคําตอบ นั่นเป็ นเพราะคนเราต่างหากทีย

ไม่ได ้ บางปั ญหาอาจต ้องใชเวลาคิ ิ ปี กว่าจะทราบว่าต ้องเอาสูตรนัน
ดนับสบ ้
้ มาซอนกั
บสูตรนีแ
้ ล ้ว
ก็จะได ้คําตอบทีต
่ ้องการออกมานั่นเอง

่ ว่ ยให ้สามารถใชสู้ ตรจนชาํ่ ชอง มิใชว่ า่ ต ้องรู ้จักสูตรทุกสูตรที่ Excel มีอยูห


เคล็ดลับทีช ่ รอก

เพราะสูตรทีใ่ ชงานกั ้ มีไม่มากนัก แค่รู ้จักการใชสู้ ตร Sum, If, And, Or, Choose,
นประจํานัน
VLookup, Match, Index, CountIF, SumIF, Offset, Indirect, และ Array Formula ให ้เป็ น
ี้ หละมาใชร่้ วมกันให ้เป็ นก็เพียงพอแล ้ว แต่กว่าจะใชสู้ ตรให ้เป็ นยังมี
และสามารถนํ าสูตรแค่นแ
หลายเรือ ่ ้องทําความเข ้าใจกัน หากคิดเพียงว่าขอใชสู้ ตรเหล่านีเ้ ป็ นก็พอแล ้ว คุณก็จะถึง
่ งทีต
ทางตันในไม่ชา้ โดยบทความนีจ
้ ะขอนํ าเรือ
่ งทีไ่ ม่คอ
่ ยรู ้กันเกีย
่ วกับสูตรมาอธิบาย หลายเรือ
่ ง
่ งสําคัญทีค
เป็ นเรือ ิ กันว่าไม่สําคัญ บางเรือ
่ ด ่ งก็งา่ ยแต่คด ่ งง่ายนั่นแหละยังมีอะไร
ิ ไม่ถงึ ว่าเรือ
่ นอยูอ
หลายอย่างซอ ่ ก

ทําอย่างไรให้เก่งสูตร 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 ก่อนทีจ
ปากถามใคร

้ ะเป็ นแนวทางชว่ ยให ้คุณกลายเป็ นคนเก่งสูตร Excel และขอฝากคน


หวังว่าคําแนะนํ า 10 ข ้อนีจ
่ อบใชสู้ ตรรุน
ทีช ่ ใหม่ทเี่ พิง่ เกิดขึน
้ ใน Excel 2007 ขึน
้ ไปว่า อย่าเพิง่ รีบร ้อนนํ าสูตรใหม่ๆเหล่านัน

มาใช ้ เพราะตราบใดทีเ่ พือ
่ นของคุณยังคงใช ้ Excel รุน
่ เก่ากว่าอยู่ เขาจะไม่สามารถนํ าแฟ้ มของ
่ ร ้างไว ้โดยใชสู้ ตรรุน
คุณทีส ่ ใหม่มาคํานวณได ้เลย คุณนั่นแหละทีจ
่ ะต ้องรับภาระย ้อนกลับไป
แก ้ไขสูตรรุน
่ ใหม่ให ้เป็ นรุน
่ เก่าเพือ
่ เปิ ดแฟ้ มใน Excel รุน
่ เก่าทีค ่ เขายังไม่เลิกใชกั้ น
่ นอืน

Copyright of www.ExcelExpertTraining.com 
28 

Formula vs Function

ทัง้ สองคํานีถ
้ ้าแปลเป็ นไทยก็แปลว่า “สูตร” เหมือนกัน โดยคําว่า Formula เป็ นคําทีม
่ ี
ความหมายกว ้างกว่า Function กล่าวคือ

• Formula หมายถึง สูตรทุกอย่างทีม


่ เี ครือ ่ =A1 หรือ
่ งหมายเท่ากับ = นํ าหน ้า เชน
=1+2 หรือ =Now()
• Function หมายถึง สูตรสําเร็จรูปทีต
่ ด ่ สูตร Sum, Max,
ิ มากับโปรแกรม Excel เชน
Min, If, VLookup หรือ Now เป็ นต ้น

ดังนัน
้ เพือ ้ ะใชคํ้ าว่า สูตร ซงึ่ หมายถึงทัง้ Formula และ
่ ทําความเข ้าใจให ้ตรงกัน ในบทความนีจ
ื อะไรก็ตามทีม
Function หรืออีกนัยหนึง่ สูตรก็คอ ่ งหมาย = นํ าหน ้า สว่ นตัวผมเองจะเขียน
่ เี ครือ
่ งสูตรในกระดาษโดยใชตั้ วใหญ่ปนตัวเล็ก เชน
อธิบายเรือ ่ Sum หรือ VLookup เพือ
่ ชว่ ยให ้อ่าน
แต่ละคําของสูตรได ้ง่าย แต่เมือ ้ Excel โปรดพิมพ์สต
่ ถึงคราวนํ าไปใชใน ู รด ้วยตัวเล็กทัง้ หมด
เสมอ

Text vs Number

ค่าทีพ
่ ม
ิ พ์บน
ั ทึกลงไปในเซลล์หรือผลจากการคํานวณมีอยูเ่ พียง 3 อย่างคือ ค่าทีถ
่ อ
ื เป็ นText
ค่าทีถ ื เป็ น Number และค่าที่ error ไม่สามารถนํ าไปใชคํ้ านวณต่อได ้
่ อ

• Text คือ ค่าทีพ


่ ม
ิ พ์ลงไปในเซลล์หรือเกิดจากสูตรคํานวณแล ้วจะชด ้
ิ ซายของเซลล์
่ พิมพ์คําว่า abc หรือ กขค หรือแม ้แต่ตวั เลขที่
ทันที (โดยไม่ต ้องกําหนด Format) เชน
พิมพ์ตอ
่ ท ้ายเครือ ่ ‘123 หรือผ่านการกําหนด Format Number ให ้
่ งหมายฝนทอง เชน
ถือเป็ นแบบ Text ซงึ่ โดยทัว่ ไปหากเซลล์ด ้านขวายังว่างอยู่ จะพบว่าถ ้าเซลล์ม ี Text ที่
ยาวกว่าความกว ้างของเซลล์ จะยอมให ้ Text นัน
้ แสดงต่อไปในเซลล์ด ้านขวา
• Number คือ ค่าทีพ
่ ม ิ ขวาของเซลล์
ิ พ์ลงไปในเซลล์หรือเกิดจากสูตรคํานวณแล ้วจะชด
่ พิมพ์ตวั เลข 123 หรือพิมพ์วน
ทันที (โดยไม่ต ้องกําหนด Format) เชน ั ที่ 14/2/2009
ซงึ่ โดยทัว่ ไปถ ้าเซลล์มค
ี วามกว ้างไม่พอทีจ
่ ะแสดงตัวเลขทัง้ หมด Excel จะแสดงด ้วย
่ งหมาย ####### ซํ้าจนเต็มเซลล์ (แก ้ได ้โดยคลิกขวาลงไปในเซลล์แล ้วสงั่
เครือ
่ ง Shrink to fit เพือ
Format Cells > Alignment > กาชอ ่ สงั่ ให ้ Excel ย่อขนาด
ของ Font ให ้มีขนาดพอดีทจ
ี่ ะแสดงได ้เต็มความกว ้างของเซลล์)
• ่
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
่ สูตรไม่สามารถคํานวณได ้ เชน

หลักการใช ้ Excel ทีด


่ ี คือ ค่าใดๆทีเ่ กีย
่ วข ้องกับตัวเลข ก็ขอให ้เป็ นตัวเลขทีช ิ ขวาของ
่ ด
เซลล์เสมอ ไม่ควรใชตั้ วเลขทีช ิ ซายของเซลล์
่ ด ้

ขนาดแฟ้ม 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 จะทําให ้แฟ้ มเล็กลง
ไปมากทีเดียว

สว่ นเซลล์สต ้ ก็ควรใชสู้ ตร IF ปรับ Error ให ้เปลีย


ู รทีเ่ กิด Error ขึน ่ นเป็ นค่าอืน
่ แทน ดังนี้

Copyright of www.ExcelExpertTraining.com 
30 

• ในกรณีท ี่ A1 คืนค่าเป็ น Number ให ้ใช ้ =IF( IsError(A1), 0, A1)


• ในกรณีท ี่ A1 คืนค่าเป็ น Text ให ้ใช ้ =IF( IsError(A1), “คําเตือนใดๆก็ได ้”, A1)

ซงึ่ ตัวผมเอง นิยมใชสู้ ตร =IF( IsError(A1), 0, A1) ทัง้ ในกรณีทเี่ ดิมคืนค่าเป็ น Number หรือ
Text ก็ตาม เพราะสามารถใช ้ Format ปรับการแสดงเลข 0 ให ้แสดงเป็ นค่าอืน
่ หรือแม ้แต่ทําให ้
ดูเหมือนกลายเป็ นเซลล์วา่ งได ้ต่อไป

ตําแหน่งเซลล์ทเี่ ลือกสําหร ับสร้างสูตร

เห็นหัวข ้อนีแ ั กันว่าตําแหน่งเซลล์ทเี่ ลือกสร ้างสูตรลงไปนัน


้ ล ้วคงสงสย ่ ้องใสใ่ จ
้ เป็ นประเด็นทีต
กันด ้วยหรือ ถ ้าคิดกันง่ายๆว่า “ในเมือ
่ ฉั นต ้องการจะสร ้างสูตรลงไปตรงนีก
้ ็ต ้องตามใจฉั น ฉั นจะ
ี อย่าง ใครจะทําไม” ก็แสดงว่าคุณมองข ้ามอะไรทีเ่ ป็ นเรือ
สร ้างสูตรลงไปตรงนีเ้ สย ่ งสําคัญอย่าง
หนึง่ ไปแล ้ว

ตําแหน่งเซลล์ทค ุ สร ้างสูตรหาคําตอบลงไป สามารถชเี้ ป็ นชต


ี่ ณ ี้ ายให ้กับงานของคุณทีเดียว
เพราะถ ้าอยูม
่ าวันหนึง่ เมือ
่ ย ้ายเซลล์สต
ู รไปทีต
่ ําแหน่งอืน
่ สูตรทีเ่ คยคํานวณหาคําตอบได ้ตลอด
มา อาจคืนค่าเป็ นคําตอบทีผ
่ ด
ิ หรือแสดงผลลัพธ์แตกต่างไปจากเดิมก็ได ้

วิธท
ี ดสอบสูตรทีค
่ ณ
ุ หรือใครสร ้างขึน ้ ้หรือไม่ ให ้ทดลองย ้ายเซลล์สต
้ ว่าเป็ นสูตรทีใ่ ชได ู รไปทีอ
่ น
ื่
ย ้ายไปเรือ ้ ทดลองย ้ายตารางข ้อมูลทีใ่ ชอ้ ้างอิงไปทีอ
่ ยๆหลายๆตําแหน่ง พร ้อมกันนัน ่ น
ื่ ด ้วย ลอง
Insert Row หรือ Column แทรกตารางข ้อมูลเข ้าไปอีก ถ ้าสูตรนัน
้ ยังคงหาคําตอบได ้
เหมือนเดิม แสดงว่าสูตรนัน ้
้ ใชงานได ้

ทราบไหมว่าถ ้าตารางข ้อมูลทีเ่ ก็บค่าอยูใ่ นตารางชว่ ง B2:D5 คุณควรสร ้างสูตรคํานวณซงึ่


่ วข ้องกับการใชข้ ้อมูลในตารางนีไ
เกีย ้ ว ้ทีเ่ ซลล์ใด ซงึ่ จะรับประกันว่าสูตรทีส
่ ร ้างขึน
้ จะสามารถ

นํ าไปใชงานต่
อได ้ทุกที่

ื ห ้ามสร ้างสูตรในแนวเดียวกับตารางข ้อมูล นั่นคือ อย่าสร ้างสูตรในชว่ ง Column B


คําตอบก็คอ
ถึง D และชว่ ง Row 2 ถึง 5

สาเหตุทห
ี่ ้าม เพราะการสร ้างสูตรใดๆทีม
่ ต
ี ําแหน่งอ ้างอิงไปยังค่าในแนวเดียวกับตารางข ้อมูล
อาจคืนค่าเป็ นคําตอบเป็ นค่าในตารางตามแนวเดียวกันก็ได ้

Copyright of www.ExcelExpertTraining.com 
31 

หากสร ้างสูตรในเซลล์ซงึ่ ไม่ได ้อยูใ่ นแนวเดียวกับชว่ ง Column B ถึง D และชว่ ง Row 2 ถึง 5
แล ้วคุณหาทางปรับสูตรนัน
้ ให ้คํานวณหาคําตอบทีต
่ ้องการ ย่อมรับประกันได ้ว่า สูตรนัน
้ เป็ นสูตร

ทีใ่ ชงานได ้จริงและจะยังคงคืนค่าเป็ นคําตอบเดิมไปตลอด ไม่วา่ จะย ้ายเซลล์สต
ู รไปทีต
่ ําแหน่ง
อืน
่ ก็ตาม

พอพบว่าสูตรทํางานได ้จริงแล ้ว จากนัน


้ จะย ้ายเซลล์สต
ู รไปวางไว ้ในแนวคูข
่ นานกับตารางข ้อมูล

ทีใ่ ชในการคํ านวณก็ไม่วา่ กัน

สูตรก็มจ
ี ังหวะหายใจด้วยนะ

ผู ้ทีใ่ ช ้ Excel เป็ นประจําต ้องรู ้จักสูตรต่อไปนีเ้ ป็ นอย่างดี =IF(C2=0, 0, B2/C2)

สูตรข ้างต ้นนีค ื สูตรทีใ่ ชส้ ําหรับปรับสูตรทีน


้ อ ่ ํ าตัวเลขมาหารกันไม่ให ้แสดงคําเตือน Error ว่า
#DIV/0! ขึน
้ มา

่ เซลล์ C2 ซงึ่ เป็ นเลขตัวหารมีคา่ เป็ น 0 ให ้คืนค่า 0 เป็ นตัวเลขคําตอบแทน แต่ถ ้าเซลล์ C2
เมือ
ไม่ได ้เป็ นเลข 0 ก็ยอ
่ มนํ า C2 มาหาร B2 ได ้ตามปกติ ผู ้ทีส
่ ร ้างสูตรหารกันจะหลีกเลีย
่ งสูตร
ดังกล่าวนีไ
้ ม่ได ้

ขอถามว่า เวลาทีค
่ ณ
ุ สร ้างสูตร คุณมีพฤติกรรมในการสร ้างสูตรกันอย่างไร คุณจะพิมพ์ลงไปใน
เซลล์วา่ =if(c2=0,0,b2/c2) รวดเดียวให ้ครบทัง้ หมดแล ้วจึงกดปุ่ ม Enter หรือไม่ หรือจะค่อยๆ
ื กหนึง่ จึง
พิมพ์ =if แล ้วหยุดหายใจพักหนึง่ แล ้วจึงพิมพ์ c2=0 ต่อ แล ้วก็หยุดพักหายใจอีกเฮอ
ค่อยๆพิมพ์สว่ นทีเ่ หลือต่อ

่ บบ่อยในการสร ้างสูตรของคนทีเ่ พิง่ เรียนรู ้การใช ้ Excel ก็คอ


ข ้อผิดพลาดทีพ ื มักหลงลืม
เครือ
่ งหมายวงเล็บ พิมพ์เครือ
่ งหมาย Comma ขาดไป บางครัง้ พิมพ์สลับที่ บางครัง้ พิมพ์ขาด
่ กดปุ่ ม Enter ลงไปแล ้ว Excel ต ้องเตือนขึน
บางครัง้ พิมพ์เกิน ทําให ้เมือ ้ มาบนจอให ้คุณทราบว่า
สูตรทีส
่ ร ้างนัน
้ ผิด

ผู ้สร ้างสูตรต ้องมีสมาธิพอตัว สมาธิทวี่ า่ นีเ้ กิดจากการรู ้จักว่าเมือ


่ ใดจะหยุดเมือ
่ ใดจะสร ้างต่อ ถ ้ารู ้
หลักจังหวะหายใจจะชว่ ยให ้คุณสร ้างสูตรได ้ง่ายขึน ั ้ ๆหรือสูตรยากๆยาวๆก็ใชหลั
้ ไม่วา่ สูตรสน ้ ก
จังหวะหายใจนีก
้ น
ั ทัง้ นัน

Copyright of www.ExcelExpertTraining.com 
32 

่ ังหวะหายใจของ Excel หรอกนะ Excel มันไม่ได ้มีการหายใจ


จังหวะหายใจทีว่ า่ นี้ ไม่ใชจ
เหมือนกับมนุษย์ แต่เป็ นจังหวะหายใจของคุณนั่นแหละ ต ้องรู ้ว่าเมือ
่ ใดทีค
่ วรจะหยุดแล ้วหายใจ
ั เฮอ
สก ื กหนึง่ แล ้วจึงสร ้างสูตรต่อ ซงึ่ เรือ
่ งการหายใจนีไ
้ ม่ต ้องลอกจังหวะการหายใจให ้เหมือนกับ
ผมก็ได ้ ตัวใครตัวมัน ขอให ้เลือกจังหวะหายใจทีต
่ วั เองคิดว่าถนัดก็แล ้วกัน

ขอยกสูตรทัง้ หมดมาดูกน
ั อีกครัง้

=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 ในการสร ้างสูตรไปได ้เยอะทีเดียว

ธรรมชาติของสูตร

ถ ้าเข ้าใจธรรมชาติตอ ้ องสูตร จะทําให ้เราใชสู้ ตร Excel ได ้ง่ายโดยไม่ต ้องท่องจําและลด


่ ไปนีข
่ นํ าสูตรมาใช ้
ข ้อผิดพลาดเมือ

ื่ สูตรเป็ นตัวอักษรภาษาอังกฤษตัวใหญ่ เชน


1. ชอ ่ IF, MAX, MIN ดังนัน
้ เวลาพิมพ์สต
ู รให ้พิมพ์
ื่ สูตรถูกต ้อง Excel จะเปลีย
ตัวเล็ก พอกดปุ่ ม Enter แล ้วจะพบว่า ถ ้าเราสะกดชอ ่ นตัวอักษร
จากตัวเล็กไปเป็ นตัวใหญ่ทงั ้ หมดให ้ทันที
2. เราสามารถพิมพ์สต
ู รโดยถ ้าในสูตรมีเครือ
่ งหมายวงเล็บเปิ ดเพียงวงเล็บเดียว พอกดปุ่ ม
Enter จะพบว่า Excel พิมพ์เครือ
่ งหมายวงเล็บปิ ดให ้เอง แต่ถ ้ามีวงเล็บเปิ ดหลายตัว เราต ้อง
ใสเ่ ครือ
่ งหมายปิ ดวงเล็บให ้ครบทุกคู่ เพราะถ ้ากดปุ่ ม Enter ลงไป Excel จะพยายามคิดใส่
่ งหมายวงเล็บปิ ดให ้ครบแต่อาจใสว่ งเล็บปิ ดผิดคูใ่ ห ้ก็ได ้
เครือ
3. วงเล็บในสูตรต ้องใสใ่ ห ้ครบคูแ
่ ละถูกตําแหน่ง มีวงเล็บเกินดีกว่าขาดวงเล็บ
4. ถ ้าไม่ใสว่ งเล็บ Excel จะไล่คํานวณตามลําดับดังนี้ ยกกําลังก่อนแล ้วตามด ้วยคูณหรือหาร
ั ดิศ
แล ้วตามด ้วยบวกหรือลบ (คูณหาร หรือบวกลบ มีศก ้
์ รีเท่ากัน จะไล่คํานวณจากซายไป
ขวาแล ้วแต่วา่ เครือ
่ งหมายใดมีกอ
่ น) ดูตวั อย่างท ้ายข ้อ 7
5. โครงสร ้างสูตร Excel ถูกสร ้างขึน
้ มาเลียนแบบลําดับความคิดของมนุษย์ ดังนัน
้ ถ ้าเราเข ้าใจ
ตัวเองว่าเรามองเราคิดทีละขัน ่ เวลา
้ อย่างไร เราก็จะสร ้างสูตรได ้ง่ายโดยไม่ต ้องท่อง เชน
เราคิดเรือ
่ งเงือ
่ นไขว่า ถ ้าทําดี ต ้องได ้ดี แต่ถ ้าไม่ทําดี ต ้องได ้เรือ
่ งอืน
่ ๆ ตัวสูตร IF ของ
Excel ก็จะมีลําดับในโครงสร ้างสูตรตามแบบทีเ่ ราคิดออกมาเป็ น =IF(ทําดีใชไ่ หม, ได ้ดี,
ได ้อืน
่ ๆ) ขอให ้อ่านรายละเอียดประเด็นนีจ
้ ากบทความเรือ ่ สูตร Excel มีชวี ต
่ ง เมือ ิ จิตใจ หรือ
จากลิงค์ www.excelexperttraining.com/blogs/archives/z300-ExcelCore000706.php
6. ในโครงสร ้างสูตร ถ ้ามีการอ ้างอิงกับตําแหน่งเซลล์ตามแนวนอนและแนวตัง้ จะต ้องใส่
ตําแหน่งอ ้างอิงตามแนวนอนไว ้ก่อนแนวตัง้ เสมอ ดูได ้จากสูตร Index หรือสูตร Offset
(ดังนัน ่ ๆให ้ใชตํ้ าแหน่งอ ้างอิงตามแนวนอนก่อน
้ เราควรสร ้างสูตรคํานวณบวกลบคูณหารอืน
่ กัน เพือ
แนวตัง้ ด ้วยเชน ่ เป็ นแบบแผนชว่ ยให ้เข ้าใจทีไ่ ปทีม
่ าและแกะสูตรได ้ง่าย)

Copyright of www.ExcelExpertTraining.com 
34 

7. ถ ้าในโครงสร ้างสูตรประเภทฐานข ้อมูล มีตวั แปร (Option) ทีอ ่ รือไม่ใสก


่ าจใสห ่ ็ได ้ เชน
่ สูตร
VLookup หรือสูตร Match ขอให ้ยึดหลักว่า
7.1. ถ ้าไม่ใส่ Option หรือละไว ้ หรือใสต
่ วั เลข 1 นัน ้ ะใชกั้ บตารางข ้อมูล ทีเ่ รียงค่า
้ สูตรนีจ
จากน ้อยไปมาก (จําไว ้ว่าเรียงตามธรรมชาติต ้องเรียงจากน ้อยไปมากเสมอ)
7.2. ถ ้าใส่ Option เป็ น False หรือใสต
่ วั เลข 0 สูตรนีจ
้ ะใชกั้ บตารางข ้อมูลทีไ่ ม่เรียงลําดับ
(จําไว ้ว่า 0 แปลว่าไม่ หมายถึงไม่ต ้องเรียงลําดับ)
7.3. ถ ้าใส่ Option เป็ นตัวเลข -1 นัน ้ ะใชกั้ บตารางข ้อมูล ทีเ่ รียงค่าจากมากไปน ้อย
้ สูตรนีจ
(จําไว ้ว่าเรียงผิดธรรมชาติต ้องเรียงจากมากไปน ้อย)

ต ัวอย่างลําด ับการคํานวณตามเครือ
่ งหมายบวกลบคูณหาร

ถ ้าสร ้างสูตร =1+2-3*4/5^6 ลงไปในเซลล์ Excel จะคํานวณตามหลักการดังนี้

1. คํานวณเครือ
่ งหมายยกกําลัง ^ ก่อน นั่นคือจะคํานวณ 5^6
2. ตามด ้วยการคํานวณคูณหรือหาร แล ้วแต่วา่ เครือ ้
่ งหมายใดมาก่อนจากซายไปขวา นั่นคือ
จะคํานวณ 3*4 แล ้วจึงนํ าผลคูณทีไ่ ด ้ไปหารด ้วยคําตอบทีไ่ ด ้จาก 5^6
3. ตามด ้วยการคํานวณบวกหรือลบ แล ้วแต่วา่ เครือ ้
่ งหมายใดมาก่อนจากซายไปขวา นั่นคือ
จะคํานวณ 1+2 แล ้วจึงนํ าผลบวกทีไ่ ด ้ไปลบกับผลลัพธ์ทไี่ ด ้จาก 3*4/5^6

จะสร้างสูตรให้วน
ุ่ ก ันไปได้แค่ไหน

สูตรสําเร็จรูปของ Excel 2003 ทีเ่ ราใชกั้ นจนชน


ิ (จนไม่อยากเปลีย
่ นมาใช ้ Excel 2007 หรือ
่ ทีใ่ หม่กว่า) มีข ้อกําหนดในตัวสูตรว่า ในวงเล็บของสูตรสําเร็จรูปหนึง่ ๆนัน
Excel รุน ้
้ สามารถซอน
สูตรเข ้าไปได ้อีก 7 สูตร และในวงเล็บของบางสูตรจะถูกแบ่ง Argument หรือตัวแปรทีค
่ น
ั่ ด ้วย
่ งหมาย comma แบ่งได ้สูงสุด 30 Arguments (หรืออีกนัยหนึง่ ใส่ Comma ได ้สูงสุด 29
เครือ
่ แบ่งสว่ นในวงเล็บออกเป็ น 30 สว่ น) และสูตรทีย
ตัวเพือ ่ าวทีส
่ ด
ุ ทีส
่ ามารถพิมพ์ลงไปในเซลล์
หนึง่ ๆได ้นัน
้ ยาวได ้สูงสุด 1,024 ตัวอักษร

ข ้อกําหนดเหล่านีน
้ ับว่าเพียงพอกับการคํานวณทัว่ ไป นานๆทีจงึ มีโจทย์ทต ้
ี่ ้องใชจนเกิ
นกว่า
ขีดจํากัด ซงึ่ แก ้ไขได ้ง่ายๆโดยแยกการคํานวณเป็ นสว่ นๆ แล ้วแบ่งแต่ละเซลล์ให ้แยกคํานวณ
แต่ละสว่ นของสูตร จากนัน
้ จึงนํ าผลการคํานวณทีไ่ ด ้มาคํานวณร่วมกันต่อเป็ นขัน
้ ๆ หรือไม่ก็ต ้อง
ฉลาดเลือกใชสู้ ตรอืน
่ ทีค
่ ํานวณได ้คําตอบแบบเดียวกันแทน

Copyright of www.ExcelExpertTraining.com 
35 

สําหรับสูตรสําเร็จรูปใน Excel รุน


่ 2007 เป็ นต ้นมา ปรับข ้อกําหนดดังกล่าวเป็ นดังนี้

1. ในวงเล็บของสูตรสําเร็จรูป สามารถซอนสู
้ ตรเข ้าไปได ้อีก 64 สูตร (Nested levels of
functions)
2. ในวงเล็บของสูตรสําเร็จรูป สามารถแบ่งออกเป็ น 255 arguments (Arguments in
Functions)
3. ในเซลล์หนึง่ ๆรับสูตรได ้ยาวทีส
่ ด
ุ 8,192 characters (Length of formula contents)

้ ซงึ่ ขอแนะนํ าว่าอย่าใชความสบายจนเกิ


ข ้อกําหนดเหล่านีเ้ ปิ ดกว ้างให ้เราสร ้างสูตรได ้สบายขึน ้ น
ตัว เพราะตัวคุณนั่นแหละทีจ
่ ะถูกลงโทษหากสร ้างสูตรแบบสบายเกินไป เพราะหากต ้อง
่ แก ้ไขอีกในภายหลัง มันไม่ใชง่ านทีง่ า่ ยเลยทีจ
ย ้อนกลับมาแกะสูตรเพือ ้
่ ะแกะสูตรซอนกั
นหลาย
ิ ชน
สบ ั้

พึงระลึกไว ้เสมอว่า สูตรทีค


่ ณ
ุ สร ้างตัง้ แต่แรกนัน ้
้ ต ้องเป็ นสูตรทีใ่ ชงานได ้ตลอดไปโดยไม่ต ้อง
ย ้อนกลับมาแก ้ไขสูตรอีก แต่ถ ้าจําเป็ นต ้องแก ้ไขสูตร ก็ต ้องแก ้ไขได ้ง่าย ไม่วา่ คุณหรือเพือ
่ น
ของคุณก็ต ้องแกะสูตรได ้ง่าย

ดังนัน
้ การที่ Microsoft ปรับข ้อจํากัดของสูตรให ้ยืดหยุน
่ มากขึน
้ นี้ ถ ้าสูตรใดทีค
่ ณ
ุ คิดว่ามีเงือ
่ นไข
ของการคํานวณไม่ยากนัก"ต่อการจําของคุณ"และง่ายทีจ ิ ซอนสู
่ ะย ้อนกลับมาแก ้ไข ก็เชญ ้ ตรเข ้า
ั ้ ได ้ตามใจ แต่ถ ้ามีทางเลือกอืน
ไปหลายๆชน ่ ทีด
่ ก ่ มีสต
ี ว่า เชน ู รอืน
่ หรือต ้องปรับโครงสร ้าง
ี ใหม่เพือ
ตารางเสย ่ ให ้เข ้ากับสูตรนัน ิ ใจเลือกให ้ดี
้ ก็ขอแนะนํ าให ้ตัดสน

สูตรทีห ้ อกตําแหน่งได้
่ าค่าได้ ก็ใชบ

ื่ ไหมว่าเรือ
เชอ ่ งทีจ ้ ทบทุกคนทีใ่ ช ้ Excel ทราบกันดีอยูแ
่ ะอธิบายนีแ ่ ล ้ว ใชกั้ นอยูท
่ ก
ุ วัน แต่นก
ึ ไม่
ถึงว่าสูตรทีห ้
่ าค่าได ้ จะใชบอกตํ าแหน่งทีแ
่ ปลกแตกต่างจากทีเ่ ข ้าใจกันอย่างไร

พอสร ้างสูตรลงไปในเซลล์ใดๆก็ตามว่า =A1 สูตรนีก


้ ็จะดึงค่าจากเซลล์ A1 มาแสดงให ้เห็น
และพร ้อมกันนัน ้ าจากเซลล์ A1 เพราะดูจากตัวสูตรทีใ่ ชตํ้ าแหน่ง
้ เราก็จะทราบด ้วยว่า ค่าทีไ่ ด ้นีม
อ ้างอิง =A1 นั่นเอง

ทีพ ่ ง Allow edit directly in cells ทิง้ ไป (ใน Excel Options


่ เิ ศษไปกว่านี้ หากคุณตัดกาในชอ

> Advanced หรือใน Excel 2003 ใชเมนู Tools > Options > Edit) จะพบว่าเมือ
่ ดับเบิลคลิก
ทีเ่ ซลล์สต
ู ร =A1 จะย ้ายตําแหน่ง cursor ไปทีเ่ ซลล์ต ้นทาง A1 ให ้ทันที

Copyright of www.ExcelExpertTraining.com 
36 

สงิ่ ทีอ
่ ธิบายข ้างต ้นนีเ้ คยอธิบายมาหลายต่อหลายครัง้ ในการอบรมและในเว็บ
ExcelExpertTraining.com ซงึ่ พฤติกรรมแบบนีแ ่ ํ าไปสูเ่ รือ
้ หละทีน ่ งแปลกทีค
่ าดไม่ถงึ จากเดิม
ทีเ่ ขียนว่า "สูตรทีห ้
่ าค่าได ้ ก็ใชบอกตํ ั เจนกว่าเดิมว่า
าแหน่งได ้" ขอเขียนใหม่ให ้ละเอียดชด

สูตรใดๆทีส
่ ามารถหาค่าทีเ่ ก็บไว ้จากตารางได ้โดยตรง สูตรนัน
้ ย่อมเป็ นสูตรทีบ
่ อก
ตําแหน่งได ้ โดยอย่าสร ้างสูตรนัน
้ ลงไปในเซลล์ แต่ต ้องนํ าสูตรนัน ้
้ ไปซอนในสู
ตรอืน
่ ก็จะ
กลายเป็ นสูตรทีบ
่ อกตําแหน่ง

่ สูตร =INDEX(A1:B10,5,2) เป็ นสูตรหาค่าจากตารางข ้อมูลชว่ ง A1:B10 ใน


ยกตัวอย่างเชน
ตําแหน่ง Row 5 ตัดกับ Column 2 จะได ้ค่าจากเซลล์ B5

ถ ้าอยากจะตามไปดูวา่ เซลล์ B5 อยูท


่ ไี่ หนโดยไม่ต ้องนั่งแกะสูตรว่า Row 5 ตัดกับ Column 2
์ ลิกลากทับสูตร =INDEX(A1:B10,5,2) ทีแ
คือเซลล์ใด ให ้หยิบเมาสค ่ สดงบน Formula Bar
จากนัน
้ กดปุ่ ม F5 แล ้วกดปุ่ ม Enter จะพบว่าสูตร =INDEX(A1:B10,5,2) เปลีย
่ นไปเป็ น =B5
ให ้ทันที พอเห็นดังนีแ
้ ล ้วให ้กดปุ่ ม Esc เพือ ่ ภาพเดิม
่ ทําให ้สูตรคืนสูส

ยิง่ กว่านัน
้ ถ ้า 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
่ ต

ขอให ้สร ้างสูตร =OFFSET(INDEX(A1:B10,5,2),2,3) แล ้วลองใชวิ้ ธข


ี ้างต ้นค ้นหาว่าหมายถึง
เซลล์ใด จะพบว่าเป็ นเซลล์ E7 ใชไ่ หม เพราะเซลล์ E7 เป็ นเซลล์ทอ
ี่ ยูถ
่ ด
ั ลงมาจากเซลล์ B5
จํานวน 2 row และถัดไปด ้านขวาจํานวน 3 column เทียบเท่ากับการใชสู้ ตร
=OFFSET(B5,2,3) นั่นเอง

แต่ถ ้าสร ้างสูตร =INDEX(A1:B10,5,2) ไว ้ในเซลล์ D12 แล ้วใชสู้ ตร Offset อ ้างถึง D12 ใน
แบบ =OFFSET(D12,2,3) จะพบว่า D12 ไม่ได ้ชว่ ยบอกตําแหน่งต่อให ้กับสูตร Offset เพราะ
สูตร Index ในเซลล์ D12 ทําหน ้าทีห
่ าค่าจากเซลล์ B5 มาแสดงเสร็จก็จบหน ้าทีไ่ ปแล ้ว

Copyright of www.ExcelExpertTraining.com 
37 

่ ามารถหาค่าทีเ่ ก็บไว ้จากตารางได ้โดยตรง ซงึ่ ทํางานได ้แบบทีอ


สูตรทีส ่ ธิบายนี้ ได ้แก่ If,
Choose, Index, Offset, Indirect (แต่ไม่รวมสูตร VLookup เพราะมันไม่ได ้หาค่าได ้โดยตรง)
ซงึ่ ไม่จําเป็ นต ้องคืนค่าเพียงค่าเดียวเป็ นตําแหน่งเซลล์เดียว โดยสามารถคืนค่าเป็ นตารางเพือ


ใชบอกตํ าแหน่งตารางทัง้ ตารางก็ยงั ได ้

ดูตวั อย่างประกอบบทความนีไ
้ ด ้จาก
"www.excelexperttraining.com/forums/content.php?r=191-สูตร-ตําแหน่งอ ้างอิง"

จํานวนเซลล์สต
ู รเดียว

ผู ้สร ้างสูตร Excel ทัว่ ไป คุ ้นเคยกับการสร ้างสูตรหนึง่ ทีค


่ น
ื ค่าเพียงหนึง่ ค่า หรืออีกนัยหนึง่
เรียกว่า สูตรเดียวคืนค่าเดียว ซงึ่ สร ้างลงไปในเซลล์เดียว แต่น ้อยคนนักทีจ
่ ะทราบว่า สูตร Excel
สูตรหนึง่ ๆสามารถคืนค่าเป็ นคําตอบได ้หลายค่าก็เป็ นไปได ้เหมือนกัน สูตรพวกหลังนีเ้ รียกว่า
สูตร Array

การทีเ่ ราเลือกเซลล์เดียว แล ้วพิมพ์สต


ู รลงไปในเซลล์เดียวนัน
้ มีสาเหตุเนือ
่ งจากสูตรนัน
้ คืนค่า
ได ้คําตอบเพียงค่าเดียว

ถ ้าสูตรหนึง่ ๆคืนค่าเป็ นคําตอบได ้หลายค่า หากสร ้างสูตรนัน


้ ลงไปในเซลล์เดียว ย่อมไม่ถก
ู ต ้อง
แม ้จะเห็นคําตอบแสดงขึน
้ มาก็ตาม เพราะคําตอบทีแ
่ สดงขึน
้ มาให ้เห็นนัน
้ เป็ นเพียงคําตอบแรก
คําตอบเดียว เราหมดโอกาสทราบคําตอบค่าอืน
่ ๆ

พออ่านถึงตรงนี้ คนทีไ่ ม่รู ้จักกับสูตร Array คงเริม ั ว่า สูตรแบบไหนกันทีม


่ สงสย ่ ค
ี ําตอบได ้หลาย
ค่าในสูตรเดียว มาทดลองโดยเริม
่ จากพิมพ์คา่ ใดๆก็ได ้ลงไปในเซลล์ A1:A3 สมมติวา่ พิมพ์ 11,
22, 33 ตามลําดับ

Copyright of www.ExcelExpertTraining.com 
38 

แล ้วสร ้างสูตร =A1:A3 ลงไปในเซลล์ B1 จะเห็นคําตอบเป็ นเลข 11 ค่าเดียวใชไ่ หม

จากนัน
้ ให ้แกะดูคา่ ทีแ
่ ท ้จริงในสูตร โดยกดปุ่ ม F2 ตามด ้วยปุ่ ม F9 จะพบว่าสูตร =A1:A3
เปลีย
่ นเป็ น ={11;22;33}

ขอให ้สงั เกตว่าเครือ


่ งหมายวงเล็บ { ทีเ่ กิดขึน
้ นัน
้ อยูห ่ งหมายเท่ากับ ซงึ่ แสดงค่า
่ ลังจากเครือ
แบบ Array และระหว่างตัวเลขจะมีเครือ ่ ซงึ่ แสดงว่าค่าถัดไปอยูใ่ น
่ งหมาย semi-colon ; คัน
Row ถัดไป (หรือขึน
้ Row ใหม่)

พอเห็นค่าแล ้วว่าสูตรนีม
้ ี 3 ค่าและแต่ละค่าอยูต
่ ามแนวตัง้ ก็ให ้กดปุ่ ม Esc เพือ
่ ย ้อนกลับไปเป็ น
สูตร =A1:A3 ตามเดิม

คราวนีถ ้ ตอนสําคัญ หากต ้องการกระจายค่าแต่ละค่าในสูตร Array ลงไปในเซลล์ ให ้เริม


้ งึ ขัน ่
จากเลือกเซลล์ 3 เซลล์ตามแนวตัง้ (เพราะเราทราบจากการแกะสูตรมาก่อนแล ้วว่ามีคา่ 3 ค่า
ตามแนวตัง้ ) โดยจะเลือกทีต ี จากนัน
่ ําแหน่งใดก็ได ้ในชท ้ สร ้างสูตร =A1:A3 ลงไปแล ้วกดปุ่ ม
Ctrl+Shift+Enter พร ้อมกัน จะพบว่า Excel กระจายค่าในสูตรลงไปในเซลล์แต่ละเซลล์ให ้เห็น
่ นเป็ น {=A1:A3} โดยสงั เกตว่าคราวนีเ้ ครือ
จนครบ และตัวสูตรเปลีย ่ งหมาย { ตัวแรกวางไว ้
ก่อนเครือ
่ งหมายเท่ากับ แสดงว่าเป็ นวงเล็บปี กกาทีเ่ กิดจากการกดปุ่ ม Ctrl+Shift+Enter
(ไม่ใชว่ งเล็บปี กกาทีใ่ ชกํ้ ากับลําดับของค่าทีต
่ ้องอยูห
่ ลังเครือ
่ งหมายเท่ากับ)

่ ้องการนี้ จะชว่ ย
ประโยชน์ของการเลือกจํานวนเซลล์ให ้ครบเหมาะกับจํานวนและแนวของค่าทีต
ให ้เราเห็นค่าทุกค่ากระจายตัวลงไปในเซลล์แต่ละเซลล์ ทําให ้ประหยัดเวลาไม่ต ้องคอยกดปุ่ ม
่ แกะสูตรเป็ นครัง้ ๆไป อีกทัง้ สูตรทีส
F2 ตามด ้วย F9 เพือ ่ ร ้างขึน
้ พร ้อมกันทีเดียวหลายเซลล์ จะ
ี เวลาในการคํานวณเพียงครัง้ เดียว
ทําให ้ Excel เสย

วิธแ
ี ก้ error #VALUE! ด้วย Lotus 1-2-3

เมือ
่ นํ าเซลล์ทม
ี่ ค
ี า่ เป็ นตัวเลขมาบวกด ้วยเซลล์ทม
ี่ ค
ี า่ เป็ นตัวอักษรโดยการสร ้างสูตรบวกทีน
่ ํา
่ =A1+A2 จะพบว่าได ้คําตอบเป็ น #VALUE! นัน
เซลล์มาบวกกัน เชน ้ เราสามารถสงั่ ให ้ Excel
คํานวณหาคําตอบเป็ นยอดรวมเฉพาะตัวเลขได ้โดยใชส้ งั่ ให ้ Excel คํานวณแบบ Lotus 1-2-3

่ จากสงั่ File > Options > Advanced > แล ้วเลือ


ใน Excel 2010 เริม ่ นจอไปด ้านล่างสุดจะพบ
ื่ ชท
Lotus compatibility Settings for: ชอ ี ทีต
่ ้องการให ้คํานวณแบบ 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 formula entry จะชว่ ยทําให ้สูตรทีส


้ หากกาชอ ่ ร ้างจาก Lotus 1-2-3
release 2.2 ถูกเปลีย ่ เปิ ดแฟ้ มทีใ่ ชสู้ ตรนัน
่ นเป็ นสูตรของ Excel ให ้ทันทีเมือ ้ ด ้วย Excel

สว่ นชอ
่ ง Transition navigation keys จะเปลีย
่ นพฤติกรรมของปุ่ มลูกศร ปุ่ ม Tab หรือปุ่ มใดๆที่
่ นย ้ายตําแหน่งเซลล์ทเี่ ลือก ให ้ทําตามที่ Lotus 1-2-3 ใช ้ ซงึ่ ชว่ งแรกกว่าผมจะ
ทําหน ้าทีเ่ คลือ
หันมาใช ้ Excel อย่างเต็มตัว ต ้องอาศย
ั กาชอ
่ งนีอ
้ ยูน
่ านเพราะมือยังไม่คุ ้นกับปุ่ มทีเ่ คยเลือ
่ นไป
เลือ
่ นมาตามแบบทีต ิ
่ วั เองเคยชน

Copyright of www.ExcelExpertTraining.com 
40 

ต ัวอ ักษรมิได้มค
ี า่ เท่าก ับ 0

ก่อนจะจบบทความนี้ ทราบไหมว่า ตัวอักษร a หรือตัวอักษรใดๆก็ตามทีบ


่ น
ั ทึกลงไปในเซลล์
ื่ สมมติวา่ เซลล์ A1 มีคา่ เป็ น a ขอให ้ลองสร ้างสูตร
มิได ้ถือว่ามีคา่ เท่ากับ 0 หรอกนะ ถ ้าไม่เชอ
=A1=0 ดูก็ได ้จะพบว่าได ้คําตอบเป็ น FALSE สว่ นสูตร =A1>999999999 จะได ้คําตอบเป็ น
TRUE

Excel ถือว่าตัวอักษรใดๆมีคา่ มากกว่าเลขทัง้ ปวง อีกนัยหนึง่ มีคา่ เป็ น Infinity หากสร ้างสูตร
=Sum(A1,123) แล ้วได ้คําตอบเท่ากับ 123 เป็ นเพราะ Excel จะละเลยไม่นําตัวอักษรมา
คํานวณในสูตร Sum นีแ
่ หละเป็ นเรือ
่ งทีห
่ ลายๆคนชอบเข ้าใจผิดกันว่า ตัวอักษรมีคา่ เป็ น 0

ถ ้าสร ้างสูตร =A1+123 จะได ้คําตอบเป็ น #VALUE! เพราะ Excel จะไม่ยอมรับการนํ าตัวอักษร
มาบวกกับตัวเลข แต่เราสามารถเปลีย
่ นพฤติกรรมของ Excel ให ้คิดแบบ Lotus 1-2-3 ได ้ตาม
คําอธิบายข ้างต ้น

้ ธใี ดกับงานสําคัญ
ถ ้าถามว่าระหว่างสูตรบวกกับสูตร Sum เราจะเลือกใชการบวกเลขวิ

ื ต ้องเลือกใชสู้ ตรบวก เพราะหากมีการบันทึกตัวเลขผิด กลายเป็ นบันทึกตัวอักษร


คําตอบก็คอ
ลงไปแทน จะพบว่า Excel ไม่ยอมคํานวณให ้ โดยได ้คําตอบเป็ น #VALUE! ซงึ่ เท่ากับชว่ ย
เตือนเราให ้ทราบว่าเกิดข ้อผิดพลาดขึน
้ มาในระหว่างการบันทึกข ้อมูลนั่นเอง

Copyright of www.ExcelExpertTraining.com 
41 

้ ทีต
การแบ่งขอบเขตพืน ่ าราง

ี ของ Excel 2007 เป็ นต ้นมามีพน


ในชท ื้ ทีต
่ ารางใหญ่กว่ารุน
่ ก่อนอย่างมาก จากเดิมมีเพียง
่ เป็ น 1,048,576 row และ 16,384 column ซงึ่ ถ ้า
65,536 row และ 256 column ได ้ปรับเพิม
ี จะพบว่า Excel ต ้องใชเวลานาน
คุณพิมพ์คา่ ลงไปแล ้วพยายาม paste ให ้ครบทุกเซลล์ในชท ้
ี และเมือ
แสนนานทีเดียวกว่าจะได ้ข ้อมูลเต็มทัง้ ชท ่ สงั่ save จะไม่ม ี hard disk เครือ
่ งไหนที่
สามารถเก็บแฟ้ มข ้อมูลนัน
้ ได ้ เพราะแฟ้ มจะมีขนาดใหญ่เกินกว่าจะรับได ้ (ขออย่าพยายาม
ทดลองทําตามนีเ้ ด็ดขาด เพราะคุณจะรอไม่ไหวแล ้วต ้องหันไปปิ ดเครือ
่ งคอมพิวเตอร์ไปก่อนที่
จะ save เสร็จ)

ึ้ จนดูเหมือนใหญ่กว่าความจําเป็ น มิได ้มุง่ ให ้คุณ


สาเหตุท ี่ Excel ขยายขนาดตารางให ้ใหญ่ขน
้ ้ครบทุกเซลล์ เพียงแต่จะชว่ ยให ้สามารถรับข ้อมูลจากโปรแกรมอืน
จําเป็ นต ้องใชให ่ เข ้ามาเก็บไว ้
ี ได ้สะดวกขึน
ในชท ่ คุณหันมาใช ้ Excel 2007 แล ้วก็มไิ ด ้หมายความว่าจากนีไ
้ และเมือ ้ ปคุณไม่

จําเป็ นต ้องใชโปรแกรมฐานข ้อมูลอืน
่ อีกต่อไป เพราะในทีส
่ ด
ุ แล ้วเมือ
่ ข ้อมูลมีปริมาณมากขึน
้ และ
ั พันธ์ในตัวฐานข ้อมูลซบ
มีความสม ั ซอนตามขึ
้ น ้ ไปแล ้ว โปรแกรมทีส
่ ร ้างขึน
้ มาเพือ
่ จัดการ
ฐานข ้อมูลโดยเฉพาะย่อมเหมาะกว่าอยูด
่ ี

อย่าว่าแต่ขนาดของตารางทีม
่ ข ้ นีเ้ ลย ต่อให ้ใช ้ Excel 2003
ี นาดใหญ่สามารถรับข ้อมูลได ้มากขึน
ทีม ี นาดตารางเล็กกว่า หากผู ้ใช ้ Excel ไม่เป็ น พอนํ าข ้อมูลมาเก็บไว ้ในชท
่ ข ี อย่างไม่มห
ี ลักการ
่ ถึงเวลาจะต ้องแยกข ้อมูลออกจากกันเป็ นสว่ นๆก็จะทําได ้ยาก จึงขอเสนอให ้ใชหล
แล ้วเมือ ้ ัก
ICO แบ่งขอบเขตพืน
้ ทีต
่ าราง กล่าวคือ

1. ให ้แบ่งแยกตารางข ้อมูลออกเป็ น 3 ประเภท คือ ตาราง Input, ตาราง Calculate, และ


ตาราง Output (หรือใชตั้ วย่อว่า ICO)
้ บข ้อมูลทีพ
2. ตาราง Input คือ ตารางทีใ่ ชเก็ ่ ม
ิ พ์ลงไปหรือเป็ นข ้อมูลทีร่ ับมาจากโปรแกรม
อืน
่ หรืออีกนัยหนึง่ เป็ นตารางฐานข ้อมูลนั่นเอง ตาราง Input นีต
้ ้องออกแบบให ้โครงสร ้าง
ของตารางมีลก
ั ษณะดังนี้
2.1. หัวตารางด ้านบน ต ้องเป็ น row เดียว ซงึ่ อาจแต่งข ้อความในเซลล์ให ้แสดงเป็ นหลาย
บรรทัดได ้ โดยกดปุ่ ม Alt+Enter เพือ
่ ขึน
้ ข ้อความในบรรทัดใหม่ในเซลล์เดิม
่ งว่าง ซงึ่
2.2. ต ้องบันทึกข ้อมูลใน column ใด column หนึง่ ติดต่อกันไปตลอด ห ้ามเว ้นชอ
้ ดมักจะมีข ้อมูลติดต่อกันไปอยูแ
โดยทัว่ ไป column ซายสุ ่ ล ้วเนือ
่ งจากเป็ นข ้อมูลของ
่ งึ่ เรียงไปตามลําดับรายการทีเ่ กิดขึน
เลขทีร่ ายการ หรือข ้อมูลรหัส หรือข ้อมูลวันทีซ ้

Copyright of www.ExcelExpertTraining.com 
42 


2.3. ต ้องเว ้นขอบตารางไม่วา่ จะเป็ นขอบด ้านบนล่างซายขวาอย่
างน ้อยข ้างละ 1 เซลล์ ห ้าม
่ ซงึ่ ไม่ใชข
นํ าตาราง Input ไปติดกับเซลล์ข ้อมูลอืน ่ ้อมูลเรือ
่ งเดียวกับตารางข ้อมูลนัน

้ ้างสูตรคํานวณ ไม่จําเป็ นต ้องมีโครงสร ้างตามแบบ
3. ตาราง Calculate คือ ตารางทีใ่ ชสร
ของตาราง Input แต่ในตาราง Calculate นีค
้ ณ
ุ ต ้องหาทางสร ้างสูตรทีเ่ ซลล์หวั มุมเป็ นสูตร
ฉลาดทีส ่ ร ้างสูตรต ้องใชปุ่้ ม F4 เพือ
่ ามารถปรับตําแหน่งอ ้างอิงได ้เอง และในขณะทีส ่ ใส่
เครือ
่ งหมาย $ เพือ
่ ควบคุมตําแหน่งอ ้างอิงในสูตรไปยังเซลล์ทบ ั ทึกค่าตัวแปรทีใ่ ชคํ้ านวณ
ี่ น
ไว ้ ซงึ่ โดยทัว่ ไปเซลล์คา่ ตัวแปรจะวางไว ้ตามแนวคูข
่ นานกับแนวของตาราง Calculate เพือ

ชว่ ยให ้เครือ
่ งหมาย $ ทีใ่ สไ่ ว ้ในสูตร ทําหน ้าทีค
่ วบคุมตําแหน่งของแนวของเซลล์ตวั แปรไว ้
่ นํ าค่ามาใชคํ้ านวณนั่นเอง
เพือ
ี่ ้องการ โดยตารางนีจ
4. ตาราง Output คือ ตารางแสดงผลลัพธ์ทต ้ ะออกแบบให ้มีหน ้าตา
่ งั่ พิมพ์
อย่างไรก็ได ้ตามแต่วา่ จะนํ าไปแสดงผลบนจอภาพหรือในหน ้ากระดาษทีส

สาเหตุทต ้ ก ICO แยกข ้อมูลแต่ละประเภทออกจากกัน เพือ


ี่ ้องใชหลั ่ ชว่ ยทําให ้เราสามารถใช ้
Excel รองรับกับข ้อมูลทีม
่ ป
ี ริมาณมากขึน ่ ยๆได ้ตลอด ซงึ่ ในชว่ งแรกทีย
้ ไปเรือ ่ งั มีข ้อมูลไม่มาก
นัก อาจใชช้ ท
ี เดียวเก็บข ้อมูลทัง้ I C และ O ไว ้ด ้วยกัน จากนัน
้ เมือ
่ มีปริมาณข ้อมูลมากขึน
้ หรือ
ั ซอนมากขึ
ข ้อมูลมีความสลับซบ ้ น ี อืน
้ จึงค่อยย ้ายตารางแยกไปเก็บในชท ่ หรือแฟ้ มอืน
่ ได ้ทันที
โดยไม่กระทบกับสูตรคํานวณทีส
่ ร ้างไว ้

ข ้อผิดพลาดทีพ
่ บเห็นบ่อยครัง้ เกิดจากการออกแบบตารางตามแบบรายงานทีต ่
่ ้องพิมพ์ เชน
หากมีรายงานยาว 100 หน ้า ก็มก
ั ออกแบบตารางใน Excel ให ้ยาวเหยียดต่อๆกันลงมาทัง้ 100
หน ้าแล ้วจึงสงั่ พิมพ์ออกไปทีละหน ้า ซงึ่ วิธน ี้ ําให ้แฟ้ มมีขนาดใหญ่และยากต่อการแก ้ไขเพราะ
ี ท
จําเป็ นต ้องย ้อนกลับไปไล่แก ้ไขในตารางแต่ละหน ้า

่ จากแยกตารางข ้อมูลทีเ่ ป็ น Input ออกไป แล ้วใช ้


แต่หากออกแบบตารางแบบ ICO เป็ น ให ้เริม
สูตรดึงค่าจากตาราง Input มาคํานวณในตาราง Calculate จากนัน
้ จึงดึงผลลัพธ์ทค
ี่ ํานวณเสร็จ
แล ้วไปสร ้างตาราง Output ซงึ่ จุดสําคัญอยูท
่ ต
ี่ าราง Output นีแ
่ หละ โดยเราต ้องหาทางสร ้าง
ตาราง Output ไว ้เพียงหน ้าเดียว จากนัน
้ ต ้องสร ้างสูตรดึงข ้อมูลแต่ละหน ้ามาแสดงในตาราง
Output หน ้าเดียวนีใ้ ห ้ได ้ ชว่ ยให ้แฟ้ มมีขนาดเล็กและแก ้ไขได ้ง่ายกว่ามาก

สมมติวา่ หน ้ากระดาษทีพ
่ ม
ิ พ์ม ี 30 บรรทัดต่อหน ้า ดังนัน
้ พอพิมพ์เลขหน ้าที่ 1 ลงไป ต ้องสร ้าง
สูตรดึงผลลัพธ์บรรทัดที่ 1 - 30 มาแสดงในหน ้านี้ จากนัน
้ พอเปลีย
่ นเลขหน ้าเป็ นเลข 2 ก็จะได ้
บรรทัดที่ 31 – 60 มาแสดง พอเป็ นหน ้า 3 ก็ได ้บรรทัดที่ 61 - 90 มาแสดง ซงึ่ สูตรทีด
่ งึ ข ้อมูล
่ นีไ
เชน ้ ด ้ก็คอ
ื สูตร VLookup, Match, Index เป็ นต ้น

Copyright of www.ExcelExpertTraining.com 
43 

้ ที่ ICO เพือ


การจ ัดเตรียมพืน ่ ร ับข้อมูลและป้องก ันการแก้ไข

แฟ้ มทีส ้
่ ร ้างเสร็จพร ้อมใชงาน ต ้องมีระบบแยกแยะตําแหน่งตารางทีเ่ ปิ ดให ้รับค่าใหม่ได ้พร ้อมทัง้
หาทางป้ องกันตารางทีไ่ ม่ต ้องการให ้ใครเข ้าไปแก ้ไข โดยต ้องพิจารณาจากพืน
้ ทีต
่ ารางแต่ละ
สว่ น กล่าวคือ

1. ตาราง Input เป็ นพืน


้ ทีส ้
่ ว่ นทีเ่ ปิ ดให ้ผู ้ใชงานสามารถพิ
มพ์คา่ ใหม่ลงไปได ้ โดยมีขน
ั ้ ตอน
ในการจัดเตรียมพืน
้ ทีด
่ งั นี้
1.1. คลิกเลือกพืน ่ ารางสว่ นทีเ่ ป็ น Input (หากมีหลายพืน
้ ทีต ้ ทีไ่ ม่ตด
ิ ต่อกัน ให ้กดปุ่ ม Ctrl
ค ้างไว ้ก่อนแล ้วคลิกเลือกพืน ่ ต่ละสว่ น แล ้วอาจกําหนดส ี Font ให ้แตกต่างจากสว่ น
้ ทีแ
่ ซงึ่ ผมเองชอบใชส้ ช
อืน ี มพูเพือ
่ บอกผู ้ใชว่้ าเป็ นเซลล์ Input)
1.2. คลิกขวา สงั่ Format Cells > Protection > แล ้วตัดกาชอ
่ ง Locked ทิง้ ไป

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 ซอ ี นีไ ่ แต่กอ
้ ว ้โดยไม่สามารถค ้นหาพบเชน ่ น)

ี เดียวกัน ก็ขอให ้ใชวิ้ ธเี ดียวกันในการ link ข ้อมูล


ถ ้าคุณสามารถสร ้างสูตร link ข ้อมูลภายในชท
ี หรือแม ้แต่ข ้ามแฟ้ ม ขอเพียงอย่ากลัวภาพลวงตาทีท
ข ้ามชท ี หรือต่างแฟ้ ม
่ ําให ้เห็นว่าเป็ นต่างชท
กันเพราะความจริงมันก็คอ ี เดียวกันนั่นเอง ซงึ่ ก่อนทีจ
ื ชท ่ ะใชวิ้ ธส
ี ร ้างสูตร link ทีน ิ มใชกั้ น
่ ย
ต่อไปนี้ ขอให ้เปิ ดแฟ้ มทุกแฟ้ มทีต
่ ้องการสร ้างสูตร link ข ้อมูลระหว่างกันขึน
้ มาก่อนทัง้ แฟ้ มต ้น
ทางและแฟ้ มปลายทางแล ้วจะชว่ ยให ้สร ้างสูตร link ได ้ง่ายมาก

1. วิธย
ี อ
้ นปลายกล ับมาหาต้น
1.1. ให ้เริม
่ จากพิมพ์เครือ
่ งหมายเท่ากับ = ทีเ่ ซลล์ปลายทาง

Copyright of www.ExcelExpertTraining.com 
45 

ี หรือข ้ามแฟ้ มให ้ข ้ามขัน


1.2. (หากไม่ต ้องการ link ข ้ามชท ื่ ชท
้ ตอนนี)้ คลิกเลือกชอ ี ต ้นทาง
ื่ แฟ้ มต ้นทางทีเ่ ปิ ดไว ้ก่อนแล ้วจากคําสงั่ View > Switch Windows
หรือคลิกชอ
(Excel 2003 ใชคํ้ าสงั่ Windows เพือ
่ ไปทีแ
่ ฟ้ มต ้นทาง)
1.3. แล ้วคลิกเลือกเซลล์ต ้นทาง
1.4. จากนัน
้ กดปุ่ ม Enter เพือ
่ รับสูตร link ตําแหน่งเซลล์ต ้นทางกลับไปบันทึกไว ้ทีเ่ ซลล์
ปลายทาง (วิธน
ี โี้ ดยทัว่ ไปจะทําได ้ทีละเซลล์ เว ้นแต่จะสร ้างสูตรแบบ Array จึงจะสร ้าง
พร ้อมกันหลายเซลล์ทงั ้ ตาราง และขอให ้สงั เกตว่าถ ้าเป็ นสูตร link ข ้ามแฟ้ มจะได ้
ตําแหน่งอ ้างอิงแบบ Absolute เสมอ)
2. วิธ ี Copy จากต้น แล้วมา Paste Special แบบ Paste Link ทีป
่ ลาย
2.1. ให ้เริม
่ จากเลือกพืน
้ ทีต
่ ารางต ้นทางทัง้ ตารางพร ้อมกัน
2.2. สงั่ Copy
ี หรือข ้ามแฟ้ มให ้ข ้ามขัน
2.3. (หากไม่ต ้องการ link ข ้ามชท ื่ ชท
้ ตอนนี)้ คลิกเลือกชอ ี
ื่ แฟ้ มปลายทางทีเ่ ปิ ดไว ้ก่อนแล ้วจากคําสงั่ View > Switch
ปลายทาง หรือคลิกชอ
Windows (Excel 2003 ใชคํ้ าสงั่ Windows เพือ
่ ไปทีแ
่ ฟ้ มปลายทาง)
้ ให ้เลือกเซลล์หวั มุมตารางปลายทางเพียงเซลล์เดียวแล ้วคลิกขวา สงั่ Paste
2.4. จากนัน
Special > กดปุ่ม Paste Link จะได ้สูตร link พร ้อมกันทีเดียวทัง้ ตาราง

3. วิธ ี Cut จากต้น แล้วไป Paste ทีป


่ ลาย โดยวิธน
ี วี้ า่ ไปแล ้วไม่ได ้เป็ นการสร ้างสูตร link
แต่ให ้เริม ี เดียวกันตามวิธข
่ จากสร ้างสูตร link ไว ้ในชท ้ จึงสงั่ Cut
ี ้างต ้นให ้เสร็จก่อน จากนัน
ี ต ้นทางไป Paste ทีต
ตารางสูตรจากชท ี อืน
่ ําแหน่งปลายทางในชท ่ ซงึ่ Excel
่ หรือแฟ้ มอืน
ี หรือข ้ามแฟ้ มให ้
จะปรับโครงสร ้างตําแหน่งอ ้างอิงในสูตรให ้กลายเป็ นตําแหน่งอ ้างอิงข ้ามชท
เองทันที

ี ี่ 3 นีเ้ ป็ นเคล็ดลับสําคัญในการสร ้างสูตร link ข ้ามแฟ้ ม โดยเริม


วิธท ่ จากสร ้างสูตร link
ี เดียวกันให ้เสร็จก่อน จากนัน
ทัง้ หมดในชท ้ เมือ
่ Cut เซลล์สต
ู รไปทีช ี อืน
่ ท ่ จะได ้สูตร link

Copyright of www.ExcelExpertTraining.com 
46 

ี หรือถ ้า Cut เซลล์สต


ข ้ามชท ู รไปทีแ ่ จะได ้สูตร link ข ้ามแฟ้ ม ชว่ ยให ้ไม่ต ้องเสย
่ ฟ้ มอืน ี แรง
ี เวลาสร ้างสูตร link ข ้ามชท
เสย ี หรือข ้ามแฟ้ มตัง้ แต่แรกแม ้แต่น ้อย เชน

• ี เดียวกันเป็ น =A1
จากเดิมสร ้างสูตร link ในชท
• พอ Cut ไปทีช ี อืน
่ ท ่ สูตรนีจ
้ ะปรับตัวใหม่เป็ น =Sheet1!A1
• พอ Cut ต่อไปทีแ
่ ฟ้ มอืน
่ สูตรนีจ
้ ะปรับตัวใหม่เป็ น =[Source.xlsx]Sheet1!A1 โดย
คําว่า Source ก็คอ ื่ แฟ้ มต ้นทาง และคําว่า Sheet1 คือชอ
ื ชอ ื่ ชท
ี ต ้นทาง
• ต่อมาถ ้าปิ ดแฟ้ มต ้นทางทีช ื่ Source ทิง้ สูตรนีจ
่ อ ้ ะปรับตัวใหม่เป็ น
='D:\Dummy\[Source.xlsx]Sheet1'!A1
ซงึ่ การทีม
่ ช ื่ Drive D และชอ
ี อ ื่ โฟลเดอร์วา่ Dummy แสดงไว ้ด ้านหน ้าสูตร แสดงว่า
แฟ้ มต ้นทางทีช ื่ Source นัน
่ อ ้ ในขณะนัน
้ ถูกจัดเก็บไว ้ทีใ่ ดแต่ยงั ไม่ได ้ถูกเปิ ดขึน
้ มา

ข้อควรระว ังในการร ักษาสูตร link ข้ามแฟ้มให้ใชง้ านได้ถก


ู ต้องตลอดไป

1. หากต้องการทําการแก้ไขใดๆในแฟ้มที่ link ก ัน ต ้องเปิ ดแฟ้ มที่ link กันทุกแฟ้ มขึน


้ มา
ทัง้ แฟ้ มต ้นทางและแฟ้ มปลายทางก่อนทีจ
่ ะเริม
่ ทําการแก ้ไขเสมอ เพือ
่ ทําให ้การแก ้ไขที่
เกิดขึน ่ การย ้ายตําแหน่งเซลล์ การเปลีย
้ เชน ื่ ชท
่ นชอ ี หรือแม ้แต่ชอ
ื่ แฟ้ ม สง่ ผลให ้ Excel ไล่
แก ้ตําแหน่งอ ้างอิงในสูตร link ข ้ามแฟ้ มให ้เอง (ถ ้าต ้องการให ้ Excel ชว่ ยจําว่าต ้องเปิ ด

แฟ้ มใดบ ้างพร ้อมกัน ให ้ใชการเปิ ดแฟ้ ม Workspace ชว่ ย ซงึ่ จะอธิบายในภายหลัง)
2. หากต้องการ Save as เพือ
่ เปลีย ื่ แฟ้มหรือย้ายโฟลเดอร์ทเี่ ก็บ ให ้ทําการ Save
่ นชอ
แฟ้ มต ้นทางก่อนแล ้วจึง Save แฟ้ มปลายทางตามทีหลัง โดยการ Save ทีว่ า่ นีใ้ ห ้ใช ้
โปรแกรม Excel เปิ ดแฟ้ มแล ้ว Save จากโปรแกรม Excel เท่านัน
้ เพือ
่ ทําให ้ Excel ปรับ
ื่ แฟ้ มทีเ่ ปลีย
ตําแหน่งอ ้างอิงในสูตรตามตําแหน่งของโฟลเดอร์และชอ ่ นไป (ต่างจากการใช ้
Windows Explorer ในการย ้ายโฟลเดอร์หรือเปลีย ื่ แฟ้ ม ซงึ่ จะไม่ชว่ ยให ้สูตรมีการ
่ นชอ
แก ้ไขตําแหน่งอ ้างอิงตามแม ้แต่น ้อย)
3. หากต้องการแก้ไขตําแหน่งอ้างอิงเนือ
่ งจาก Excel เตือนว่าค้นหา link ไม่พบ อาจ
เป็ นเพราะคุณพลัง้ เผลอไม่ได ้ปฏิบต
ั ต
ิ ามข ้อควรระวัง 2 ข ้อข ้างต ้น ก็ยงั สามารถแก ้ไขให ้ link
ทํางานตามเดิมได ้ตามขัน ื่ แฟ้ มต ้นทางในเซลล์สต
้ ตอนต่อไปนี้ โดย Excel จะไล่แก ้ไขชอ ู ร
ี ใด
link ทุกเซลล์ให ้เองไม่วา่ อยูใ่ นชท
3.1. ให ้เปิ ดแฟ้ มปลายทางขึน
้ มาก่อนโดยไม่ต ้องเปิ ดแฟ้ มต ้นทาง (แฟ้ มปลายทางนีก
้ ็คอ

แฟ้ มทีเ่ ปิ ดขึน
้ มาแล ้วพบว่า Excel มีคําเตือนว่าหา link ไม่พบ)

Copyright of www.ExcelExpertTraining.com 
47 

3.2. ตรวจสอบว่าไม่มช ี ใดถูกสงั่ Protect Sheet เอาไว ้ (เพราะถ ้าชท


ี ท ี ใดถูก Protect จะไม่
สามารถแก ้ไขสูตร link ทีม
่ อ ี นัน
ี ยูใ่ นชท ้ ได ้เลย แม ้จะสงั่ ผ่าน Excel ก็ตาม)
้ ให ้ใชคํ้ าสงั่ Data > Edit Links (Excel 2003 ใชคํ้ าสงั่ Edit > Links)
3.3. จากนัน
ื่ แฟ้ มต ้นทางทีแ
3.4. คลิกเลือกชอ ่ งรายชอ
่ สดงในชอ ื่ Source
3.5. กดปุ่ ม Change Source แล ้วคลิกไล่หาแฟ้ มต ้นทางทีเ่ ก็บไว ้ในโฟลเดอร์ทต
ี่ ้องการ

่ ๆซงึ่ สามารถนํ ามาใชร่้ วมกับคําสงั่ Edit Links จากรูปข ้างต ้น


4. เคล็ดอืน
ื่ ไว ้จากชอ
4.1. ปุ่ ม Update Values ทําหน ้าที่ update ข ้อมูลจากแฟ้ มต ้นทางทีเ่ ลือกชอ ่ ง
Source ชว่ ยทําให ้สามารถเปิ ดแฟ้ มขึน
้ มาโดยไม่ต ้อง update ในตอนเปิ ดแฟ้ มก็ได ้
(เพราะหากสงั่ update ตอนเปิ ดแฟ้ ม จะทําให ้ Excel เสย
ี เวลาอย่างมากในการไล่
update แฟ้ มต ้นทางทีม
่ ท
ี ก
ุ แฟ้ ม) แล ้วต่อเมือ
่ ต ้องการดึงข ้อมูลใหม่จากแฟ้ มต ้นทาง
เมือ
่ ใด จึงค่อยคลิกปุ่ ม Update Values นีท
้ ล
ี ะแฟ้ มทีต
่ ้องการ
ื่ แฟ้ มทีเ่ ลือกไว ้จากชอ
4.2. ปุ่ ม Open Source ทําหน ้าทีเ่ ปิ ดแฟ้ มต ้นทาง ตามชอ ่ ง Source
4.3. ปุ่ ม Break Link ทําหน ้าทีท
่ ําลายสูตรทัง้ หมดในเซลล์ทก
ุ เซลล์ทม
ี่ ส
ี ต
ู ร link ข ้ามแฟ้ ม
ให ้กลายเป็ นค่า value หรือผลลัพธ์ ซงึ่ ไม่แนะนํ าให ้ใชวิ้ ธน
ี เี้ พราะ Excel จะทําลายสูตร
link ในแฟ้ มนัน
้ ทัง้ หมดโดยเราไม่มท
ี างทราบได ้เลยว่าเป็ นเซลล์ใดบ ้างและยังไม่
สามารถ Undo ดังนัน
้ หากต ้องการทําลายสูตร link ในเซลล์ใด ให ้ค ้นหาตําแหน่งเซลล์
ทีม
่ ส ู ร link โดยใชช้ อ
ี ต ื่ แฟ้ มทีแ ่ ง Source สําหรับค ้นหาตําแหน่งเซลล์นัน
่ สดงในชอ ้
เพือ
่ Copy แล ้ว Paste Special แบบ Value ทับเฉพาะเซลล์นัน
้ ๆจะเหมาะกว่า

Copyright of www.ExcelExpertTraining.com 
48 

ระบบการร ักษาความปลอดภ ัย
ในการ Link File ของ Excel 2010

ี ของ Excel 2010 มีจํานวน 1,048,576 rows และ 16,384 columns


แม ้ว่าขนาดตารางในชท
ชว่ ยรองรับกับข ้อมูลจํานวนมหาศาลมากขึน
้ กว่า Excel รุน
่ ก่อนก็ตาม แต่มไิ ด ้ทําให ้วิธบ
ี ันทึก
ข ้อมูลทีถ
่ ก
ู ต ้องต่างไปจากทีค
่ วร กล่าวคือ ในแฟ้มหนึง่ ๆควรเลือกบ ันทึกเฉพาะข้อมูลที่
จําเป็นต้องใชง้ านเรือ
่ งทีเ่ กีย ี เดียวก ันเท่านน
่ วข้องก ันไว้ดว้ ยก ันในชท ่ แยกแฟ้ มเก็บ
ั้ เชน
ข ้อมูลการขายในชว่ งแต่ละไตรมาสไว ้ด ้วยกัน แฟ้ มแรกเก็บข ้อมูลเดือน 1-3 แฟ้ มทีสองเก็บ
ข ้อมูลเดือน 4-6 แฟ้ มทีส ่ เี่ ก็บข ้อมูลเดือน 10-12 จากนัน
่ ามเก็บข ้อมูลเดือน 7-9 และแฟ้ มทีส ้
่ ต ้องการดึงข ้อมูลของไตรมาสใดมาใช ้ ให ้สร ้างสูตร link ข ้ามแฟ้ มนํ าข ้อมูลมาคํานวณ และ
เมือ
ใชคํ้ าสงั่ Change Sources เพือ
่ เปลีย
่ นการ link จากแฟ้ มเดิมไปยังแฟ้ มอืน ่ นํ าข ้อมูลชว่ ง
่ เพือ
ไตรมาสทีต ี เวลาสร ้างสูตร link ใหม่แต่อย่างใด
่ ้องการมาคํานวณโดยไม่ต ้องเสย

ใน Excel 2010 ไม่ได ้มีวธิ ก


ี ารสร ้างสูตร link หรือมีระบบการ Change Sources ต่างไปจาก
่ ก่อน แต่ใน Excel 2010 มีระบบการรักษาความปลอดภัยในการใชข้ ้อมูลทีเ่ คร่งครัดกว่า
Excel รุน
่ ก่อนและสง่ ผลทําให ้ Excel 2010 แสดงอาการและมีคําเตือนต่างไปจากเดิมเมือ
รุน ่ มีการเปิ ด
แฟ้ มที่ link กัน บทความนีจ
้ ะทดสอบระบบการ link file ของ Excel 2010 โดยจําลอง
สถานการณ์ในแต่ละขัน ึ ษาตัง้ แต่เริม
้ ตอนมาให ้ศก ่ ต ้นยังไม่มข
ี ้อมูล จวบจนสร ้างสูตร link และ
ทดลองปรับระบบการรักษาความปลอดภัยว่าจะสง่ ผลต่อคําเตือนเรือ
่ งการ link อย่างใดบ ้าง

ระบบความปลอดภัยใน Excel 2010 ทีจ ่ Trusted


่ ะนํ ามาทดสอบกับระบบการ link เชน
ิ Download แฟ้ มทีใ่ ชในการทดสอบนี
Location และ Trusted Document (เชญ ้ ไ ้ ด ้จาก
www.ExcelExpertTraining.com/download/testlink.zip)

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 

3. สร ้างแฟ้ มฐานข ้อมูลจํานวน


า ื่ Source.xlsx
200 รรายการ ชอ x มีขนาด 119.1 KB

4. ในแฟ้ ม Tarrget เซลล์ C2 เมือ


่ สร างสู
้า ตร link เพือ
่ หายอดรวมจากแฟ้ ม Source ของ

รายการ De
epartment ที
ทม ่ ช ื่ Opeerations ว่ามี
ี อ มยอดของ Actual
A รวมเเท่ากับ 204
496 โดย
ใชสู้ ตร Arra
ay {=SUM((Source.xxlsx!DEPAR
RTMENT=B
B2)*Sourcee.xlsx!ACTU
UAL)}
ทําให ้แฟ้ ม Target มีขนาดเพิม
่ ขึน
นจาก
้ 8.57 KB
K เป็ น 12.5KB (แสดงงว่าสูตรคํานวณทํ
น า
ให ้แฟ้ มมีขนาดเพิ
น ม ่ ขึน
้ ได
ไ ้ง่ายกว่าข ้อมูลทีเ่ ป็ นต
ตัวเลขหรือตั
ตวอักษร แล
ละการ link ข ้าม
แฟ้ มทําใหเกิ
้เ ด cache data ขึน
้ ใน
นแฟ้ มปลายท
ทาง ทําใหแฟ้
้แ มปลายท างมีขนาดให
หญ่ขน
ึ้
เป็ นพิเศษจ
จากการเก็บ cache dataa เอาไว ้)

่ ปิ ดแฟ้ ม Source ซงึ่ เป็ นแฟ้ มต ้ ้นทาง ให ้คงเหลือแฟ้ มปลายทาง


5. เมือ ม T
Target เปิ ดอยู
ด ่
เพียงแฟ้ มเด
ดียว พบว่าแฟ้
แ ม Targett ยังคงมีขนาดเท่
น าเดิมเป็
เ น 12.5 K
KB และเมือ
่ เปลี
เ ย ่ น
คําว่า Operrations เป็ น Security ห
หรือ R&D เพ
พือ
่ หายอดรรวมของรายก
การ พบว่าสามารถ

หายอดรวมได ้ตามต ้องการ โดยไม
ม่ต ้องเปิ ดแฟ้
ฟ้ ม Source และไม่ทําให
ห ้ขนาดแฟ้ ม
Target เปลี่ นแปลงแต่อย่างใด ( แสดงว่าใชข้ ้อมูลจาก cache
ลีย c dataa ทีเ่ ก็บไว ้ใน
นแฟ้ ม

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
50 

Target)

คําสงั่ File > Options > Advanced


6. ตรวจสอบคํ ่ ง Ask to
d > พบว่าระบบของ Exxcel กาชอ
update automatic lin
nks ไว ้

7. จากนัน ลองปิ ดแฟ้ ม Target แล


้ ทดล ล ้วเปิ ดแฟ้ ม Target ขึน
้ มาใหม่เพียงงแฟ้ มเดียว ปรากฏ
แถบคําเตือน Security Warning ต
ตรงด ้านบนข
ของจอเตือนว่
น า Autom atic update
e of
links has been
b disabled และเมือ
อคลิ
่ กลงไปท
ทีข
่ ้อความคํ
คําเตือนนี้ จะะเปิ ดหน ้า In
nfo
ขึน
้ มาอธิบายว่
า า The fo
ollowing co
ontent has been disabled: Workkbook linkss

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 ก็เป็ นได
ด้

ในกรณีทีไ่ ม่ต ้องกาารให ้ Excel 2010 เตือน


นเมือ ฟมที่ link กัน สามารถปรรับระบบ Trust
่ เปิ ดแฟ้
Center ของ Exterrnal Conten
nt โดยเลือก ่ ง En
กกาชอ nable autom
matic updaate for all
Workbo ( งึ่ ไม่แนะน
ook Links (ซ นํ าให ้ใช)้ แท ่ ง Pro
ทนชอ ompt user on
o automaatic update
e for
Workbo
ook links

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
54 

หล ักการตงช
ั้ อ ้ อ
ื่ และใชช ื่ ใน Excel

ื่ และใชช้ อ
การตัง้ ชอ ื่ เป็ นหัวใจสําคัญของการนํ าตําแหน่งอ ้างอิงไปใชซ
้ ํ้า เนือ
่ งจากหากปราศจาก
ื่ ทีด
การตัง้ ชอ ่ ข
ี น ้
ึ้ มาใชแทนตํ ั ้ ๆทีด
าแหน่งอ ้างอิงของเซลล์แล ้ว สูตรสน ่ ไู ม่มพ
ี ษ
ิ ภัยอะไร จะกลับ
กลายเป็ นปั ญหาอย่างมาก ยิง่ ใน Excel 2007 มีพน
ื้ ทีต
่ ารางกว่าหมืน
่ Column และล ้านกว่า
Row จะทําให ้ สูตร =JAN2009 ซงึ่ เป็ นสูตรทีน
่ ํ าค่ามาจากเซลล์ใน Column JAN ตัดกับ Row
2009 สามารถดูผาดๆและถูกตีความว่าเป็ นค่าของเดือน Jan ปี ค.ศ.2009 แทนก็เป็ นได ้

หากสงั เกตขนาดของตัวอักษรแต่ละตัวในคําแต่ละคําทีป ื่ ใดๆ


่ รากฏในตาราง Excel จะพบว่า ชอ
ื่ มาตรฐานของโปรแกรม Excel ซงึ่ เราไม่สามารถเข ้าไปแก ้ไขเปลีย
ก็ตามทีเ่ ป็ นชอ ่ นแปลงให ้เป็ น
ื่ อืน
ชอ ่ ได ้ถูกจัดให ้ใชตั้ วอักษรตัวใหญ่ทงั ้ หมด (เว ้นชอ
ื่ คําสงั่ บน Ribbon หรือเมนู) เชน
่ ชอ
ื่
ื่ IV) และสูตร
ตําแหน่ง Column A B C D จนถึง XFD (Excel 2003 มี Column สุดท ้ายชอ
สําเร็จรูปของ Excel ทุกสูตร เชน
่ สูตร SUM, MAX, MIN, VLOOKUP ล ้วนใชตั้ วอักษรตัวใหญ่
ทัง้ หมด ดังนัน
้ แทนทีจ ื่ แล ้วใชช้ อ
่ ะพร ้อมใจกันตัง้ ชอ ื่ ทีเ่ ป็ นตัวใหญ่ทงั ้ หมดตามแบบของชอ
ื่ ของ
ื่ และใชช้ อ
Excel เราควรกําหนดหลักการตัง้ ชอ ื่ ทีส ื่ ความหมายได ้ดีขน
่ อ ึ้ กว่าเดิม ดังนี้

้ ํ้า ขอให ้ตัง้ ใจตัง้ ชอ


1. หากแฟ้ มใดจะถูกใชซ ื่ ให ้ดี เพือ
่ ทําให ้ไม่วา่ ผู ้ทีน ้ ํ้านัน
่ ํ าแฟ้ มงานไปใชซ ้ จะ
เป็ นตัวคุณซงึ่ เป็ นผู ้สร ้างแฟ้ มนัน
้ เองหรือจะเป็ นเพือ ้ มนัน
่ นทีเ่ พิง่ เปิ ดใชแฟ้ ้ เป็ นครัง้ แรกก็ตาม
จะได ้สามารถเปิ ดแฟ้ มดูแล ้วสามารถไล่ทไี่ ปทีม
่ าของสูตรในเซลล์ได ้ทันที แต่ถ ้าแฟ้ มใดถูก
สร ้างขึน
้ มาเพือ ้ ายๆเพียงครัง้ เดียวแล ้วทิง้ ไม่ต ้องนํ ากลับมาใชอี้ ก ก็ไม่จําเป็ นต ้องตัง้
่ ใชงานง่
ื่ ให ้ดีก็ได ้
ชอ
ื่ ใดทีค
2. ชอ ่ ณ
ุ ตัง้ ขึน ื่ ชท
้ มาไม่วา่ จะเป็ นชอ ี ชอ
ื่ แฟ้ ม ชอ
ื่ โฟลเดอร์ ชอ
ื่ ตําแหน่งเซลล์ (Range
ื่ สูตร (Formula Name) หรือชอ
Name) ชอ ื่ ทีต ื่
่ งั ้ ให ้กับค่าคงที่ (Constant Name) ให ้ตัง้ ชอ
โดยใชตั้ วอักษรตัวใหญ่ผสมกับตัวเล็กเสมอ
3. เมือ
่ ใดทีต ื่ ใดๆก็ตาม ให ้ใชตั้ วอักษรตัวเล็กทัง้ หมดเท่านัน
่ ้องการสร ้างสูตรหรืออ ้างถึงชอ ้
่ พิมพ์ลงไปในเซลล์แล ้วกดปุ่ ม Enter จะเกิดข ้อสงั เกตในตัวอักษรของแต่ละชอ
เพราะเมือ ื่
ขึน
้ มาทันทีกล่าวคือ
3.1. ตัวอักษรทีก ื่ เฉพาะของ Excel
่ ลายเป็ นตัวใหญ่ทงั ้ หมด แสดงว่าเป็ นชอ
3.2. ตัวอักษรทีก ื่ ทีค
่ ลายเป็ นตัวใหญ่ผสมตัวเล็ก แสดงว่าเป็ นชอ ่ ณ
ุ ตัง้ ไว ้
3.3. ตัวอักษรทีย ื่ ผิด ดังนัน
่ งั คงเป็ นตัวเล็กทัง้ หมด แสดงว่าสะกดชอ ื่
้ Excel จึงไม่ยอมรับชอ
นัน
้ ทําให ้ขนาดตัวอักษรไม่เปลีย
่ นแปลงตาม

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 เป็ นต ้น ซงึ่ เมือ
่ ใดทีต ื่ ไปใช ้ ให ้พิมพ์ตวั เล็กตลอดตาม
่ ้องการนํ าชอ
หลักการข ้างต ้น

ื่ Range Name, Formula Name, และ Constant Name ทีไ่ ม่


ใน Excel 2003 มีระบบการตัง้ ชอ
ั ซอนนั
ซบ ้ ก เพียงสงั่ Insert > Name > Define ก็สามารถ Add ตัง้ ชอ
ื่ หลายๆชอ
ื่ ได ้โดยใช ้
คําสงั่ นีเ้ พียงครัง้ เดียว สว่ นใน Excel 2007 มีคําสงั่ ในการตัง้ ชอ
ื่ ให ้เลือกได ้ 2 วิธ ี คือ

ื่ เดียว ให ้สงั่ Formulas > Define Name


1. หากต ้องการตัง้ ชอ

Copyright of www.ExcelExpertTraining.com 
56 

ื่ หลายชอ
2. หากต ้องการตัง้ ชอ ื่ และสามารถย ้อนกลับมาแก ้ไขหรือตัง้ ชอ
ื่ อืน
่ ใหม่อก
ี ได ้ในทันที
ให ้สงั่ ผ่าน Formulas > Name Manager

2.1. กดปุ่ ม New เพือ ื่ ใหม่ หรือ


่ ตัง้ ชอ
2.2. กดปุ่ ม Edit เพือ ื่ หรือ
่ แก ้ไขตําแหน่งอ ้างอิงในชอ
2.3. กดปุ่ ม Delete เพือ ื่ ทิง้
่ ลบชอ

นอกจากนัน ื่ ให ้สนองตอบต่อการใชงานใน
้ 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 นีเ้ พียงครัง้
่ ําหนดให ้กับชอ
เดียว ก็จะสง่ ผลให ้ทุกเซลล์ทน
ี่ ํ า Constant Name ไปใชมี้ คา่ ใหม่ตามการแก ้ไขนัน
้ ได ้ทันที

ื่ Constant Name ว่า “MyKey1” ให ้มีคา่ เท่ากับชอ


สมมติวา่ ต ้องการตัง้ ชอ ื่ “Excel Expert
Training” ให ้เริม ื่ ทีต
่ จากพิมพ์ชอ ่ ง Name (โดยไม่ต ้องใสเ่ ครือ
่ ้องการตัง้ ลงไปในชอ ่ งหมาย
ื่ ) จากนัน
คําพูดปิ ดหัวท ้ายชอ ้ พิมพ์คา่ ทีต ่ ง Refers to โดยต ้องมีเครือ
่ ้องการลงไปในชอ ่ งหมาย
่ ้อความไว ้ระหว่างเครือ
เท่ากับนํ าหน ้าเสมอและถ ้ามีคา่ เป็ นตัวอักษรก็ต ้องใสข ่ งหมายคําพูดด ้วย
ตามนี้

Name: MyKey1

Refers to: =”Excel Expert Training”

ื่ Constant Name ให ้มีคา่ เป็ น


แต่ถ ้าต ้องการตัง้ ชอ
ตัวเลข ก็ไม่ต ้องใสเ่ ครือ
่ งหมายคําพูด แต่ต ้องใส่
เครือ ่ กันตามนี้
่ งหมายเท่ากับนํ าหน ้าเชน

Name: MyKey2

Refers to: =23187021

จากนัน
้ เมือ ื่ Constant Name นีไ
่ ต ้องการนํ าชอ ้
้ ปใชในเซลล์ ให ้พิมพ์ =mykey1 (สงั เกตว่าถ ้า
พิมพ์เองให ้พิมพ์ด ้วยตัวเล็กตลอด) หรือกดปุ่ ม F3 เพือ ื่ ทีต
่ เปิ ดรายชอ ่ งั ้ ไว ้ในแฟ้ มนัน
้ ขึน
้ มาแสดง
บนจอ แล ้วให ้ดับเบิล
้ คลิกทีช ื่ ทีต
่ อ ่ ้องการ (หรือคลิกปุ่ ม OK) แล ้วกดปุ่ ม Enter เพือ
่ รับสูตร
=MyKey1 ลงไปในเซลล์ จะได ้คําว่า Excel Expert Training แสดงในเซลล์นัน

Copyright of www.ExcelExpertTraining.com 
58 

ื่ ทีเ่ ป็ น Range Name หรือ Formula Name มีขน


หมายเหตุ ชอ ั ้ ตอนการใชช้ อ
ื่ เหมือนกับ
่ กัน
Constant Name เชน

การตงช ื่ Range Name


ั้ อ

ื่ ทีต
Range Name เป็ นชอ ่ งั ้ ให ้กับเซลล์เดียวหรือพืน
้ ทีต
่ าราง (ทีม
่ พ
ี น
ื้ ทีต
่ ด
ิ กันหรือไม่ตด
ิ กันก็ได ้)
ซงึ่ มีวธิ ต ื่ ได ้หลายวิธ ี ดังนี้
ี งั ้ ชอ

1. วิธใี ช ้ Name Box เป็ นชอ


่ งด ้านซายมื
้ อของ Formula Bar วิธน
ี เี้ ป็ นวิธต ื่ ทีง่ า่ ยทีส
ี งั ้ ชอ ่ ด
ุ แต่
ใชกั้ บการตัง้ ชอ
ื่ ได ้อย่างเดียว ไม่สามารถใช ้ Name Box เพือ ื่ ทิง้
่ แก ้ไขหรือลบชอ

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 

่ ง Refers to: นี)้ จากนัน


ไว ้ในชอ ้ ให ้เลือกพืน
้ ทีต
่ ารางทีต
่ ้องการแล ้วกดปุ่ ม OK เพือ ื่
่ รับชอ

้ า
3. วิธใี ชค ํ สง่ ั Formulas > Create from selection (Excel 2003 ใชค
้ า
ํ สง่ ั Insert
> Name > Create) วิธน ี้ ว่ ยนํ าข ้อความทีอ
ี ช ่ ยูข ื่ ให ้กับพืน
่ อบตารางมาตัง้ เป็ นชอ ้ ทีต
่ าราง
ในฝั่ งตรงข ้ามกับข ้อความนัน
้ เริม
่ จากคลิกเลือกพืน
้ ทีต
่ ารางทีต ื่ โดยให ้เลือก
่ ้องการตัง้ ชอ
รวมทัง้ พืน
้ ทีห ้ ใชคํ้ าสงั่ Formulas > Create from Selection จะพบ
่ วั ตารางไว ้ด ้วย จากนัน
หน ้าจอต่อไปนีเ้ ปิ ดขึน
้ มา ให ้ดูวา่ ตรงตามต ้องการแล ้วกดปุ่ ม OK เพือ ื่
่ รับชอ

่ ง Left column ไว ้ให ้ เนือ


Excel เลือกชอ ้ ดของพืน
่ งจาก Column ซายสุ ้ ทีต
่ ารางทีเ่ ลือกนัน

ื่ พืน
มีตวั อักษรบันทึกไว ้ โดย Excel จะตัง้ ชอ ้ ทีต ื่ พืน
่ าราง C2:E2 ว่า Income และตัง้ ชอ ้ ที่
้ ดให ้ทันที ทัง้ นีข
ตาราง C3:E3 ว่า Cost ตามข ้อความใน Column ซายสุ ้ อให ้เข ้าใจด ้วยว่า
ื่ Income และ Cost เป็ นชอ
ชอ ื่ ที่ Excel ชว่ ยตัง้ ให ้เพียงครัง้ เดียวตอนทีใ่ ชคํ้ าสงั่ Create
้ และจะยังคงใชช้ อ
from selection นีเ้ ท่านัน ื่ นีอ
้ ยูโ่ ดยไม่เปลีย
่ นแปลงตามข ้อความใน

Column ซายที
อ ่ าจมีข ้อความต่างไปจากเดิมแต่อย่างใด

หากต ้องการขยายขอบเขตของ Range Name ให ้ใชวิ้ ธก


ี าร Insert Row หรือ Insert Column
หรือใชวิ้ ธท
ี ี่ 2 หรือวิธท
ี ี่ 3 ข ้างต ้นเพือ
่ เข ้าไปกําหนดขอบเขตพืน
้ ทีต
่ ารางใหม่ให ้มีขนาดใหญ่ขน
ึ้
ตามต ้องการ

Copyright of www.ExcelExpertTraining.com 
60 

Range Name ทีต ้ สามารถนํ าไปใชอ้ ้างอิงผ่านสูตรสําเร็จรูปของ Excel ได ้ทันที เชน


่ งั ้ ขึน ่ หาก
ื่ Income ให ้เริม
ต ้องการหายอดรวมของตัวเลขใน Range Name ชอ ่ สร ้างสูตรตามลําดับ
ต่อไปนี้

1. พิมพ์ =sum(
2. กดปุ่ ม F3 เพือ ื่ ทีต
่ แสดงรายชอ ่ งั ้ ไว ้ในแฟ้ ม (ในกรณีทต ื่ มาจากแฟ้ มอืน
ี่ ้องการนํ าชอ ่ ให ้ย ้าย
ไปอยูใ่ นแฟ้ มทีม
่ ช ื่ Range Name ทีต
ี อ ่ ้องการนัน
้ ก่อนแล ้วจึงกดปุ่ ม F3)
3. ดับเบิล
้ คลิกทีช ื่ Income จะได ้สูตร =sum(Income
่ อ
4. กดปุ่ ม Enter จะได ้สูตร =SUM(Income)

แต่ถ ้านํ า Range Name ไปใชอ้ ้างอิงโดยตรงโดยไม่ได ้ใชอ้ ้างอิงผ่านสูตรสําเร็จรูปของ Excel


ื่ ให ้กับตารางทีม
จะพบว่าหากตัง้ ชอ ่ เี ซลล์ตงั ้ แต่ 2 เซลล์ขน ื่ นัน
ึ้ ไป ชอ ้ ้เฉพาะในแนว
้ จะนํ ามาใชได
คูข
่ นานกับแนวพืน
้ ทีต
่ ารางทีต ื่ ไว ้เท่านัน
่ งั ้ ชอ ่ หากตัง้ ชอ
้ เชน ื่ ตัวเลขหัวตารางในตําแหน่งจาก
ื่ ตัวเลขข ้างตารางตําแหน่งจาก B3:B5 ว่า Left จะสง่ ผลให ้ใชสู้ ตร
C2:F2 ว่า Top และตัง้ ชอ
=Top*Left คํานวณหาคําตอบได ้เฉพาะในขอบเขตตารางทีแ
่ นวคูข
่ นานของ Top ตัดกับ Left
คือพืน
้ ทีต
่ ารางตัง้ แต่ C3:F5 โดยสูตรนอกแนวคูข
่ นานจะไม่คํานวณแต่คน
ื ค่าเป็ น Error
#VALUE!

วิธต
ี งช ื่ ตําแหน่งอ้างอิงแบบไร้ขอบเขตจําก ัด
ั้ อ

ขอย ้อนนํ าตัวอย่างการคํานวณทีต ื่ หัวตารางด ้านบนว่า Top มาคูณกับหัวตารางด ้านซายที


่ งั ้ ชอ ้ ต ่ งั ้
ื่ ว่า Left โดยใชสู้ ตร =Top*Left มาวิเคราะห์อย่างละเอียดว่า ด ้วยเหตุใดสูตร =Top*Left
ชอ
จึงสามารถคํานวณหาคําตอบได ้เฉพาะพืน ่ ารางในสว่ นทีต
้ ทีต ่ ด
ั กันของแนวคูข
่ นานของ Top ตัด
้ สว่ นพืน
กับ Left เท่านัน ้ ทีต
่ ารางนอกขอบเขตแนวทีต
่ ด
ั กันจะให ้คําตอบเป็ น Error

Copyright of www.ExcelExpertTraining.com 
61 

่ ใชคํ้ าสงั่ Formulas > Name Manager ย ้อนไปตรวจสอบตําแหน่งอ ้างอิงที่ Excel


เมือ
กําหนดให ้กับตําแหน่งอ ้างอิงทีม
่ ช ื่ ว่า Top กับ Left จะพบว่า เป็ นตําแหน่งอ ้างอิงแบบ
ี อ
Absolute โดยมีเครือ
่ งหมาย $ ควบคุมตําแหน่งทัง้ แนว Row และ Column ตามรูปต่อไปนี้

• ื่ Top มีตําแหน่งอ ้างอิง Refers to: =Sheet1!$C$2:$F$2


ตําแหน่งอ ้างอิงชอ
• ื่ Left มีตําแหน่งอ ้างอิง Refers to: =Sheet1!$B$3:$B$5
ตําแหน่งอ ้างอิงชอ

ด ้วยสาเหตุทต
ี่ ําแหน่งอ ้างอิงถูกควบคุมด ้วยเครือ
่ งหมาย $ ทัง้ แนว Row และ Column นีเ่ องที่
ทําให ้เกิดการจํากัดขอบเขตให ้ใชสู้ ตรอ ้างอิงถึงชอ
ื่ Top กับ Left ได ้เฉพาะในแนวคูข
่ นาน

ดังนัน
้ หากคุณเข ้าใจถึงเหตุและผลตามทีไ่ ปทีม ้ อ
่ าดังกล่าวข ้างต ้น จะสามารถเลือกใชเครื ่ งหมาย
$ ในการกําหนดขอบเขตแบบไม่จํากัดได ้ โดยปรับตําแหน่งเครือ
่ งหมาย $ ตามหลักต่อไปนี้

• หากต ้องการให ้กําหนดตําแหน่งอ ้างอิงให ้หมายถึง ทุกเซลล์ในแนวนอน ให ้ใช ้


ตําแหน่งอ ้างอิงจากเซลล์เดียวตามแนวคูข ี่ ะใชช้ อ
่ นานกับเซลล์ทจ ื่ นัน
้ และใส่
เครือ ่ C$2
่ งหมาย $ ควบคุมตําแหน่งเฉพาะ Row เชน
• หากต ้องการให ้กําหนดตําแหน่งอ ้างอิงให ้หมายถึง ทุกเซลล์ในแนวตงั้ ให ้ใชตํ้ าแหน่ง
อ ้างอิงจากเซลล์เดียวตามแนวคูข ี่ ะใชช้ อ
่ นานกับเซลล์ทจ ื่ นัน
้ และใสเ่ ครือ
่ งหมาย $
่ $B3
ควบคุมตําแหน่งเฉพาะ Column เชน
• หากต ้องการให ้กําหนดตําแหน่งอ ้างอิงให ้หมายถึง ทุกแนว ให ้ใชตํ้ าแหน่งอ ้างอิงจาก
เซลล์เดียวตามแนวคูข ี่ ะใชช้ อ
่ นานกับเซลล์ทจ ้ และไม่ใสเ่ ครือ
ื่ นัน ่ งหมาย $

Copyright of www.ExcelExpertTraining.com 
62 

• หากต ้องการให ้ตําแหน่งอ ้างอิงใชได ี ก็ไม่ต ้องระบุชอ


้ ้กับทุกชท ื่ ชท
ี นํ าหน ้าตําแหน่ง

อ ้างอิงแต่ต ้องทิง้ เครือ


่ งหมาย ! ไว ้ด ้วยเพือ
่ หมายถึงทุกชท ่ !I5
ี เชน

่ งจากตําแหน่งอ ้างอิงแบบทีไ่ ม่ได ้ใส่ $ แบบ Absolute นี้ จะย ้ายตําแหน่งไปตามแนวคูข


เนือ ่ นาน
ู รทีใ่ ช ้ ดังนัน
กับตําแหน่งเซลล์สต ่ ะใชคํ้ าสงั่ Formulas > Name Manager เข ้าไป
้ ก่อนทีจ
่ ง Refers to: ไว ้
ี่ ้างถึงในชอ
กําหนดตําแหน่ง คุณจะต ้องเลือกเซลล์ในแนวเดียวกับเซลล์ทอ
ล่วงหน ้าเสมอ ตามรูปตัวอย่างต่อไปนี้

ื่ TopRow และ LeftColumn (หรือชอ


1. หากต ้องการตัง้ ชอ ื่ ใดก็ได ้ตามใจชอบ) ให ้มี
ตําแหน่งอ ้างอิงทีห
่ มายถึงทุกเซลล์ใน Row 2 และทุกเซลล์ใน Column B ตามลําดับ
1.1. ให ้คลิกเลือกเซลล์ C3 ไว ้ก่อนแล ้วจึงสงั่ Formulas > Name Manager
ื่ TopRow ให ้มีตําแหน่งอ ้างอิง Refers to: =Sheet1!C$2
1.2. ตัง้ ชอ
ื่ LeftColumn ให ้มีตําแหน่งอ ้างอิง Refers to: =Sheet1!$B3
1.3. ตัง้ ชอ
ื่ Sum3Above (หรือชอ
2. หากต ้องการตัง้ ชอ ื่ ใดก็ได ้ตามใจชอบ) ให ้ทําหน ้าทีห
่ ายอดรวม
ของเซลล์ 3 เซลล์ทอ ้ ไปจากเซลล์ทใี่ ชช้ อ
ี่ ยูเ่ หนือขึน ื่ นีอ
้ ยูโ่ ดยเว ้นเซลล์ทต
ี่ ด
ิ กับเซลล์สต
ู ร
2.1. ให ้คลิกเลือกเซลล์ C13 ไว ้ก่อนแล ้วจึงสงั่ Formulas > Name Manager
ื่ Sum3Above ให ้มีตําแหน่งอ ้างอิง Refers to: =SUM(Sheet1!C9:C11)
2.2. ตัง้ ชอ
ื่ Left2 (หรือชอ
3. หากต ้องการตัง้ ชอ ื่ ใดก็ได ้ตามใจชอบ) ให ้ทําหน ้าทีห
่ าค่าจากเซลล์ทอ
ี่ ยู่
้ ดไป 2 เซลล์จากเซลล์ทใี่ ชช้ อ
ด ้านซายถั ื่ นีอ ่ ละให ้ใชกั้ บทุกชท
้ ยูแ ี ได ้ด ้วย
3.1. ให ้คลิกเลือกเซลล์ G10 ไว ้ก่อนแล ้วจึงสงั่ Formulas > Name Manager
ื่ Left2 ให ้มีตําแหน่งอ ้างอิง Refers to: =!E10
3.2. ตัง้ ชอ

Copyright of www.ExcelExpertTraining.com 
63 

การตงช ื่ Formula Name


ั้ อ

ในความเป็ นจริงนัน
้ ทัง้ 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 

สมมติวา่ สร ้างสูตร =C2-C3 เอาไว ้ในเซลล์ C4 เป็ นตัวเลขกําไรขัน ้ ปใช ้


้ ต ้น แล ้ว Copy สูตรนีไ
ในเซลล์ตงั ้ แต่ C4:E4 จากนัน ื่ Income และ Cost เป็ น Range Name ให ้กับ
้ ต่อมาได ้ตัง้ ชอ
พืน
้ ทีต
่ ารางตัง้ แต่ C2:E2 และ C3:E3 ตามลําดับ หากต ้องการให ้สูตรในเซลล์ C4:E4 เปลีย
่ นไป
ื่ ทีต
เป็ นสูตร =Income-Cost ตามชอ ่ งั ้ ขึน ้ ที่ C4:E4 แล ้วสงั่ Formulas
้ ในภายหลัง ให ้เลือกพืน
> Define Name > Apply Names (Excel 2003 สงั่ Insert > Name > Apply) แล ้ว
ื่ Income และ Cost (ซงึ่ Excel มักจะเลือกชอ
เลือกชอ ื่ ทีเ่ กีย
่ วข ้องกับสูตรในพืน
้ ที่ C4:E4 ให ้
เอง) จากนัน
้ กดปุ่ ม OK

เคล็ดล ับอืน
่ ๆทีค
่ วรทราบเกีย ื่ ทีบ
่ วก ับชอ ่ อกตําแหน่ง

่ ง Name Box แสดงได ้เฉพาะชอ


1. ชอ ื่ Range Name ทีอ
่ ยูใ่ นแฟ้ มนัน
้ เท่านัน

2. การค ้นหาตําแหน่งเซลล์หรือตารางทีต ื่ ไว ้ ให ้ใช ้ Name Box หรือกดปุ่ ม F5 เพือ
่ งั ้ ชอ ่ เลือก
ื่ ทีแ
ชอ ื่ ทีท
่ สดงไว ้หรือพิมพ์ชอ ่ ราบลงไปเองก็ได ้
ื่ ตําแหน่งอ ้างอิงไปใชที
3. หากต ้องการ Copy ชอ ้ แ่ ฟ้ มอืน ื่ แบบเดียวกัน ให ้เลือก Copy
่ ให ้มีชอ
พืน
้ ทีต ่ วข ้องและสูตรไปด ้วยกัน (ซงึ่ หมายถึง พืน
่ ารางทัง้ หมดทีเ่ กีย ้ ทีต
่ ารางทีร่ ะบุไว ้ใน
ตําแหน่งอ ้างอิง และเซลล์สต
ู รทีอ ื่ ตําแหน่งอ ้างอิงซงึ่ อยูใ่ นพืน
่ ้างถึงชอ ้ ทีท
่ เี่ ลือกนัน
้ ด ้วย)
จากนัน
้ ให ้ Paste ลงไปในแฟ้ มใหม่ตามตําแหน่งเดิมของพืน
้ ทีต
่ ารางที่ Copy มา แล ้วจึง
สงั่ ย ้ายไปทีอ
่ น
ื่ ในภายหลังตามต ้องการ
ื่ ได ้หลายชอ
4. เซลล์เดียวมีชอ ื่ แต่ชอ
่ ง Name Box แสดงชอ
ื่ แรกทีต ่
่ งั ้ ตามลําดับตัวอักษร เชน
ื่ Range Name ไว ้หลายชอ
เซลล์ A1 ตัง้ ชอ ื่ ทัง้ Income, Sales, และ Revenue จะพบว่า
เมือ ่ ง Name Box จะแสดงว่ามีชอ
่ คลิกเข ้าไปทีเ่ ซลล์ A1 ในชอ ื่ ว่า Income เพราะตัวอักษร I
ื่ ใน Name Box จะพบชอ
มาก่อนตัวอักษร R หรือ S แต่ถ ้าไล่ดรู ายชอ ื่ อืน
่ แสดงไว ้ด ้วย
ื่ Range Name กับตําแหน่งอ ้างอิงในชอ
5. ตัวชอ ่ ง Refers to: ไม่จําเป็ นต ้องอยูใ่ นแฟ้ ม
ื่ ไว ้ในแฟ้ มหนึง่ แต่กําหนดให ้ตําแหน่ง Refers to: ไปอยู่
เดียวกันก็ได ้ โดยเราสามารถตัง้ ชอ
่ ได ้ โดยใช ้ Mouse คลิกเลือกตําแหน่งตารางในแฟ้ มอืน
ในแฟ้ มอืน ่ ก็จะได ้ตําแหน่งทีต
่ ้องการ
มาใสใ่ นชอ
่ ง Refers to: ให ้เอง
6. หาก Cut ตารางทีต ื่ Range Name เอาไว ้ไปวางไว ้ในแฟ้ มอืน
่ งั ้ ชอ ื่ Range
่ จะทําให ้ตัวชอ
่ ง Refers to: จะย ้ายตามไปทีแ
Name ยังอยูใ่ นแฟ้ มเดิม แต่ตําแหน่งอ ้างอิงในชอ ่ ฟ้ มอืน

่ ง Name Box ไม่แสดงชอ
และยังสง่ ผลให ้ชอ ื่ Range Name นัน ื่
้ อีกต่อไป (โดยยังคงดูชอ
ทุกประเภทได ้จากคําสงั่ Formulas > Name Manager)

Copyright of www.ExcelExpertTraining.com 
65 

7. หากต ้องการหาค่า ณ ตําแหน่งเซลล์ทต


ี่ ด
ั กันของตารางทีต ื่ ไว ้ (Intersection) ให ้ใช ้
่ งั ้ ชอ
สูตรทีม
่ เี ครือ
่ งหมายวรรคคัน ื่ เชน
่ ระหว่างชอ ่ =Top Left จะได ้ค่าจากเซลล์ทท
ี่ ต
ี่ ําแหน่งตัด
กันของ Top ตัดกับ Left
8. หากต ้องการสร ้างสูตรทีอ
่ ้างถึงตําแหน่งอ ้างอิงในตารางโดยตรง โดยไม่ต ้องการให ้สูตรที่
้ ใชช้ อ
เกิดขึน ื่ Range Name ให ้เริม
่ จากเลือกเซลล์ตงั ้ แต่ 2 เซลล์ขน
ึ้ ไปไว ้ก่อนแล ้วจึงพิมพ์
= แล ้วคลิกเลือกเซลล์ จะได ้สูตรทีม
่ ต ื่ Range Name
ี ําแหน่งอ ้างอิงโดยไม่อ ้างถึงชอ
9. Formula Name ทีใ่ ชตํ้ าแหน่งอ ้างอิงทีไ่ ม่ใช ่ Absolute Reference ในบางกรณีจะไม่
่ นไป ซงึ่ แก ้ไขได ้โดยปรับสูตรให ้คํานวณร่วมกับสูตร Now()
คํานวณตามค่าตัวแปรทีเ่ ปลีย
่ Sum3Above ใช ้ Refers to: =SUM(Sheet1!C9:C11)*Now()/Now()
หรือ Today() เชน
ื่ ทีต
10. ชอ ่ งั ้ ไว ้จะถูกเก็บไว ้ในแฟ้ มทีใ่ ชตั้ ง้ ชอ
ื่ เท่านัน
้ หากต ้องการทําให ้แฟ้ มใหม่มช ื่ ทีต
ี อ ่ งั ้ ไว ้
ู รทีใ่ ชช้ อ
แบบเดียวกับแฟ้ มเดิม ให ้ Copy เซลล์สต ื่ ในการอ ้างอิงถึงตําแหน่งเซลล์ไปพร ้อม
กับเซลล์ทถ
ี่ ก ื่ ไว ้ไปด ้วยกัน และในการสงั่ Paste ในแฟ้ มใหม่ ต ้อง Paste ลงไปใน
ู ตัง้ ชอ
ื่ และมีตําแหน่งอ ้างอิงถูกต ้องตามแฟ้ มเดิม
ตําแหน่งเดิมด ้วย จึงจะทําให ้แฟ้ มใหม่เกิดชอ

Copyright of www.ExcelExpertTraining.com 
66 

้ ต
การใชส ู รปร ับตําแหน่งอ้างอิง

คําอธิบายจากนีไ
้ ปจะมีประโยชน์ตอ
่ เมือ
่ คุณมีพน
ื้ ฐานมาก่อนแล ้วว่าตําแหน่งอ ้างอิงมีประโยชน์
้ ํ้าโดยการ Copy หรือโดยการตัง้ ชอ
อย่างไรและจะนํ าตําแหน่งอ ้างอิงไปใชซ ื่ ตําแหน่งอ ้างอิงได ้
อย่างไร ซงึ่ การนํ าตําแหน่งอ ้างอิงไปใชซ
้ ํ้าตามวิธท
ี ใี่ ชกั้ นโดยทัว่ ไป คุณต ้องเสย
ี แรงเสย
ี เวลา
Copy หรือต ้องสร ้างสูตรใหม่ทก
ุ ครัง้ จึงเป็ นเรือ
่ งน่าคิดว่าจะมีวธิ ใี ดบ ้างทีจ
่ ะทําให ้ตําแหน่ง
อ ้างอิงเดิมทีม
่ อ ่ รับตําแหน่งได ้เองโดยคุณไม่ต ้องเข ้าไปยุง่ เกีย
ี ยูป ่ วแก ้ไขสูตรใหม่อก
ี เลย

วิธท ้ ต
ี ี่ 1 : ใชส ู ร Indirect(“Text บอกตําแหน่ง”) แบบเซลล์เดียว

ลองนึกดูซวิ า่ ถ ้าเดิมคุณสร ้างสูตรเพือ


่ ดึงค่าจากเซลล์ A1 มาใชด้ ้วยสูตร =A1 จากนัน
้ หาก
ต ้องการทําให ้สูตรในเซลล์เดิมนั่นแหละ ดึงค่าจากเซลล์ A2 มาแทน จะทําได ้อย่างไรโดยไม่
ต ้องย ้อนกลับไปแก ้ไขสูตรให ้เปลีย
่ นเป็ น =A2 แต่อย่างใด

แทนทีจ
่ ะสร ้างสูตรตรงๆลงไปว่า =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 

เซลล์ C4 และ C5 หรือจะใชวิ้ ธพ


ี ม
ิ พ์ตําแหน่งเซลล์ทต
ี่ ้องการลงไปเองโดยตรงในเซลล์ C6 เลย

ก็ได ้ เชน

• ถ ้าพิมพ์คําว่า a2 ลงไปในเซลล์ C6 ก็จะได ้คําตอบในเซลล์ C7 เท่ากับค่าจากเซลล์ a2


• ถ ้าพิมพ์คําว่า a3 ลงไปในเซลล์ C6 ก็จะได ้คําตอบในเซลล์ C7 เท่ากับค่าจากเซลล์ a3
• ถ ้าพิมพ์คําว่า sheet3!a2 ลงไปในเซลล์ C6 ก็จะได ้คําตอบในเซลล์ C7 เท่ากับค่าจาก
เซลล์ a2 แต่คราวนีม ี ชอ
้ าจากชท ื่ Sheet3 เป็ นสูตรดึงค่าข ้ามชท
ี ตามชอ
ื่ ชท
ี ทีต
่ ้องการ

วิธท ้ ต
ี ี่ 2 : ใชส ้ า
ู ร Indirect(“Text บอกตําแหน่ง”) แบบใชต ํ แหน่ง
ขอบเขตตาราง

วิธน
ี ม
ี้ ห ี รกทีใ่ ชตํ้ าแหน่งอ ้างอิงจากเซลล์เดียว เพียงแต่ตําแหน่งอ ้างอิงแบบ
ี ลักการคล ้ายกับวิธแ
ขอบเขตตารางต ้องอยูใ่ นโครงสร ้างของ ตําแหน่งเซลล์ตน
้ ทาง:ตําแหน่งเซลล์ปลายทาง
่ A1:A3 จากนัน
เชน ้ จึงนํ าตําแหน่งอ ้างอิงทีไ่ ด ้ไปใชกั้ บสูตร Indirect

สมมติวา่ คุณต ้องการหาผลรวมของตัวเลขในเซลล์ A1:A3 ซงึ่ ปกติต ้องใชสู้ ตร =Sum(A1:A3)


ซงึ่ สูตรนีย
้ งั ไงๆก็จะหาผลรวมจากเซลล์ A1:A3 ไปตลอด แต่ถ ้าต ้องการให ้หายอดรวมจากเซลล์
ใดก็ได ้ถึงเซลล์ใดก็ได ้ล่ะ จะสร ้างสูตรอย่างไรครัง้ เดียวแล ้วไม่ต ้องแก ้ไขสูตรอีกเลยในภายหลัง

จากภาพข ้างต ้น มี Text ทีบ


่ อกตําแหน่งเซลล์ต ้นทาง a1 ในเซลล์ C6 ตรงกับตัวอย่าง Indirect

แบบเซลล์เดียว เพียงแต่คราวนีใ้ ห ้ใชเซลล์ E4, E5, และ E6 สําหรับสร ้าง Text ทีบ
่ อกตําแหน่ง
ของเซลล์ปลายทาง a3

จากนัน ้
้ ใชเซลล์ ื่ มต่อกับเครือ
D8 นํ าตําแหน่งเซลล์ต ้นทางมาเชอ ื่ มต่อกับ
่ งหมาย : แล ้วเชอ
ตําแหน่งเซลล์ปลายทางด ้วยสูตร =C6&”:”&E6 จะได ้ค่า a1:a3

Copyright of www.ExcelExpertTraining.com 
68 

่ อกตําแหน่งในเซลล์ D8 ไปใชร่้ วมกับสูตร Sum


หากต ้องการหายอดรวมก็สามารถนํ า Text ทีบ
่ เซลล์ D9 ใชสู้ ตร =Sum(Indirect(D8)) จะหายอดรวมตัวเลขจากตารางใน
และ Indirect เชน
ขอบเขตทีต
่ ้องการ

นอกจากนีแ ่ ะนํ าค่าในเซลล์ D8 ซงึ่ มีสต


้ ทนทีจ ู รเป็ น =C6&”:”&E6 ไปใชต่้ อในสูตร Sum เพือ

หาผลรวม เรายังสามารถนํ าขอบเขตตําแหน่งอ ้างอิงทีไ่ ด ้นีไ ้ ตรอืน
้ ปใชในสู ่ เดียวกัน
่ ได ้เชน
เพียงแต่ต ้องใชสู้ ตร Indirect นํ าหน ้าตําแหน่งอ ้างอิงไว ้เสมอ เชน
่ =Max(Indirect(D8)),
=Min(Indirect(D8)), =Average(Indirect(D8)), =Index(Indirect(D8),2,1) เป็ นต ้น

ยิง่ กว่านัน ื่ เป็ น


้ หากนํ าสูตร =$C$6&”:”&$E$6 หรือ =Indirect($C$6&”:”&$E$6) ไปตัง้ ชอ
ื่ อืน
Formula Name ว่า MyRange1 และ MyRange2 ตามลําดับ (หรือชอ ่ ใดก็ได ้ โดยตําแหน่ง
้ Formula Name ต ้องกําหนดตําแหน่งแบบ Absolute จึงจะหาค่าได ้ถูกต ้อง) จะ
อ ้างอิงทีใ่ ชใน
ชว่ ยให ้การนํ าตําแหน่งอ ้างอิงไปใชต่้ อได ้สะดวกขึน ่ จากเดิมต ้องใชสู้ ตร
้ เชน
=Sum(Indirect(D8)) ก็จะเทียบเท่ากับสูตร =Sum(Indirect(MyRange1)) หรือ
=Sum(MyRange2) ซงึ่ นอกเหนือจากจะเป็ นสูตรทีด
่ ด
ู ก
ี ว่ามากแล ้วยังไม่ขน
ึ้ กับค่าในเซลล์ D8
ทีอ
่ าจถูกแก ้ไขอย่างพลัง้ เผลอให ้ผิดเพีย
้ นไปในภายหลังได ้อีกด ้วย

วิธท ้ ต
ี ี่ 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 ลงไปตามลําดับ

• เซลล์ D9 หายอดรวมของ Chonburi ได ้โดยใชสู้ ตร =Sum(Indirect(C9))


• เซลล์ D10 หายอดรวมของ Year2 ได ้โดยใชสู้ ตร =Sum(Indirect(C10))
• เซลล์ E9 หาค่าของ Chonburi ในปี Year2 ได ้โดยใชสู้ ตรหาค่าแบบ Intersection
=Indirect(C9) Indirect(C10)

้ ต
ข้อควรระว ังในการใชส ู ร Indirect

สูตรทุกสูตรของ Excel มีทงั ้ ข ้อดีและข ้อด ้อย สูตรบางสูตรทีพ ้


่ วกเราชอบใชเพราะเป็ นสูตรที่
ั ้ ๆ แต่กลับทําให ้ Excel ทํางานชาลงก็
เขียนสน ้ ่ สูตร VLookup เป็ นต ้น) ซงึ่ สูตร Indirect
ม ี (เชน
ก็มข
ี ้อควรระวังอยูด
่ ้วยกล่าวคือ สูตร Indirect สามารถ link ข ้อมูลข ้ามแฟ้ มได ้ แต่แฟ้ มต ้นทาง
้ พร ้อมกับแฟ้ มปลายทางทีใ่ ชสู้ ตรนีอ
ต ้องเปิ ดขึน ้ ยู่ และเป็ นสูตรหนึง่ ทีถ
่ อ
ื เป็ น Volatile Function

ื่ เรียกประเภทของสูตร ทีจ
Volatile Function เป็ นชอ ่ ะทําการคํานวณใหม่ทก
ุ ครัง้ ตามการคํานวณ
ทีเ่ กิดขึน
้ ในแฟ้ ม ทัง้ ๆทีเ่ ซลล์สต
ู รนัน
้ ไม่ได ้มีตําแหน่งอ ้างอิงทีส ั พันธ์กบ
่ ม ั เซลล์อน
ื่ มีการคํานวณ
แม ้แต่น ้อย (ตามปกติสต
ู รจะคํานวณใหม่ตามต่อเมือ
่ มีเซลล์อน
ื่ ทีม
่ ต
ี ําแหน่งอ ้างอิงเกีย
่ วข ้องเกิด
การคํานวณเท่านัน ้ หากใชสู้ ตรทีท
้ ) ดังนัน ่ ําหน ้าทีแ
่ บบ Volatile นีม
้ ากไปจะทําให ้แฟ้ มคํานวณ

ชาลง แต่ถ ้ามีการใชสู้ ตรเพียงไม่กเี่ ซลล์ก็ไม่สง่ ผลเท่าใดนัก

สูตรทีจ
่ ัดเป็ นประเภท Volatile Function ได ้แก่ สูตร Areas, Cell, Column, Columns,
Indirect, Info, Now, Offset, Rand, Row, Rows, Today

วิธท ้ ต
ี ี่ 4 : ใชส ู รเพือ
่ ย้ายตําแหน่งอ้างอิงโดยอ ัตโนม ัติ

แม ้สูตร Indirect ชว่ ยทําให ้สามารถเปลีย


่ นตําแหน่งอ ้างอิงได ้ก็ตาม แต่คณ
ุ ยังคงต ้องเป็ นผู ้
กําหนดตําแหน่งใหม่ลงไปเองทุกครัง้ ซงึ่ Excel ยังมีสต
ู รอืน
่ อีกมากมายทีท
่ ําหน ้าทีเ่ ปลีย
่ นย ้าย
่ ทีส
ตําแหน่งอ ้างอิงได ้เชน ่ ต
ู ร Indirect ทําได ้ แถมยังมีความสามารถเหนือกว่าเพราะสามารถ
เปลีย
่ นย ้ายตําแหน่งอ ้างอิงตามเงือ
่ นไขทีก
่ ําหนดหรือจะกําหนดให ้เปลีย
่ นย ้ายตําแหน่งโดย
อัตโนมัตไิ ด ้อีกด ้วย

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 คํานวณผิดพลาด” นีเ่ ป็ นประเด็น


สําคัญของคําเตือนทีแ
่ สดงขึน
้ บนจอ

ทีน
่ ่ากลัวทีส
่ ด ื คนบางคนทีใ่ ช ้ 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 

ในการดําเนินงานทางธุรกิจ มีงานหลายประเภทซงึ่ อาจมีเงือ


่ นไขทีจ
่ ําเป็ นต ้องสร ้างสูตรทีม
่ ก
ี าร

กําหนดตําแหน่งอ ้างอิงแบบวงกลม อาทิเชน

• ในเงือ ิ ค ้า ซงึ่ นํ าค่าใชจ่้ ายทัง้ ทางตรงและทางอ ้อมมา allocate


่ นไขการคํานวณต ้นทุนสน
ิ ค ้า จากนัน
เป็ นต ้นทุนของสน ิ ค ้านัน
้ หากสน ้ นวัตถุดบ
้ กลับไปใชเป็ ิ ค ้าอืน
ิ ให ้กับสน ่ แล ้ว
ิ ค ้าอืน
สุดท ้ายก็นําสน ่ นัน ้ นองค์ประกอบร่วมกับสน
้ มาใชเป็ ิ ค ้าเดิมอีก
• หากบริษัทรับจ่ายภาษี เงินได ้บุคคลธรรมดาแทนพนักงาน ซงึ่ ตามกฎเกณฑ์ทางภาษี
อากรกําหนดให ้นํ าภาษี ทจ
ี่ า่ ยแทนนัน
้ นํ ามาบวกเป็ นเงินได ้เพิม
่ แล ้วเงินได ้รวมทีเ่ พิม
่ ขึน
้ นี้
ก็ต ้องนํ ากลับไปย ้อนคิดภาษี เงินได ้อีก
• ค่าใชจ่้ ายบางรายการ อาจมีข ้อกําหนดทางภาษี วา่ ห ้ามนํ ามาหักภาษี ซํ้าอีก แต่คา่ ใชจ่้ าย
นัน
้ กลับมีฐานการคํานวณทีเ่ กิดขึน
้ จากกําไรสุทธิ
• ในกรณีของการกู ้เงิน ถ ้าบริษัทนํ าดอกเบีย
้ จ่ายเงินกู ้ไปเพิม
่ ยอดเงินทีต
่ ้องกู ้เพิม
่ ย่อมทํา
ให ้ต ้องจ่ายดอกเบีย
้ เพิม
่ และทําให ้ต ้องกู ้เพิม

• การของบประมาณค่าใชจ่้ ายทีก
่ ําหนดว่าจะให ้ตามอัตราร ้อยละของกําไร ซงึ่ ถ ้ากําไรเพิม

ก็จะทําให ้ได ้งบประมาณค่าใชจ่้ ายเพิม
่ แต่คา่ ใชจ่้ ายทีเ่ พิม ้ ย่อมสง่ ผลให ้กําไรลด
่ ขึน
และทําให ้ได ้งบประมาณค่าใชจ่้ ายลดลงตาม ซงึ่ กลับทําให ้กําไรเพิม
่ ขึน

• งานคํานวณอืน ่ การควบคุมให ้ Excel เพิม
่ ๆ เชน ่ ค่าตัวเลขครัง้ ละเท่าๆกัน โดยสร ้างสูตร
=Number+A1 ลงไปในเซลล์ A1 หรือการบันทึกประวัตต
ิ วั เลขสูงสุด โดยสร ้างสูตร
=Max(A1,NumberRange) ลงไปในเซลล์ A1

่ ะใชสู้ ตรทีม
หมายเหตุ แทนทีจ ี ําแหน่งอ ้างอิงแบบวงกลม ซงึ่ ทําให ้แฟ้ มนัน
่ ต ้ มีระบบการคํานวณ
่ ้องสงั่ ให ้ 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 แล ้วจะพบตําแหน่งเซลล์ทเี่ กีย

่ ต ้องการให ้ Excel ยอมรับการคํานวณแบบ Circular Reference ให ้สงั่ File > Options


3. เมือ
่ ง Enable iterative calculation (Excel 2003 สง่ั Tools > Options
> Formulas > กาชอ

Copyright of www.ExcelExpertTraining.com 
74 

่ ง Iteration)
> Calculation > กาชอ

่ ง Maximum Iterations และชอ


4. ชอ ่ ง Maximum Change นัน
้ ไม่จําเป็ นต ้องเข ้าไปแก ้ไข
ตัวเลขใดๆ ซงึ่ 2 ชอ
่ งนีท ่ งั่ ให ้ Excel คํานวณสูงสุดถึง 100 ครัง้ หรืออาจไม่ถงึ 100
้ ําหน ้าทีส
ครัง้ ก็ได ้โดยให ้คํานวณจนกว่าจะพบว่า คําตอบทีค
่ ํานวณได ้ในแต่ละรอบให ้ค่าแตกต่างกัน
น ้อยกว่า .001 ก็จะหยุดคํานวณ ซงึ่ การคํานวณเป็ นรอบดังกล่าวนีจ
้ ะเกิดขึน
้ ทันทีทม
ี่ ก
ี าร
สร ้างสูตรนัน
้ เสร็จแล ้วกดปุ่ ม Enter รับสูตรลงไปหรือเมือ
่ มีการกดปุ่ ม F9
่ สงั่ ให ้ Excel คํานวณ
เพือ
4.1. ให ้เพิม ่ ง Maximum Iterations เมือ
่ ตัวเลขจํานวนรอบสูงสุดในชอ ่
พบว่าทุกครัง้ ทีก ่ สงั่ คํานวณ จะได ้ตัวเลขคําตอบต่างจาก
่ ดปุ่ ม F9 เพือ
เดิมไปเสมอ ซงึ่ หากเพิม ่ งนีแ
่ ตัวเลขในชอ ้ ล ้วกดปุ่ ม F9 พบว่าตัวเลขผลจากการคํานวณ
ไม่เปลีย
่ นแปลงต่อไปอีก ย่อมแสดงว่าได ้คําตอบสุดท ้ายแล ้ว
่ ง Maximum Change ต่อเมือ
4.2. ให ้ปรับตัวเลขค่าความละเอียดในชอ ่ ต ้องการให ้ Excel
้ ซงึ่ ย่อมทําให ้ต ้องใชจํ้ านวนครัง้ ในชอ
คํานวณละเอียดขึน ่ ง Maximum Iterations
เพิม
่ ขึน
้ ตามไปด ้วย
5. หลังจากสงั่ คําสงั่ ตามข ้อ 3 แล ้ว จะไม่พบข ้อความหรือตําแหน่งเซลล์ทแ
ี่ สดงบนหน ้าจอตาม
ตําแหน่งต่างๆทีเ่ คยแสดงไว ้ตามข ้อ 2 อีกต่อไป แต่จะพบคําว่า Calculate แสดงค ้างอยูต
่ รง

ขอบจอด ้านล่างซายของโปรแกรม Excel แทน และขอให ้สงั เกตว่าทุกครัง้ ทีก
่ ดปุ่ ม F9 จะ
้ ายไปชวั่ ขณะหนึง่ แล ้วกลับมาแสดงใหม่ (โดยไม่เกีย
ทําให ้คําว่า Calculate นีห ่ วข ้องกับการ
สงั่ ให ้คํานวณแบบ Manual ทีจ
่ ะมีคําว่า Calculate แสดงขึน ่ กัน แต่เมือ
้ มาเชน ่ กดปุ่ ม F9
่ สงั่ คํานวณแบบ Manual จะทําให ้คําว่า Calculate หายไปโดยไม่กลับมาใหม่อก
เพือ ี )
6. ในกรณีทต
ี่ ้องการตรวจสอบทีไ่ ปทีม
่ าของสูตรทีม ี ารใชตํ้ าแหน่งอ ้างอิงแบบวงกลมว่ามี
่ ก
เซลล์ใดทีเ่ กีย ่ ง Enable iterative calculation ทิง้
่ วข ้องบ ้าง ให ้ย ้อนกลับไปต ัดกาชอ
ไป จากนัน
้ Excel จะแสดงตําแหน่งเซลล์ทเี่ กีย ่ ําสงั่ Formulas > Error
่ วข ้องไว ้ทีค
Checking > Circular References ซงึ่ เซลล์เหล่านัน
้ อาจจะเป็ นเซลล์สต
ู รทีส
่ ร ้างไว ้
อย่างตัง้ ใจหรือเผลอแก ้ไขสูตรให ้ต่างจากเดิมไปจนทําให ้เกิด Circular reference ขึน
้ ก็ได ้

Copyright of www.ExcelExpertTraining.com 
75 

จากนัน
้ ให ้ทยอยลบสูตรในเซลล์ดงั กล่าวทิง้ ไปทีละเซลล์ จนกว่าจะพบว่าเมือ
่ ลบสูตรใน
เซลล์ใดเสร็จแล ้ว ทําให ้ไม่เกิดคําเตือน Circular ต่อไปอีก หลังจากนัน
้ จึงไล่สร ้างสูตรใหม่
้ มาแทน ซงึ่ หลายๆครัง้ จะพบว่าต ้องไล่ลบสูตรในเซลล์ทงิ้ แล ้วต ้องสร ้างสูตรใหม่นับร ้อย
ขึน
นับพันเซลล์ทเี ดียว โดยเฉพาะตารางคํานวณทีต
่ ้องคํานวณรายการรายวันหรือรายเดือนต่อ
้ ผู ้ใช ้ Excel ทุกคนต ้องรู ้ตัวทันทีเมือ
กันไปเป็ นตารางขนาดใหญ่ ดังนัน ่ ตัวเองเผลอสร ้างสูตร
ทีม
่ ต
ี ําแหน่งอ ้างอิงแบบวงกลมขึน ี แรงเสย
้ มาเป็ นครัง้ แรก หากปล่อยไว ้ก็จะต ้องเสย ี เวลาไล่
ย ้อนมาแก ้ไขกันใหม่ทล
ี ะเซลล์
7. เซลล์ทท ่ ใี ห ้ต่างจากเซลล์อน
ี่ ําให ้เกิด Circular นี้ ควรใสส ื่ หรือทําเครือ
่ งหมายพิเศษ หรือ
เขียนอธิบายกํากับไว ้ด ้วยเพือ ้
่ เตือนผู ้ใชงานให ้แก ้ไขสูตรอย่างระมัดระวัง
ื่ แฟ้ มทีม
8. ควรตัง้ ชอ ่ ส
ี ต
ู รทีม
่ ต ื่ ทีส
ี ําแหน่งอ ้างอิงแบบวงกลมให ้มีชอ ่ ะดุดตา จะได ้ไม่เผลอเปิ ด
แฟ้ มทีต
่ ้องคํานวณแบบ Iterations นีข
้ น ้
ึ้ มาใชงานพร ้อมกับแฟ้ มอืน
่ เพราะแฟ้ มอืน
่ ๆจะรับ
คําสงั่ Iterations นีต
้ ามไปด ้วยโดยไม่จําเป็ น
9. หากปิ ดโปรแกรม Excel แล ้วเปิ ด Excel ขึน ่ ง Enable
้ มาใหม่ จะพบว่า Excel ตัดกาชอ
iterative calculation ทิง้ ไปให ้เสมอ

เคล็ดล ับอืน
่ ๆเกีย ้ ําแหน่งอ้างอิง
่ วก ับการใชต

ี จากตําแหน่งเซลล์เดียวกัน ให ้สร ้างสูตรหายอดรวมแบบ


1. ในกรณีต ้องการหายอดรวมทุกชท
3 มิต ิ ซงึ่ จะอยูใ่ นโครงสร ้างสูตร =SUM(ชอ
ื่ ชท
ี แรก:ชอ
ื่ ชท
ี สุดท ้าย!ตําแหน่งเซลล์) เชน

=SUM(Sheet1:Sheet3!A1) ทําหน ้าทีห
่ ายอดรวมของเซลล์ A1 ทีอ ี Sheet1 ถึง
่ ยูใ่ นชท
Sheet3 ดังนัน ี ใด ให ้ย ้ายชท
้ หากต ้องการให ้รวมข ้อมูลจากชท ี นัน
้ ไปวางไว ้ระหว่าง Sheet1
ถึง Sheet3
1.1. ให ้เลือกเซลล์คําตอบ พิมพ์ =sum(
ี แรกทีต
1.2. คลิกเซลล์ในชท ่ ้องการ
ี สุดท ้ายทีต
1.3. กดปุ่ ม Shift ค ้างไว ้แล ้วคลิกชท ่ ้องการ
1.4. กดปุ่ ม Enter
ี เว ้นชท
2. หากต ้องการหายอดรวมจากทุกชท ี ทีส
่ ร ้างสูตรนีล
้ งไป ให ้พิมพ์สต
ู ร =SUM('*'!
่ เมือ
ตําแหน่งเซลล์) เชน ี Sheet1 จะได ้สูตร
่ สร ้างสูตร =SUM('*'!A1) ลงไปในชท
=SUM(Sheet2:Sheet3!A1)

Copyright of www.ExcelExpertTraining.com 
76 

3. ในกรณีทต ี หนึง่ ๆให ้เป็ นหลายแบบ โดยไม่จําเป็ นต ้อง


ี่ ้องการปรับโครงสร ้างของตารางในชท
ี ใหม่สําหรับโครงสร ้างตารางแต่ละแบบ แต่ให ้ปรับโครงสร ้างในชท
สร ้างชท ี เดิมชท
ี เดียวนัน

แล ้วสงั่ ให ้ Excel จดจําโครงสร ้างหน ้าตาตารางโดยสงั่ View > Custom Views > Add
จากนัน ื่ หน ้าตาโครงสร ้างตารางนัน
้ ให ้ตัง้ ชอ ้ ลงไป แล ้วเมือ
่ ใดทีต
่ ้องการแสดงหน ้าตาตาราง
ื่ ใดให ้สงั่ View > Custom Views แล ้วเลือกชอ
ชอ ื่ View ทีเ่ คยตัง้ ชอ
ื่ ไว ้ (วิธน
ี ส
ี้ ามารถตัง้
ื่ View ข ้ามชท
ชอ ี ได ้ด ้วย ทําให ้ไม่ต ้องพึง่ ชอ
ื่ ชท
ี แถมยังชว่ ยปรับ Print settings และ Filter
settings ตามแบบทีก
่ ําหนดไว ้ในขณะทีต ื่ ให ้ทันที)
่ งั ้ ชอ
ี ทุกชท
4. ขอให ้ออกแบบชท ี ทีเ่ ก็บข ้อมูลประเภทเดียวกันไว ้ให ้ใชตํ้ าแหน่งเซลล์เดียวกันของ
ี โดยไม่ต ้องคํานึงว่าบางชท
ทุกชท ี จะมีข ้อมูลครบหรือไม่ จากนัน
้ ให ้สงั่ Hide รายการทีไ่ ม่ม ี
้ ออกไป และให ้ใช ้ Custom View ชว่ ยบันทึกแบบโครงสร ้างตารางทัง้ ก่อนและ
ข ้อมูลนัน
หลังการ Hide ไว ้ด ้วย
5. พยายามหลีกเลีย ้
่ งการใชเซลล์
ใดๆใน Column A และ Row 1 ทัง้ นีเ้ พือ
่ ทําให ้ภาพตารางที่
แสดงบนจอดูไม่อด
ึ อัด และยังสามารถปรับขนาดความสูงความกว ้างของ Column A และ
่ ชว่ ยปรับตําแหน่งตารางในหน ้ากระดาษพิมพ์ได ้ดีกว่าการกําหนด Margin แต่
Row 1 เพือ
เพียงอย่างเดียว
6. ห ้าม Merge เซลล์ทเี่ กีย
่ วข ้องกับการคํานวณ เพราะตําแหน่งอ ้างอิงในสูตรทีอ
่ ้างถึงเซลล์ท ี่
Merge กันไว ้นัน
้ อาจให ้ตําแหน่งอ ้างอิงทีค
่ ลาดเคลือ
่ นจากความเป็ นจริงเมือ
่ มีการ Copy
สูตรทีอ ้ เ่ ซลล์อน
่ ้างอิงถึงตําแหน่งเซลล์ท ี่ Merge ไปใชที ื่ ดังนัน
้ หากต ้องการปรับการแสดง
่ ลางชว่ งเซลล์เชน
ข ้อมูลให ้เห็นว่าอยูก ่ เดียวกับ Merge แต่วา่ เซลล์แต่ละเซลล์ยงั คงเป็ น
เซลล์ของมันเองโดยมิได ้รวมเป็ นเซลล์เดียวอย่าง Merge แต่อย่างใด ให ้เลือกชว่ งเซลล์นัน

แล ้วคลิกขวา สงั่ Format Cells > Alignment > Center Across Selection

7. ในกรณีทต ี หนึง่ ไปยังชท


ี่ ้องการ Cut ตารางจากชท ี อืน

หรือแฟ้ มอืน
่ ให ้เริม
่ จากเลือกพืน
้ ทีต
่ ารางทีต
่ ้องการจะ
Cut ไปทัง้ หมด (โดยต ้องตรวจสอบว่าเป็ นพืน
้ ทีต
่ าราง
ทัง้ หมดทีม
่ ส
ี ต
ู รทีเ่ กีย
่ วข ้องกัน มิฉะนัน
้ จะมีเซลล์สต
ู รบางเซลล์ทก
ี่ ลายเป็ นสูตร link ข ้าม

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 

แป้นพิมพ์ล ัดทีเ่ กีย ้ ทีต


่ วข้องก ับตําแหน่งอ้างอิงและขอบเขตพืน ่ าราง

F2 ใช ้แก ้ไขข ้อมูลหรือสูตรในเซลล์

F3 ใช ้ใส่ชอ
ื่ ตําแหน่งเซลล์หรือชือ
่ สูตรทีต
่ งั ้ ไว ้ในแฟ้ มนัน
้ ๆลงไปในสูตร
หรือสัง่ Paste List ต่อ จะสรุปชือ
่ ทีต
่ งั ้ ไว ้ทัง้ หมดลงไปในตาราง

F4 ใช ้ใส่เครือ
่ งหมาย $ กํากับตําแหน่งอ ้างอิง
หรือสัง่ ทวนคําสัง่ สุดท ้ายซํ้า

F5 ใช ้หาเซลล์ ตามตําแหน่งหรือชือ
่ ตําแหน่งเซลล์ทท
ี่ ราบ
หรือสัง่ Special ต่อ จะค ้นหาตําแหน่งเซลล์ได ้อีกหลายแบบ

F8 ใช ้ควบคุมตําแหน่งเซลล์แรกไว ้ไม่ให ้ขยับเพือ


่ ขยายตาราง (Extend)

F9 ใช ้สัง่ คํานวณทุกชีททุกแฟ้ มทีเ่ ปิ ดขึน


Shift + F9 ใช ้สัง่ คํานวณเฉพาะชีททีเ่ ลือกอยูช ี เดียวเท่านั น


่ ท ้

F2 ตามด ้วย F9 ใช ้แกะสูตรในเซลล์เพือ


่ ดูวา่ มีคา่ ทีแ
่ ท ้จริงเป็ นอย่างไร แล ้วกด Esc

Ctrl + * หรือ Ctrl+a ใช ้เลือกพืน ่ ารางซึง่ มีข ้อมูลติดต่อกันไป (Current Region)


้ ทีต

Ctrl + . ใช ้ย ้าย Active Cell ไปตามเซลล์หวั มุมของตารางทีเ่ ลือกไว ้

Ctrl + Shift + Æ ใช ้เลือกพืน


้ ทีต
่ ารางจากเซลล์ทเี่ ลือกไว ้ไปจนสุดทางด ้านขวา
หรือตามทิศทางของลูกศรทีก
่ ด
Shift + End Æ

Ctrl + PgUp ใช ้เลือกชีทถัดไป

Ctrl + PgDn ใช ้เลือกชีทก่อนหน ้า

Ctrl + Tab ใช ้เลือกแฟ้ มถัดไปทีเ่ ปิ ดอยู่

Ctrl + Shift + Tab ใช ้เลือกแฟ้ มก่อนหน ้าทีเ่ ปิ ดอยู่

Ctrl + Shift + Enter ใช ้สร ้างสูตร Array ซึง่ จะมีเครือ


่ งหมาย { } ปิ ดหัวท ้ายสูตร

Copyright of www.ExcelExpertTraining.com 
79 

หล ักการแยกต ัวแปร

1. ตัวแปร คือ ค่าทีม


่ นุษย์สามารถกําหนดให ้มีคา่ เปลีย
่ นแปลงต่างไปจากเดิม ตัวแปรอาจ
เป็ นได ้ทัง้ ค่าทีเ่ ป็ นตัวเลข ตัวอักษร หรือแม ้แต่สต
ู ร

2. เซลล์รับตัวแปรอาจใชเซลล์
เดียวหรือหลายเซลล์ ขึน ้ ๆว่ามีการ
้ กับประเภทของตัวแปรนัน
เปลีย
่ นแปลงไปตามระยะเวลาหรือเงือ
่ นไขอืน ่ งึ่ ใชค่้ าเดียวไป
่ ใดหรือไม่ ถ ้าเป็ นค่าคงทีซ

ตลอด ก็สามารถใชเซลล์
รับค่าเพียงค่าเดียวเซลล์เดียวในแฟ้ มหนึง่ แต่ถ ้าเป็ นค่าทีม
่ ี
ความผันผวนเปลีย ้
่ นแปลงไปตามระยะเวลาก็จําเป็ นต ้องใชหลายเซลล์ ่ ตัวแปร
เชน
ิ ค ้า ควรกําหนดให ้แต่ละชว่ งเวลามีราคาสน
ประเภทราคาสน ิ ค ้าแตกต่างกันไปเพือ
่ ให ้เกิด
ความยืดหยุน ้
่ ในการคํานวณ ก็จําเป็ นต ้องใชหลายเซลล์
เพือ
่ รับตัวแปรประเภทราคา
ิ ค ้าทีม
สน ี อดต่างกันไปในแต่ละชว่ งเวลา
่ ย
3. ควรคิดเผือ
่ ไว ้ตัง้ แต่ต ้นเสมอว่า ค่าคงทีท
่ ก
ุ ค่าเป็ นตัวแปรทีค
่ า่ อาจเปลีย
่ นแปลง เพราะ
ค่าคงทีใ่ ดๆทีค
่ ด ่ า่ ทีจ
ิ ว่าคงทีใ่ นวันนี้ อาจเป็ นไปได ้ว่าไม่ใชค ่ ะคงทีไ่ ปตลอด ดังนัน
้ หาก
ไม่มน
ั่ ใจว่าจะคงทีไ่ ปตลอดหรือไม่ ควรออกแบบตารางตัง้ แต่แรกเผือ
่ ไว ้ให ้สามารถ
เปลีย ่ อัตราภาษี ธรุ กิจเฉพาะ ซงึ่ อาจถูก
่ นแปลงตัวแปรตามระยะเวลาได ้ด ้วย เชน
ปรับเปลีย
่ นให ้ต่างไปจากเดิมในอนาคต
4. ลูกเล่นทางธุรกิจเป็ นตัวแปรได ้เหมือนกัน อย่าคิดว่าวิธด
ี ําเนินการทางธุรกิจต ้องเป็ นแบบ
ปั จจุบน
ั ไปตลอด คุณต ้องเผือ
่ เซลล์รับตัวแปรทีอ
่ าจเกิดขึน ้ ไว ้ก่อนตัง้ แต่
้ หรือไม่เกิดขึน
แรก ดีกว่าทีจ
่ ะย ้อนกลับไปแก ้ไขตารางแทรกตัวแปรเพิม
่ ในภายหลัง ขอให ้ออกแบบ
โครงสร ้างตารางเผือ
่ ไว ้ก่อนดีกว่าขาด
5. ในกรณีทต
ี่ วั แปรมีเงือ ั ซอน
่ นไขซบ ้ ควรแยกตัวแปรประเภทนัน
้ ไปเก็บเป็ นตารางเฉพาะ
ี เฉพาะหรือแม ้แต่เป็ นแฟ้ มเฉพาะสําหรับตัวแปรนัน
หรือเป็ นชท ้ ๆ โดยให ้ออกแบบตาราง
ตามแบบโครงสร ้างฐานข ้อมูลทีด
่ ด
ี ้วย
่ ส
6. ควรใสส ี รรค์ให ้เห็นเซลล์รับตัวแปรแยกชด
ั เจนแตกต่างจากเซลล์สต
ู รคํานวณและ
้ สงั่ Format
กําหนดให ้ Excel เปิ ดรับค่าใหม่ได ้ โดยคลิกขวาลงไปในเซลล์ตวั แปรนัน
่ ง Locked ทิง้ ไป จากนัน
Cells > Protection แล ้วตัดกาชอ ้ สงั่ Review > Protect
Sheet (Excel 2003 สงั่ Tools > Protection > Protect Sheet) แล ้วจะพบว่าเมือ
่ กด
ปุ่ ม Tab จะย ้ายตําแหน่งเซลล์ไปตามเซลล์ทเี่ ป็ นตัวแปรให ้เอง

Copyright of www.ExcelExpertTraining.com 
80 

วิธใี ช ้ Goal Seek

เลขอะไรเอ่ยนํ าไปคูณกับเลข 3 แล ้วได ้ผลลัพธ์เป็ นเลข 30 คุณก็ต ้องตอบว่าเลข 10 เพราะคุณ


คิดสูตรคูณในใจออกมาได ้ทันทีเลยใชไ่ หมว่า 10*3 = 30 แต่ถ ้าเปลีย
่ นโจทย์ใหม่วา่ เลขอะไร
เอ่ยนํ าไปคูณกับเลข 3 แล ้วได ้ผลลัพธ์เป็ นเลข 77.77 คราวนีส
้ มองของคุณก็จะคิดในใจอย่าง
ี เวลากดเครือ
รวดเร็วว่า “ไม่ไหว คิดไม่ไหว” ถ ้าต ้องเสย ่ งคิดเลขหรือสร ้างสูตรเอาเลข 77.77 ตัง้
แล ้วหารด ้วย 3 เพือ ้ ก็ได ้ ย่อมแสดงว่าคุณใช ้ Goal Seek ไม่เป็ น
่ หาเลขอะไรเอ่ยตัวนัน

Goal Seek เป็ นเครือ ่ ว่ ยคิดย ้อนโดยคุณไม่ต ้องเสย


่ งมือทีช ี เวลาสร ้างสูตรใหม่เพือ
่ คิดย ้อนเอง
แม ้แต่น ้อย เพียงแต่วา่ Goal Seek จะทํางานได ้ต่อเมือ
่ มีเซลล์รับตัวแปรทีส
่ ามารถถูก Excel ทํา
หน ้าทีเ่ ปลีย ู รจะไม่สามารถใช ้ Goal Seek
่ นแปลงเป็ นเลขใหม่ตามต ้องการ แต่หากเป็ นเซลล์สต
เข ้าไปแก ้ไขสูตรใดๆในเซลล์ให ้เป็ นค่าใหม่ได ้

จากโจทย์เดิม เลขอะไรเอ่ยนํ าไปคูณกับเลข 3 แล ้วได ้ผลลัพธ์เป็ นเลข 77.77

1. สร ้างตัวอย่าง 2*3 ได ้ 6 ตามตัวอย่างทีผ


่ า่ นมา
2. สงั่ Data > What-If Analysis > Goal Seek (Excel 2003 สงั่ Tools > Goal Seek)

่ ง Set cell: แล ้วให ้คลิกต่อไปทีเ่ ซลล์ D2 โดยเซลล์นต


3. คลิกในชอ ี้ ้องเป็ นเซลล์สต
ู ร
คํานวณ สว่ นชอ
่ ง To value: ให ้พิมพ์เลข 77.77 ลงไป แล ้วให ้คลิกในชอ
่ ง By
changing cell: แล ้วคลิกต่อไปทีเ่ ซลล์ B2 โดยเซลล์ B2 นีต
้ ้องเป็ นเซลล์รับตัวแปรที่
กําลังต ้องการหา ถือเป็ นตัวเลขคําตอบใหม่ทต
ี่ ้องการ

Copyright of www.ExcelExpertTraining.com 
81 

่ นตัวเลข 2 ในเซลล์ B2 เป็ นตัวเลข 25.92333 ซงึ่ ทํา


4. กดปุ่ ม OK จะพบว่า Excel เปลีย
ให ้เกิดผลลัพธ์ทเี่ ซลล์ C2 เป็ นเลข 77.77 ตามต ้องการ แล ้วให ้กดปุ่ ม OK เพือ
่ ยอมรับ
คําตอบที่ Goal Seek หาให ้

่ า่ งจากเดิม ต ้องสงั่ Data > What-If Analysis > Goal


5. หากต ้องการหาตัวเลขคําตอบทีต
Seek ซ้าํ เองใหม่

้ าลองใช ้ Goal Seek กับปั ญหาทีย


คราวนีม ่ ากขึน
้ โดยให ้หาว่าตัวเลขค่าโฆษณาในเซลล์ G18
ต ้องเป็ นเท่าใด จึงจะคิดเป็ น 15% ของกําไรขัน
้ ต ้น

จากภาพตารางข ้างบนนี้ เซลล์ 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 

กําไรลด ย่อมสง่ ผลให ้ค่าโฆษณาลดตาม พอค่าโฆษณาลดลง กําไรก็ต ้องเพิม


่ กลายเป็ นการ
คํานวณแบบวงกลมทีไ่ ม่สามารถหาคําตอบสุดท ้ายได ้โดยวิธธ
ี รรมดาทัว่ ไป

คุณสามารถแก ้ปั ญหานีโ้ ดยใช ้ Goal Seek โดยเริม


่ ต ้นจากสงั่ สงั่ Data > What-If Analysis >
Goal Seek

่ ง Set cell: แล ้วให ้คลิกต่อไปทีเ่ ซลล์ H18 โดยเซลล์นเี้ ป็ นเซลล์สต


1. คลิกในชอ ู ร
คํานวณหาว่าค่าโฆษณาเป็ นร ้อยละเท่าใดของกําไรขัน
้ ต ้น =G18/G19
่ ง To value: ให ้พิมพ์เลข .15 ซงึ่ เป็ นตัวเลขคําตอบทีต
2. ชอ ่ ้องการ
่ ง By changing cell: แล ้วคลิกต่อไปทีเ่ ซลล์ G18 เพือ
3. คลิกในชอ ่ ให ้หาตัวเลขค่า
โฆษณา
4. กดปุ่ ม OK > OK จะได ้ตัวเลขคําตอบค่าโฆษณาเท่ากับ 104.50377964375 ที่ Goal
Seek คิดให ้

่ งมือพิสดารทีเ่ หมาะในการวางแผนงบประมาณ ชว่ ยตัง้ ราคาขายสน


Goal Seek เป็ นเครือ ิ ค ้าเพือ

ทําให ้ได ้กําไรตามต ้องการ หรือชว่ ยในการคํานวณย ้อนกลับในงานทีค
่ นเราคิดเองไม่ไหวได ้

Copyright of www.ExcelExpertTraining.com 
83 

ื่ ซงึ่ ในงานวางแผนตัดสน
อย่างไม่น่าเชอ ิ ใจนัน ื่ มัน
้ แทบเป็ นไปไม่ได ้เลยทีเ่ ราจะมีความเชอ ่
100% ต่อคําตอบทีม
่ อ
ี ยูเ่ สมอไป ดังนัน
้ แทนทีจ ี่ งกับการใชตั้ วเลขเพียงตัวเดียว ขอแนะนํ า
่ ะเสย
ให ้ใช ้ Goal Seek คิดย ้อนหาชว่ งค่าทีเ่ ป็ นไปได ้ว่าอยูใ่ นชว่ งตัวเลขระหว่างค่าใด เพือ
่ ทําให ้
สามารถวางแผนได ้อย่างยืดหยุน
่ มากขึน ่ เดิมเคยถามว่า ตัวเลขค่าโฆษณาในเซลล์ G18
้ เชน
้ ต ้น ก็ให ้ใช ้ Goal Seek ค ้นหาคําตอบทีย
ต ้องเป็ นเท่าใด จึงจะคิดเป็ น 15% ของกําไรขัน ่ ด
ื หยุน

กว่าเดิมว่า ตัวเลขค่าโฆษณาในเซลล์ G18 ต ้องเป็ นค่าระหว่างเลขใด จึงจะคิดเป็ น 15% -
20% ของกําไรขัน
้ ต ้น

ข้อจําก ัดของ Goal Seek และวิธแ


ี ก้ไข

่ ําคัญของ Goal Seek เกิดจากทุกครัง้ ทีต


ข ้อจํากัดทีส ่ ้องการคิดย ้อนครัง้ ใหม่ คุณต ้องเป็ นผู ้สงั่ ให ้
Goal Seek ทํางานซํ้าด ้วยตนเอง และ Goal Seek จะยอมให ้เปลีย
่ นแปลงตัวเลขตัวแปรได ้เพียง
้ ว่ นทีไ่ ม่ยด
เซลล์เดียว นอกจากนีส ื หยุน
่ ทีส
่ ด
ุ ก็คอ
ื คุณต ้องกรอกตัวเลขทีต ่ ง
่ ้องการลงไปในชอ
To value เองเสมอ โดยไม่สามารถ link ค่าตัวเลขเป้ าหมายทีต ้
่ ้องการจากเซลล์เข ้าไปใชใน
่ งมือทีไ่ ม่เหมาะสําหรับผู ้ทีไ่ ม่เคยใช ้ Goal Seek มาก่อน
Goal Seek จึงเป็ นเครือ

เราสามารถแก ้ไขจุดอ่อนของ Goal Seek ให ้สามารถรับค่าจากเซลล์ได ้โดยตรง และหาทาง


่ จากใช ้ Macro
ปรับปรุงให ้ Goal Seek ทํางานหาคําตอบให ้เองทันทีอย่างอัตโนมัต ิ โดยเริม
Recorder บันทึกการสงั่ Data > What-If Analysis > Goal Seek แล ้วใชงานตามตั
้ วอย่างการ
คํานวณหาค่าโฆษณาในตัวอย่างทีผ
่ า่ นมา จะได ้รหัส VBA ตามนี้

Sub SetGoal()

Range("H18").GoalSeek Goal:=0.15, ChangingCell:=Range("G18")

End Sub

จากนัน ื่ Range Name ทีต


้ ให ้แก ้ไขตําแหน่งอ ้างอิงและค่าคงทีใ่ นตัวรหัสให ้อ ้างถึงชอ ่ งั ้ ไว ้ใน
ตารางกลายเป็ นรหัสใหม่ดงั นี้

Sub SetGoal()

[MyTarget].GoalSeek Goal:=[TargetValue], ChangingCell:=[ChangeCell]

End Sub

Copyright of www.ExcelExpertTraining.com 
84 

ื่ Range Name ชอ
โดยกําหนดให ้ตัง้ ชอ ื่ ว่า MyTarget ให ้กับเซลล์ H18 และชอ
ื่ ChangeCell
ให ้กับเซลล์ G18 และเมือ
่ ใดทีต
่ ้องการตัวเลขตัวใหม่ ให ้กรอกตัวเลขลงไปในเซลล์ทต ื่ ว่า
ี่ งั ้ ชอ
TargetValue

้ ควรสงั่ ให ้ Goal Seek ทํางานเองโดยใช ้ Event ก็จะได ้


หากต ้องการความสะดวกมากขึน
ผลลัพธ์ทน ี เวลามาเปิ ด Goal Seek ขึน
ั ทีโดยไม่ต ้องเสย ้ เพือ ่ หากใช ้
่ กรอกค่าเองอีกต่อไป เชน
Calculation Event ก็จะได ้ผลลัพธ์ตามการคํานวณใดๆทีเ่ กิดขึน ี นัน
้ ในชท ้

Private Sub Worksheet_Calculate()

[MyTarget].GoalSeek Goal:=[TargetValue], ChangingCell:=[ChangeCell]

End Sub

Copyright of www.ExcelExpertTraining.com 
85 

วิธใี ช ้ Data Table

่ ต ้นใชสู้ ตรคํานวณใน Excel แรกเริม


ถ ้าถามว่าตอนเริม ่ นัน ้
้ คุณต ้องรู ้จักใชอะไรให ้เป็ น ก็ตอบว่า
้ อ
ต ้องรู ้จักการกําหนดตําแหน่งอ ้างอิงโดยการใชเครื ้
่ งหมาย $ ควบคุมแนวของค่าทีใ่ ชในการ

คํานวณ แล ้วถ ้าถามต่อไปว่า ตอนสร ้างแฟ้ มงานเสร็จแล ้วล่ะต ้องใชอะไรให ้เป็ น คําตอบก็คอ

ต ้องใช ้ Data Table สรุปคําตอบทีเ่ ป็ นไปได ้เพือ
่ ใชตั้ ดสน
ิ ใจ

Data Table เป็ นคําสงั่ ทีม


่ ม ั ถูกละเลยไม่สนใจใชกั้ นนัก คงเป็ นเพราะคําสงั่ นีถ
ี านานแล ้วแต่มก ้ ก

ออกแบบมาให ้อยูก ั เมนู Data จึงทําให ้นึกไปว่าเป็ นคําสงั่ ทีไ่ ม่เกีย
่ น ่ วข ้องกับการคํานวณ อีก
ั เจนนัก ผู ้ทีจ
ทัง้ ตัวอย่างและคําอธิบายใน Help ก็มไิ ด ้ให ้รายละเอียดชด ่ ะเข ้าใจ Data Table ได ้
ก็ต ้องลองใชคํ้ าสงั่ นีด ู ล ้วจึงจะซงึ้ ถึงประโยชน์ของมัน
้ แ

ั การออกแบบตารางแบบพิเศษทีจ
Data Table อาศย ่ ะชว่ ยให ้ Excel นํ าค่าทีว่ างไว ้บนหัวตาราง
หรือข ้างตารางด ้านใดด ้านหนึง่ หรือทัง้ สองด ้าน สง่ ต่อไปแทนทีค
่ า่ หรือสูตรทีบ
่ น
ั ทึกไว ้ในเซลล์
เมือ
่ ค่าในเซลล์เหล่านัน ่ นไปตามคําสงั่ Data Table ก็จะทําให ้เซลล์สต
้ เปลีย ู รทีเ่ กีย
่ วข ้อง
คํานวณหาคําตอบใหม่ เพียงแต่การเปลีย
่ นแปลงค่าในเซลล์และคําตอบใหม่ทเี่ กิดขึน
้ นัน
้ เราจะ
ไม่เห็นมีการเปลีย
่ นแปลงใดๆเกิดขึน
้ ในตาราง แต่จะพบว่า Excel นํ าคําตอบมาสรุปไว ้ในตาราง
Data Table ให ้เอง

สําหรับผู ้ทีค
่ ุ ้นเคยกับการเขียนโปรแกรมสําเร็จรูป การทํางานของ Data Table เปรียบเทียบได ้
้ สโปรแกรมสงั่ ให ้ Excel ทํางานซํ้าหลายครัง้ เป็ น loop โดย Excel จะสง่ ค่าไปที่
กับการใชรหั
เซลล์ทเี่ รากําหนดให ้ในแต่ละ loop ทัง้ นี้ Data Table จะทํางานเป็ น loop ให ้อัตโนมัตโิ ดยเรา
ี เวลาเขียนโปรแกรมแม ้แต่น ้อย
ไม่ต ้องเสย

Data Table มี 3 แบบตามจํานวนตัวแปรทีเ่ กีย


่ วข ้อง ได ้แก่

• Data Table แบบ 1 ตัวแปร


• Data Table แบบ 2 ตัวแปร
• Data Table แบบไม่จํากัดตัวแปร โดยใชร่้ วมกับสูตร Index (กลายเป็ นวิธท
ี ฉ
ี่ ลาดกว่า
การใช ้ Scenarios)

โครงสร ้างตาราง Data Table แบ่งเป็ น 4 สว่ น ตามรูป

Copyright of www.ExcelExpertTraining.com 
86 

Data Table แบบ 1 ต ัวแปร

จากตัวอย่างการหาค่าโฆษณา หากกําหนดให ้ค่าโฆษณาเป็ นตัวเลขในชว่ ง 100 ถึง 400 บาท


ให ้หาว่าจะสง่ ผลต่อกําไรขัน
้ ต ้นอย่างไร

ทางออกในการแก ้ปั ญหานี้ หากคุณไม่รู ้จัก Data Table มาก่อน ก็คงต ้องสร ้างตารางคํานวณซํ้า
กันหลายๆตารางเพือ ่ วั เลขค่าโฆษณาลงไปเพือ
่ ทดลองใสต ่ หาผลลัพธ์ทต
ี่ ้องการ

แทนทีจ ี แรงเสย
่ ะเสย ี เวลาสร ้างตารางคํานวณซํ้า ให ้ออกแบบโครงสร ้างตาราง Data Table
ขึน ้ งั เกตว่าต ้องการเปลีย
้ มาก่อน โดยในปั ญหานีส ่ นค่าโฆษณาเพียงค่าเดียว ดังนัน
้ จึงเข ้าข่าย
Data Table แบบ 1 ตัวแปร ซงึ่ มีโครงสร ้างแยกแยะออกไปอีก 2 แบบย่อยตามแต่วา่ คุณ
ต ้องการดูตวั แปรตามแนวใด ได ้แก่

• Data Table แบบวางตัวแปรไว ้ในหัวตารางด ้านข ้างตามแนวตัง้ สว่ นหัวตารางด ้านบน


่ สงั่ Data Table ให ้เลือกใชช้ อ
เป็ นสูตรคําตอบที่ link มา และเมือ ่ ง Column Input Cell
• Data Table แบบวางตัวแปรไว ้ในหัวตารางด ้านบนตามแนวนอน สว่ นหัวตารางด ้านข ้าง
่ สงั่ Data Table ให ้เลือกใชช้ อ
เป็ นสูตรคําตอบที่ link มา และเมือ ่ ง Row Input Cell

ตัวอย่างการใช ้ Data Table แบบวางตัวแปรไว ้ในหัวตารางด ้านข ้างตามแนวตัง้

Copyright of www.ExcelExpertTraining.com 
87 

1. นํ าตัวเลขค่าโฆษณามาพิมพ์ลงในเซลล์ E23:E27 โดยจะกําหนดให ้เป็ นตัวเลขใด


ก่อนหลังก็ได ้ ไม่จําเป็ นต ้องเรียงลําดับมากน ้อย
2. เซลล์ F22 และ G22 สร ้างสูตร link ผลลัพธ์ของสูตรคํานวณมาจากเซลล์ G19 และ
H18 ตามลําดับ
้ ที่ E22:G27 แล ้วสงั่ Data > What-If Analysis > Data Table (Excel
3. ให ้เลือกพืน
2003 สงั่ Data > Table)
่ ง Column input cell แล ้วคลิกต่อไปทีเ่ ซลล์ G18 (เพือ
4. คลิกลงในชอ ่ กําหนดให ้ Data
Table ยิงตัวเลขค่าโฆษณาทีว่ างไว ้ตามแนวตัง้ ไปทีเ่ ซลล์ G18) แล ้วกดปุ่ ม OK
5. จะพบคําตอบปรากฏในตาราง F23:G27 และเมือ
่ คลิกดูจะพบสูตร {=TABLE(,G18)}
ซงึ่ สูตรนีเ้ ราไม่สามารถสร ้างเอง ต ้องใชคํ้ าสงั่ Data Table เท่านัน
้ จึงจะเกิดสูตรนีข
้ น
ึ้
่ ดูในสูตรจะพบ (,G18) แสดงถึงการไม่ใช ้ Row Input แต่ใช ้ Column Input มี
และเมือ
เซลล์ G18 เป็ นเซลล์รับค่า


หากใชตาราง Data Table แบบวางตัวแปรไว ้ในหัวตารางด ้านบนตามแนวนอน ต ้องออกแบบ
ตารางตามรูปต่อไปนี้

ข ้อสงั เกต

1. Data Table แบบ 1 ตัวแปร สามารถหาคําตอบมาแสดงในตารางได ้หลายเรือ


่ ง ตามแต่
ว่าจะ link สูตรคําตอบเรือ
่ งใดมาแสดงในหัวตารางอีกข ้างหนึง่ จึงให ้ผลลัพธ์ได ้มากกว่า
Data Table แบบ 2 ตัวแปร ซงึ่ แม ้จะใชตั้ วแปรได ้ 2 ตัว แต่จะแสดงคําตอบในตารางได ้
เพียงเรือ
่ งเดียวเพราะมีเซลล์หวั มุมเพียงเซลล์เดียว
2. ถ ้าต ้องการใชตั้ วแปรมากกว่า 2 ตัว หรือต ้องการคําตอบหลายเรือ
่ ง สามารถใชสู้ ตร If,
Choose หรือ Index ชว่ ยทําให ้ Data Table ทํางานได ้ไม่จํากัด

Copyright of www.ExcelExpertTraining.com 
88 

3. สูตรที่ Excel สร ้างให ้เมือ


่ สร ้าง Data table เป็ นสูตรทีถ
่ ก
ู สร ้างขึน
้ แบบ Array พร ้อมกัน
ทุกเซลล์ โดยมีโครงสร ้างสูตรดังนี้

=Table(Row Input Cell, Column Input Cell)

่ เป็ นตารางทีใ่ ช ้
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 แล ้วจึงจะสามารถลบสูตรทิง้ พร ้อมกันทุกเซลล์

Data Table แบบ 2 ต ัวแปร

ในตัวอย่างเดิม หากต ้องการวิเคราะห์วา่ ถ ้าเราเปลีย


่ นแปลงต ้นทุนขายและค่าโฆษณาจะมีผล
อย่างไรบ ้างต่อยอดกําไรขัน
้ ต ้น

Copyright of www.ExcelExpertTraining.com 
89 

1. พิมพ์ตวั แปรต ้นทุนขายไว ้ในเซลล์ F22:H22 ซงึ่ ถือเป็ น Row Input


2. พิมพ์ตวั แปรต ้นค่าโฆษณาไว ้ในเซลล์ E23:E27 ซงึ่ ถือเป็ น Column Input
3. ในเซลล์หวั มุมตาราง E22 สร ้างสูตร =G19 เพือ ้ ต ้นมาใช ้
่ link สูตรคํานวณหากําไรขัน
4. จากนัน
้ ให ้เลือกพืน ่ งั ้ แต่ E22:H27 แล ้วสงั่ Data > What-If Analysis > Data
้ ทีต
Table (Excel 2003 สงั่ Data > Table)
่ ง Row Input Cell แล ้วคลิกต่อไปยังเซลล์ G17 ซงึ่ เป็ นเซลล์ต ้นทุน
5. คลิกลงไปในชอ
ขาย
่ ง Column Input Cell แล ้วคลิกต่อไปยังเซลล์ G18 ซงึ่ เป็ นเซลล์คา่
6. คลิกลงไปในชอ
โฆษณา แล ้วกดปุ่ ม OK จะพบคําตอบของกําไรขัน
้ ต ้น แสดงในตาราง F23:H27

่ นํ า Data Table มาเปรียบเทียบกับ Goal Seek มีข ้อสงั เกตดังนี้


เมือ

1. Data Table สามารถสง่ ค่าตัวแปรใหม่ครัง้ ละหลายตัวไปแทนทีเ่ ซลล์ทม


ี่ ส ู รสร ้างไว ้ ซงึ่
ี ต
้ โดยถือว่าไม่ได ้ใชสู้ ตรทีส
Excel จะคํานวณให ้ตามค่าตัวแปรใหม่นัน ่ ร ้างไว ้ก่อนแล ้วในเซลล์
้ มาใชคํ้ านวณร่วมด ้วยแต่อย่างใด สว่ น Goal Seek สามารถสง่ ตัวแปรใหม่ไปได ้ครัง้ ละ 1
นัน
ตัวและไม่สามารถสง่ ตัวแปรไปแทนเซลล์ทเี่ ป็ นสูตร

2. Data Table เหมาะกับการใชวางแผนระยะยาว โดยกําหนดค่าตัวแปรบนหัวตารางให ้
ครอบคลุมชว่ งค่าทีเ่ ป็ นไปได ้เพือ ้ ในชว่ งค่านัน
่ ดูผลลัพธ์ทเี่ กิดขึน ้ ๆซงึ่ อาจไม่ได ้คําตอบตรง
่ ้องการ สว่ น Goal Seek เหมาะสําหรับการวิเคราะห์หาตัวเลขเฉพาะกิจ
กับค่าเป้ าหมายทีต
ซงึ่ จะคิดย ้อนกลับจนได ้ตัวเลขตามต ้องการ
3. เราสามารถสงั่ Formulas > Calculation Options > Automatic Except for Data Tables
(Excel 2003 สงั่ Tools > Options > Calculation > Automatic except tables) เพือ


กําหนดให ้ใชการกดปุ่ ่ สงั่ ให ้ Data Table คํานวณเฉพาะเมือ
ม F9 เพือ ้ สว่ น
่ ต ้องการเท่านัน
Goal Seek แม ้ว่าจะพบว่าใชกั้ บการคํานวณแบบ Automatic หรือ Manual ก็ได ้ แต่เราควร
ใช ้ Goal Seek ร่วมกับการคํานวณแบบ Automatic ไว ้ก่อน เพือ
่ ชว่ ยทําให ้มัน
่ ใจว่าเซลล์
สูตรทีเ่ กีย
่ วข ้องถูกคํานวณตามกันไปครบทัง้ หมดด ้วย
่ งจากเราเป็ นผู ้กําหนดค่าตัวแปรให ้ใชกั้ บ Data Table ดังนัน
4. เนือ ้ Excel จะถูกสงั่ ให ้คํานวณ
้ จนครบทุกตัว สว่ น Goal Seek จะคํานวณย ้อนกลับให ้เองแต่อาจได ้
ตามค่าตัวแปรเหล่านัน
คําตอบเฉพาะในชว่ งค่าที่ Excel ค ้นหาให ้เท่านัน

่ ้องการ ก็สามารถใช ้ Goal Seek ทํางานต่อบน
5. หาก Data Table ไม่สามารถหาคําตอบทีต
ตาราง Data Table โดยให ้ใช ้ Goal Seek คิดย ้อนหาค่าตัวแปรบนหัวตาราง Data Table
จนกว่าจะคํานวณได ้คําตอบมาปรากฏขึน
้ ในพืน ่ ว่ นของคําตอบในตาราง Data table
้ ทีส

Copyright of www.ExcelExpertTraining.com 
90 

้ ต
หลากหลายแนวทางการใชส ู ร IF

ในบรรดาสูตรสําเร็จรูปของ Excel นัน ้


้ สูตรทีใ่ ชมากที
ส ่ ด
ุ และมีประโยชน์มากทีส
่ ด
ุ รองจากสูตร
SUM เห็นจะหนีไม่พ ้นสูตร IF ซงึ่ แปลว่า "ถ ้า" นีแ
้ หละ โดยเฉพาะคนทีม
่ ต
ี ําแหน่งขึน ื่ ว่าเป็ น
้ ชอ
หัวหน ้า ถ ้าใชสู้ ตร IF ไม่เป็ น ก็ไม่สมควรเป็ นหัวหน ้าหรอกนะ เปลีย ื่ ตรงข ้าม
่ นตําแหน่งให ้ได ้ชอ
กับคําว่าหัวกับหน ้า ให ้กลายเป็ นตําแหน่งเท ้าหลังแทนจะเหมาะสมกว่า

ถ ้านํ าเงือ
่ นไขข ้างต ้นเกีย
่ วกับหัวหน ้ามาเขียนด ้วยสูตร IF จะได ้สูตรตามนี้

้ น ให ้เป็ นหัวหน ้าต่อไป , ถ ้าใชไม่


=IF ( หัวหน ้าใชสู้ ตร IF เป็ นหรือไม่ , ถ ้าใชเป็ ้ เป็ น ให ้
เป็ นเท ้าหลังแทน )

หรือถ ้าคิดเขียนสูตร IF ตามหลักกฎแห่งกรรมของการทําดีต ้องได ้ดี ทําชวั่ ได ้ชวั่ จะได ้สูตรตาม


นี้

=IF ( คุณทําดีใชไ่ หม , ถ ้าทําดี ต ้องได ้ดี , ถ ้าไม่ทําดี ต ้องได ้รับผลอืน


่ ๆ)

สงั เกตว่าในสูตร IF ของการตรวจสอบว่าทําดีหรือไม่นัน


้ ถ ้าไม่ได ้ทําดี ไม่ใชว่ า่ จะได ้ชวั่ เพราะ
เงือ ้ นเพียงตรวจสอบว่าทําดีอย่างเดียวเท่านัน
่ นไขทีใ่ ชเป็ ้ คนทีไ่ ม่ได ้ทําดี ไม่ใชว่ า่ ต ้องทําชวั่ ก็
ได ้ อาจอยูเ่ ฉยๆไม่ได ้ทําดีไม่ได ้ทําชวั่ ดังนัน ่ ซงึ่ ไม่ใช ่
้ กรณีทไี่ ม่ได ้ทําดี จึงต ้องได ้รับผลอย่างอืน
ผลจากการทําดี

ถ ้าคุณเข ้าใจวิธค
ี ด
ิ เงือ
่ นไขในใจของตัวคุณเอง ก็จะพบว่าบริษัทไมโครซอฟท์ได ้สร ้าง Excel
้ มาโดยใชสู้ ตร IF ทีม
ขึน ่ โี ครงสร ้างของสูตรตามหลักการเดียวกันกับทีค
่ ณ
ุ คิดได ้นั่นเอง

โครงสร้างสูตร IF

=IF(การตรวจสอบเงือ
่ นไข, ผลลัพธ์กรณีทต ่ นไขว่าใช,่ ผลลัพธ์กรณีท ี่
ี่ รวจสอบเงือ
่ นไขว่าไม่ใช)่
ตรวจสอบเงือ

ในสว่ นของการตรวจสอบเงือ ่ มการทีต


่ นไข ให ้ใสส ้ อ
่ ้องการลงไป โดยใชเครื ่ งหมาย =, >, <,
>=, <=, หรือไม่เท่ากับ <> หรือในสว่ นของการตรวจสอบเงือ
่ นไขนี้ อาจใชสู้ ตรอืน
่ ซงึ่ คืนค่า

Copyright of www.ExcelExpertTraining.com 
91 

่ AND, OR, TRUE, FALSE, ISNUMBER เป็ น


เป็ น TRUE หรือ FALSE อย่างใดอย่างหนึง่ เชน
ต ้น

ตัวอย่างการใช ้ IF แบบง่ายๆ

=IF(SaleChoice="n", 1000, 2000)

สูตรนีจ
้ ะคืนค่าเป็ นตัวเลข 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)

สูตรนีใ้ ชกั้ บการคํานวณหายอดภาษี ถ ้า MyMargin หรือเซลล์กําไรขัน


้ ต ้นมีคา่ มากกว่า 0 ย่อม
แสดงว่ามีกําไรเกิดขึน
้ จึงนํ ายอดกําไรขัน
้ ต ้นไปคูณด ้วยอัตราภาษี 30% แต่ถ ้าไม่มก
ี ําไรก็ไม่
ต ้องจ่ายภาษี

้ ต
แนวทางการใชส ู ร IF

้ ย
1.ใชเปลี ้
่ นเสนทางการรั บค่า


2.ใชในการตั ิ ใจ
ดสน


3.ใชในการเปลี
ย ่ นค่าหรือแสดงค่า

้ ย
4.ใชเปลี ้
่ นเสนทางการส ง่ ค่า

Copyright of www.ExcelExpertTraining.com 
92 

้ ต
การใชส ู ร IF ในการเปลีย ้ ทางการร ับค่า
่ นเสน

การสร ้างสูตรลิงค์เพือ ื่ มโยงค่าโดยทัว่ ไปเป็ นการเชอ


่ เชอ ื่ มโยงกันแบบ 1 ต่อ 1 เชน
่ เมือ
่ ต ้องการ
ทําให ้เซลล์ A2 มีคา่ เท่ากับเซลล์ A1 ก็จะสร ้างสูตร =A1 ลงไปในเซลล์ A2 ทําให ้เซลล์ A2
่ นแปลงตามค่าในเซลล์ A1 ซงึ่ การลิงค์แบบนีเ้ ซลล์ A1 เรียกว่าเป็ นเซลล์ต ้นทาง
แสดงค่าเปลีย
และเซลล์ A2 เรียกว่าเป็ นเซลล์ปลายทาง

่ กําหนดให ้เซลล์ C2 และ C3 สามารถเป็ นเซลล์ต ้น


แต่ถ ้าเซลล์ต ้นทางมีมากกว่า 1 เซลล์ เชน
ทางได ้ทัง้ คู่ โดยกําหนดให ้เซลล์ E3 เป็ นเซลล์ปลายทางเพียงเซลล์เดียว โดยเลือกทีจ
่ ะรับค่า
จากเซลล์ C2 หรือ C3 ก็ได ้แล ้วแต่เงือ
่ นไขทีเ่ รากําหนดว่าจะให ้เลือกรับค่ามาจากเซลล์ใด

จากภาพกําหนดให ้เซลล์ E2 เป็ นเซลล์สําหรับใสค


่ า่ เงือ
่ นไขลงไปว่าจะเป็ นตัวอักษร A หรือ B
่ ใดก็ได ้) สว่ นเซลล์ E3 ซงึ่ เป็ นเซลล์ปลายทาง ให ้สร ้างสูตรต่อไปนี้
(หรือค่าอืน

=IF( E2="A", C2, C3)

ดังนัน
้ เมือ
่ เซลล์ E2 มีคา่ เป็ น A จึงทําให ้เซลล์ E3 รับค่า 100 มาจากเซลล์ C2 แต่ถ ้าเซลล์ E2
ไม่ได ้มีคา่ เป็ น A ก็จะทําให ้เซลล์ E3 เปลีย ้
่ นเสนทางการรั บค่า 200 มาจากเซลล์ C3 แทน

แต่ถ ้ากําหนดให ้มีจํานวนเซลล์ต ้นทางมากมายหลายเซลล์ เชน ้


่ ตามรูปต่อไปนีใ้ ชเซลล์
ต ้นทาง
ถึง 14 เซลล์

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)))))))))))))

ซงึ่ เซลล์ E9 มีคา่ เป็ น K จึงทําให ้สูตร IF ในเซลล์ F9 เลือกรับค่ามาจากเซลล์ I8

แต่ถ ้าโครงสร ้างตารางไม่ได ้จัดให ้เป็ นระเบียบ แม ้สูตร 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 เพือ
่ หาค่าทีก
่ ระจายกันอยูต
่ า่ งทีต ี ต่าง
่ า่ งชท
แฟ้ มได ้ก็ตาม แต่การกระจายกันของค่านีเ่ อง หากกระจายอย่างขาดระเบียบ ย่อมเพิม ี่ ง
่ ความเสย
ทีจ
่ ะหาคําตอบผิดพลาดได ้โดยไม่รู ้ตัว และเมือ
่ จะตรวจสอบแก ้ไขก็จะทําให ้ทําได ้ยาก

้ โปรดจําไว ้ว่า ขอให ้เลือกใชสู้ ตร IF กับปั ญหาง่ายๆ แต่เมือ


ดังนัน ั ซอนมากขึ
่ ปั ญหาซบ ้ น ้ เราควร
่ นโครงสร ้างตารางหรือเลือกใชสู้ ตรอืน
ปรับเปลีย ่ ซงึ่ ทํางานได ้เชน
่ เดียวกันกับสูตร IF จะ
เหมาะสมกว่า

Copyright of www.ExcelExpertTraining.com 
95 

้ ต
การใชส ิ ใจ
ู ร IF ในการต ัดสน

่ นไข,ผลกรณีใช,่ ผลกรณีไม่ใช)่ มีพน


โครงสร ้างสูตร IF แบบง่ายๆ =IF(เงือ ื้ ฐานของตัวสูตรทํา
หน ้าทีต
่ ด ิ ใจตามเงือ
ั สน ่ ล ้ว ไม่วา่ จะใชสู้ ตร IF ในการเปลีย
่ นไขทีเ่ รากําหนดลงไปในสูตรอยูแ ่ น

เสนทางการรั ้
บค่าหรือใชในการปรั ่ นค่าก็ตาม ย่อมถือว่าเป็ นการใชสู้ ตร 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 แบบกําหนดเงือ
่ นไขแตกต่อกรณีทไี่ ม่ใชใ่ นการตัดเกรด

กําหนดให ้เซลล์ B3:C5 เป็ นตารางคะแนน-เกรด

• ถ ้าสอบได ้ตัง้ แต่ 90 คะแนนขึน


้ ไปให ้ได ้เกรด A
• ถ ้าสอบได ้ตัง้ แต่ 70 คะแนนขึน
้ ไปให ้ได ้เกรด B
• ถ ้าสอบได ้ตัง้ แต่ 0 คะแนนขึน
้ ไปให ้ได ้เกรด C

่ อบได ้ เซลล์ F3 หาคําตอบเป็ นเกรด B โดยใช ้


สมมติวา่ เซลล์ E3 มีคา่ เป็ น 75 เป็ นคะแนนทีส

สูตร IF ซอนกั
นดังนี้

=IF( E3>=B3, C3, IF(E3>=B4,C4,C5) )

ซงึ่ แปลสูตรออกมาตามเงือ
่ นไขทีก
่ ําหนดได ้เป็ น

=IF( คะแนนทีส
่ อบได ้ >=90, "A", IF(คะแนนทีส
่ อบได ้ >=70,"B","C") )

ข ้อสงั เกต

้ IF มีหลักการสําคัญ คือ ต้องจ ัดลําด ับของเงือ


1. การเขียนสูตร IF ซอน ่ นไขทีเ่ ปิ ด
โอกาสให้ IF ทุกต ัวในสูตรมีโอกาสได้ทา
ํ งาน ดังนัน ้ อ
้ จึงต ้องใชเงื ่ นไข คะแนนที่
สอบได ้ >=90 ขึน
้ ก่อนเป็ นเงือ
่ นไขแรก หากเงือ
่ นไขนีไ
้ ม่ผา่ นจึงปล่อยให ้เงือ
่ นไขถัดไป
้ อ
ทํางาน (แต่ถ ้าสร ้างผิดโดยใชเงื ่ นไข >=70 ขึน
้ ก่อน จะปิ ดโอกาสของเงือ
่ นไขเกรด A
เพราะ >=70 ย่อมหมายถึง >=90 อยูแ
่ ล ้ว)
2. แม ้ต ้องการเกรด A, B, C แต่เราใช ้ IF ซอนกั
้ นเพียง 2 IF เท่านัน ่ งั ้ สอง
้ เพราะถ ้าไม่ใชท
เงือ
่ นไข ก็ต ้องเป็ นเกรด C นั่นเอง

Copyright of www.ExcelExpertTraining.com 
97 

การใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ช่

เป็ นเงือ
่ นไขทีก ้
่ ําหนดซอนเข ้าไปเพือ ิ ใจในทุกเงือ
่ ตัดสน ่ นไขพร ้อมกันไป เกิดเป็ นโครงสร ้างสูตร
ตามนี้

=IF(เงือ
่ นไขที่ 1, IF(เงือ ่ องเงือ
่ นไขที่ 2, ผลกรณีใชข ่ นไขที่ 1 และ 2, ผลกรณีไม่ใช ่
ของเงือ ่ องเงือ
่ นไขที่ 2), ผลกรณีไม่ใชข ่ นไขที่ 1)

่ องทุกเงือ
หากผลกรณีทใี่ ชข ่ นไขเป็ นค่าเดียวกัน สว่ นผลกรณีทไี่ ม่ใชข
่ องเงือ
่ นไขที่ 1 และผล
่ องเงือ
กรณีทไี่ ม่ใชข ่ ะใชสู้ ตร IF ซอนกั
่ นไขที่ 2 เป็ นค่าเดียวกัน แทนทีจ ้ นหลายสูตร ให ้ใชสู้ ตร
And หรือ Or มาชว่ ยในสูตร IF เพียงสูตรเดียวได ้ดังนี้

=IF( And( เงือ ่ นไขที่ 2), ผลกรณีใช,่ ผลกรณีไม่ใช)่


่ นไขที่ 1,เงือ

=IF( OR( เงือ ่ นไขที่ 2), ผลกรณีใช,่ ผลกรณีไม่ใช)่


่ นไขที่ 1,เงือ

หมายเหตุ

1. สูตร And จะคืนค่าเป็ นจริงต่อเมือ


่ ทุกเงือ
่ นไขเป็ นจริงพร ้อมกัน หากเงือ
่ นไขใดเงือ
่ นไข
หนึง่ เป็ นเท็จ จะคืนค่าเป็ นเท็จ (จําว่า False เป็ นลักษณะเด่น)
2. สูตร OR จะคืนค่าเป็ นเท็จต่อเมือ
่ ทุกเงือ
่ นไขเป็ นเท็จพร ้อมกัน หากเงือ
่ นไขใดเงือ
่ นไข
หนึง่ เป็ นจริง จะคืนค่าเป็ นจริง (จําว่า True เป็ นลักษณะเด่น)

Copyright of www.ExcelExpertTraining.com 
98 

ต ัวอย่างการใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ชใ่ นการป้องก ัน
สูตรล ับ

สมมติวา่ เราต ้องการบวกเลข 1 กับเลข 2 ในเซลล์ B2 และ C2 เข ้าด ้วยกัน แต่กอ


่ นจะยอมให ้
สูตร B2+C2 ทํางานได ้ตามปกติ ต ้องผ่านการกรอกรหัสลงไปในเซลล์ B4 และ B5 เป็ นเลข
123 และ 999 ตามลําดับให ้ถูกต ้องเรียบร ้อยก่อน

้ IF จะได ้สูตรตามเซลล์ D2
ถ ้าสร ้างสูตร IF ซอน

=IF( B4=123, IF(B5=999, B2+C2, 0), 0)

หรือใชสู้ ตร And มาใชงานร่


้ วมด ้วย กลายเป็ นสูตร IF เพียงสูตรเดียวดังนี้

=IF( AND(B4=123,B5=999), B2+C2, 0)

Copyright of www.ExcelExpertTraining.com 
99 

ต ัวอย่างการใช ้ IF แบบกําหนดเงือ
่ นไขแตกต่อกรณีทใี่ ชใ่ นการร ับเงิน
่ งว ันทีก
ในชว ่ า
ํ หนด

หากต ้องการรับเงิน 100 บาท ระหว่างวันที่ 2-5 กําหนดให ้ใช ้ Range Name ในตารางต่อไปนี้

• ื่ From
B3:B8 ชอ
• ่ื To
C3:C8 ชอ
• ื่ Amount
D3:D8 ชอ
• ื่ Date
E2:K2 ชอ

เซลล์ E3 เป็ นสูตรรับเงินในชว่ งวันทีต


่ ้องการตามนี้

=IF( Date>=From, IF(Date<=To,Amount,0), 0)

หรือ

=IF( AND(Date>=From,Date<=To), Amount, 0)

ข ้อสงั เกต

ตัวอย่างนีใ้ ชสู้ ตร And มาชว่ ยเพราะต ้องการให ้คืนค่าเป็ น True เฉพาะในชว่ งวันที่ 2-5 เท่านัน

(ดูเซลล์ E8:K8)

Copyright of www.ExcelExpertTraining.com 
100 

้ ต
การใชส ู ร IF ในการเปลีย
่ นค่าหรือแสดงค่า

ในกรณีทผ
ี่ ลลัพธ์จากการคํานวณหรือค่าทีไ่ ด ้จากการลิงค์ตอ
่ มาจากเซลล์อน ่ า่ ที่
ื่ อาจไม่ใชค
้ นเสมอไป เราสามารถนํ าสูตร IF มาชว่ ยเปลีย
ต ้องการแสดงให ้ผู ้ใชเห็ ่ นค่าเดิมนัน
้ ให ้กลายเป็ น
ค่าใหม่หรือเปลีย
่ นจากตัวเลขหรือคําเตือน Error ให ้กลายเป็ นตัวอักษรทีส ื่ ความหมายได ้
่ อ
ั เจนกว่าแทน
ชด

โปรดดูตวั อย่างจาก Row 2 ข ้างต ้น ในการนํ าเลขมาหารกันนัน


้ หากเป็ นตัวเลขทีน
่ ํ ามาหารกัน
ได ้ ก็ยอ
่ มคืนค่าทีต ่ เมือ
่ ้องการออกมาได ้ทันที เชน ่ นํ าเลข 100 จากเซลล์ B2 มาหารด ้วยเลข 5
จากเซลล์ C2 โดยสร ้างสูตร = B2/C2 ลงไปในเซลล์ D2 จะได ้คําตอบเป็ นตัวเลข 20

ใน Row 5 ถ ้าเปลีย
่ นเลข 5 ทีเ่ ป็ นตัวหาร ให ้เป็ นเลข 0 แทน จะพบว่าสูตร =B5/C5 ไม่สามารถ
คํานวณได ้ โดยแสดง Error #DIV/0! ออกมาแทน (#DIV/0! ย่อมาจากคําว่า Error from
Divided by Zero หรือ Error เนือ
่ งจากการถูกหารด ้วยเลข 0)

่ นการแสดง Error ให ้เป็ นเลข 0 แทน โดยใชสู้ ตรตามตัวอย่างใน Row 8 ดังนี้


เราสามารถเปลีย

=IF(C8=0, 0, B8/C8)

หรืออ่านสูตรเป็ นคําแปลว่า ถ ้าเซลล์ตวั หารมีคา่ เท่ากับ 0 ให ้ผลลัพธ์แสดงเลข 0 แทนการแสดง


Error แต่ถ ้าตัวหารไม่ใชเ่ ลข 0 ก็ให ้คํานวณหารกันต่อไปตามปกติ

ถ ้าตัวหารไม่ใชเ่ ลข 0 แต่กลับกลายเป็ นตัวอักษร o จะพบว่าสูตร IF ข ้างต ้นนีค


้ อ
ื ค่าออกมาเป็ น
#VALUE! แทน เพราะ Excel ไม่ยอมรับการนํ าตัวอักษรไปหารตัวเลข

ใน Row 11 กรณีทต
ี่ วั หารเป็ นตัวอักษร o (หรือตัวอักษรอืน
่ ใด) เราสามารถป้ องกันการเกิด
Error จากการหารโดยใชสู้ ตร IsError มาชว่ ยตรวจสอบการคํานวณว่าจะเกิด Error หรือไม่

Copyright of www.ExcelExpertTraining.com 
101 

=IF( ISERROR(B11/C11), 0, B11/C11)

หรือตัง้ แต่ Excel 2007 เป็ นต ้นมามี IfError เป็ นสูตรใหม่ทส ั ้ ลง


ี่ น

=IFERROR(B11/C11,0)

หมายเหตุ

่ ะใชสู้ ตร IsError ควรหาทางตรวจสอบสูตรคํานวณทีส


1. ก่อนทีจ ่ ร ้างก่อนว่าสามารถ
่ ้องการหรือไม่ เพราะหากใชสู้ ตร IsError เข ้ามาชว่ ยร่วมกับสูตร IF
คํานวณได ้คําตอบทีต
แล ้ว เราจะไม่เห็น Error เกิดขึน
้ อีกเลย
2. ควรเลือกนํ าเฉพาะบางสว่ นของการคํานวณจากสูตรทีจ
่ ะนํ ามาตรวจสอบด ้วยสูตร
่ งไปในวงเล็บของสูตร IsError
IsError โดยไม่จําเป็ นต ้องนํ าสูตรยาวๆทัง้ หมดมาใสล
3. ในกรณีทเี่ กิด Error ขึน
้ ในกรณีทผ
ี่ ลลัพธ์เดิมเป็ น Text ควรเปลีย
่ น Error เป็ นคําเตือน
หรือกรณีผลลัพธ์เดิมเป็ นเลข ควรเปลีย ้ ให ้ใช ้ Format
่ น Error เป็ นเลข 0 แทน จากนัน
่ นเลข 0 ให ้ดูเหมือนเป็ นชอ
0;-0; ซอ ่ งว่าง
4. ในการเปลีย ่ งว่าง พยายามหลีกเลีย
่ นการแสดง Error ให ้แสดงเป็ นชอ ่ งการใช ้ Null Text

หรือ "" (แทนการใชเลข 0) เพราะ "" มีสภาพเป็ น Text ซงึ่ หากนํ าค่านีไ
้ ปบวกลบคูณ
หารต่อจะเกิด Error ต่อไปอีก กลายเป็ นภาระให ้เราต ้องสร ้างสูตร =IF(Cell="", "",
Cell) ต่อไปอีก ซงึ่ ทําให ้แฟ้ มคํานวณชาลงและมี
้ ขนาดใหญ่ขน
ึ้ โดยไม่จําเป็ น
ี่ ้องการแสดง #N/A ให ้ใชสู้ ตร NA()
5. ในกรณีทต
6. นอกเหนือจากการใชสู้ ตร IF ชว่ ยในการเปลีย ่ แล ้ว ในหน ้ากระดาษ
่ น Error ให ้เป็ นค่าอืน
ทีถ ู พิมพ์ สามารถใชคํ้ าสงั่ Page Setup > Sheet > Print > Cells error as เพือ
่ ก ่
เปลีย
่ นเซลล์ทม
ี่ ค ่ งว่าง, --, #N/A แทนได ้อีกด ้วย
ี า่ เป็ น Error ให ้แสดงเป็ นชอ

สูตรกลุม ้ ว
่ Is ทีใ่ ชช ่ ยในการตรวจสอบ

• IsNA ตรวจสอบ Error #N/A "Not Available" ซงึ่ เกิดจากสูตรกลุม


่ Lookup ในกรณีท ี่
หาค่าทีต
่ ้องการไม่พบ
• IsError ตรวจสอบ Error ทุกประเภท
• IsErr ตรวจสอบ Error เกือบทุกประเภท เว ้น NA
• IsBlank ตรวจสอบเซลล์วา่ ง

Copyright of www.ExcelExpertTraining.com 
102 

• IsText ตรวจสอบเซลล์มค
ี า่ เป็ น Text หรือค่าทีจ ิ ซายให
่ ะชด ้ ้เองเมือ ่
่ พิมพ์ลงไป เชน
'123 ถือว่าเป็ น Text
• IsNumber ตรวจสอบเซลล์มค
ี า่ เป็ น Number หรือค่าทีจ ิ ขวาให ้เองเมือ
่ ะชด ่ พิมพ์ลงไป
่ 10/4/2010 จะชด
เชน ิ ขวาเพราะถือว่าเป็ น Number

้ ต
การใชส ู ร IF ในการเปลีย ้ ทางการสง
่ นเสน ่ ค่า

ตามปกติสต
ู รทีส
่ ร ้างลงไปในเซลล์จะทําหน ้าทีค ่ งิ ค์มาจากเซลล์ต ้นทาง สว่ น
่ ํานวณหรือรับค่าทีล
การสง่ ค่าจากเซลล์ต ้นทางไปยังเซลล์ปลายทางโดยไม่ต ้องสร ้างสูตรลงไปในเซลล์นัน
้ ไม่
ี กติทวั่ ไป แต่ต ้องเขียนรหัส VBA เข ้ามาชว่ ย
สามารถทําได ้โดยวิธป

ตัวอย่าง กําหนดให ้สง่ ค่าจากเซลล์ Source ไปยังเซลล์ Target1 หรือ Target2 ตามเงือ
่ นไข
ต่อไปนี้

• ่ มีคา่ เป็ นเลข -111 ให ้สง่ ค่า -111 ไปยังเซลล์


หาก Source มีคา่ น ้อยกว่า 0 เชน
Target1
• ่ มีคา่ เป็ นเลข 222 ให ้สง่ ค่า 222 ไปยัง
หาก Source มีคา่ มากกว่าหรือเท่ากับ 0 เชน
เซลล์ Target2

เริม ื่ Source, Target1, Target2 ให ้กับเซลล์ C2, C5 ,C6 ตามลําดับและตัง้ ชอ


่ ต ้นจากให ้ตัง้ ชอ ื่
Target เป็ น Formula Name มีคา่ เป็ นสูตร

=IF( Source<0, Target1, Target2)

้ ให ้สร ้างชุดคําสงั่ นีล


จากนัน ้ งไปใน Visual Basic Editor

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 เป็ นสูตรทีม


่ ค
ี วามยืดหยุน ้ ง้ ตัวเลข ตัวอักษร สูตรอืน
่ อย่างมาก เราสามารถใชทั ่ หรือ
ตําแหน่งอ ้างอิงเพือ ้
่ ใชในการกํ าหนดเงือ ้ อ
่ นไข และสามารถใชเงื ่ นไขเปรียบเทียบค่าได ้ทัง้
เท่ากับ มากกว่า น ้อยกว่า หรือไม่เท่ากับ ซงึ่ ใน Excel ตัง้ แต่รน
ุ่ 2007 เป็ นต ้นมาได ้ปรับปรุงให ้

สามารถนํ าสูตรมาซอนเข ้าไปได ้ถึง 64 สูตร ทําให ้ใชสู้ ตร IF ได ้กว ้างขวางกว่า Excel 2003
หรือรุน
่ เก่าก่อนนัน
้ ทีซ ้
่ อนสู
ตรได ้อีกเพียง 7 สูตรเท่านัน

ไม่วา่ จะใชสู้ ตร IF ให ้เต็มทีต


่ ามความสามารถของ Excel รุน
่ เก่าหรือรุน
่ ใหม่ ถ ้าเขียนสูตร IF
้ นจนกลายเป็ นสูตรยาวเหยียดตามสูตรในเซลล์ D9 ต่อไปนี้ คุณคิดว่าอยากจะใชสู้ ตร 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)))))))

สูตรข ้างต ้นเป็ นสูตรคํานวณหาวันทีใ่ ดในแต่ละเดือนซงึ่ สน


ิ ค ้าทีเ่ ก็บไว ้ใน Stock จะเริม
่ ไม่
เพียงพอต่อการเบิกใช ้ โดยต ้องนํ าสูตร IF มาซอนกั
้ นเพือ ้
่ ตรวจสอบยอดเบิกใชสะสมตั
ง้ แต่วน

ิ้ เดือน เริม
แรกไปจนถึงสน ่ จากยอดเบิกวันแรกในเซลล์ F9 กลายเป็ นยอดเบิกสะสม 2 วันจาก
่ ยไปจนถึง F9:AJ9 ซงึ่ เป็ นยอดเบิก
เซลล์ F9:G9 หรือยอดเบิกสะสม 3 วันจากเซลล์ F9:H9 เรือ

ใชสะสมถึ
ง 31 ครัง้ ตามจํานวนวันในแต่ละเดือนมาเทียบกับปริมาณ Stock ในเซลล์ C9

ถ ้าใช ้ Excel 2003 หรือรุน


่ ก่อนนัน
้ ต ้องแยกสูตรทีซ ้
่ อนกั
นชุดละ 7 วัน โดยกําหนดเงือ
่ นไขในแต่
ละชุดว่า หากไม่เป็ นจริงให ้คืนค่าเท่ากับ 0 โปรดสงั เกตว่าในวงเล็บของ IF ทีซ ้
่ อนกั
นแต่ละชุด
นัน
้ จะลงท ้ายด ้วย ,0))))))) แล ้วจึงนํ าสูตร IF ทีซ ้
่ อนกั
นมาบวกเข ้าด ้วยกัน

โจทย์เดียวกันนี้ หากใช ้ Excel 2007 เป็ นต ้นมา เราสามารถซอน


้ IF ลงไปในวงเล็บของสูตร IF
ั ้ ลงบ ้างเหลือสูตรตามนี้
ร่วมกันได ้สูงสุดถึง 64 สูตรได ้เลย ทําให ้สูตรสน

=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)))))))))))))))))))))))))))))))

แม ้สูตร IF สามารถคํานวณหาคําตอบได ้ตามต ้องการ แต่จากโครงสร ้างยาวเหยียดนอกจากจะ


ึ้ แล ้ว ยังเพิม
ทําให ้แฟ้ มมีขนาดใหญ่ขน ี่ งในการติดตามแก ้ไขหรือตรวจสอบอีกด ้วย
่ ความเสย
ดังนัน ่ ะใชสู้ ตร IF เราสามารถใชสู้ ตรต่อไปนีแ
้ แทนทีจ ้ ทน

=(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

ถ ้ายังยาวเกินไปอีก ก็ต ้องหันมาใชสู้ ตร Array กันตามนี้

{=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)

สูตร Choose กับสูตร IF มีความเหมือนกันตรงที่ 2 สูตรนีเ้ หมาะกับการหาค่าคําตอบจากค่าที่


กระจายตัวโดยไม่จําเป็ นต ้องอยูใ่ นตารางทีเ่ ป็ นพืน
้ ทีต
่ อ
่ เนือ
่ งกันไป เพียงแต่สต
ู ร Choose ต ้อง
ใชตั้ วเลขลําดับเป็ นเลขจํานวนเต็มตัง้ แต่เลข 1 - 254 เป็ นเงือ
่ นไขในการเลือกคําตอบ สว่ นสูตร
IF สามารถรับเงือ ้ อ
่ นไขเปรียบเทียบได ้ทัง้ ตัวเลขและตัวอักษรและไม่จํากัดว่าต ้องใชเงื ่ นไขกรณี
่ ทีส
เท่ากันเพียงอย่างเดียวเชน ่ ต
ู ร Choose กําหนดไว ้

้ เ่ ป็ นสูตรตามนี้
สมมติวา่ สูตร 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)))))))))))))

สูตรข ้างต ้นใชค่้ าในเซลล์ E9 เป็ นเงือ ่ ถ ้าเซลล์


่ นไขในการเปรียบเทียบกับตัวอักษร A - M เชน
E9 มีคา่ เป็ นตัวอักษร A จะคืนค่าเป็ นค่าจากเซลล์ C2 แต่ถ ้าเซลล์ E9 มีคา่ เป็ นตัวอักษร B จะคืน
ค่าเป็ นค่าจากเซลล์ C5 เป็ นต ้น

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)))))))))))))

่ ก ้ไขใหม่นี้ ใชค่้ าในเซลล์ E9 เป็ นเงือ


สูตร IF ทีแ ่
่ นไขในการเปรียบเทียบกับตัวเลข 1 - 13 เชน
ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 1 จะคืนค่าเป็ นค่าจากเซลล์ C2 แต่ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 2
จะคืนค่าเป็ นค่าจากเซลล์ C5 เป็ นต ้น

เนือ ้ อ
่ งจากสูตร 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 สามารถใชเลื ่ ระจาย ซงึ่ การกระจายตัวนีเ่ องทีจ


้ อกค่าทีก ่ ะกลายเป็ นหนามยอกอก
่ สูตรต่อไปนี้
หากมีการกระจายตัวกันมากเกินไปเชน

=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, เลขลําดับ)

Single Row หรือ Single Column หมายถึงพืน


้ ทีต
่ ารางทีม
่ ค
ี วามสูงหรือความกว ้างเป็ นเซลล์
เดียวตามแนวนอนหรือแนวตัง้

ดังนัน ่ ะใชสู้ ตร IF หรือสูตร Choose ตามตัวอย่างทีก


้ แทนทีจ ่ ล่าวไปแล ้วนัน
้ หากเราสามารถจัด
โครงสร ้างตารางใหม่ให ้อยูใ่ นแนวนอนหรือแนวตัง้ และใชตั้ วเลขจํานวนเต็มตัง้ แต่เลข 1 เป็ นต ้น
ี้ ําแหน่ง ก็ควรหันมาใชสู้ ตร Index แทนดีกว่า กลายเป็ นสูตรตามนี้
ไปเป็ นตัวชต

=INDEX(A1:A10000, E9)

ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 1 จะคืนค่าเป็ นค่าจากเซลล์ A1 แต่ถ ้าเซลล์ E9 มีคา่ เป็ นตัวเลข 2
จะคืนค่าเป็ นค่าจากเซลล์ A2 แต่ถ ้า E9 มีคา่ เป็ นตัวเลข 10000 จะคืนค่าเป็ นค่าจากเซลล์
A10000 ซงึ่ การนํ าค่าทีต
่ ้องการมาจัดไว ้ในพืน
้ ทีเ่ ซลล์ A1:A10000 ทําให ้ง่ายในการค ้นหา
ตําแหน่งเซลล์เพือ
่ บันทึกหรือเปลีย
่ นแปลงค่าใหม่ในอนาคต

การเลือกใชสู้ ตรได ้อย่างเหมาะสม สูตรนัน


้ ต ้องสามารถรองรับกับเงือ
่ นไขทีอ
่ าจเปลีย
่ นแปลงได ้
้ จะเลือกใชสู้ ตร IF
ในอนาคตโดยเราไม่ต ้องย ้อนกลับมาแก ้ไขสูตรเก่าทีเ่ คยสร ้างไว ้อีกเลย ดังนัน
้ น
หรือ Choose หรือ Index ก็ต ้องคิดพิจารณาให ้เหมาะสมด ้วยว่าโครงสร ้างตารางและค่าทีใ่ ชเป็
เงือ
่ นไขนัน
้ เป็ นอย่างไร

่ ะปล่อยให ้บันทึกค่าอย่างตามใจหรือไม่ได ้ใสใ่ จว่าจะใชตํ้ าแหน่งเซลล์ทใี่ ดในการบันทึก


แทนทีจ
ค่า หากรู ้จักออกแบบตารางให ้เหมาะสมจะชว่ ยให ้เราสามารถเลือกใชสู้ ตรได ้ยืดหยุน
่ มากขึน

Copyright of www.ExcelExpertTraining.com 
109 

หนีสต ้ ต
ู ร IF ไปใชส ู ร VLookup

VLookup ย่อมาจากคําว่า Vertical Lookup ทําหน ้าทีต


่ รงตามคําแปลทีห
่ มายถึงการมองตาม
่ จากใชค่้ าทีต
แนวตัง้ โดยเริม ่ ้องการค ้นหา นํ าไปเปรียบเทียบกับค่าทีเ่ ก็บไว ้ในตารางจาก
้ ดว่า ค่าทีใ่ ชค้ ้นหานัน
Column ซายสุ ้ ดนัน
้ อยูใ่ นแนวของค่าใดใน Column ซายสุ ้ แล ้วคืนค่าเป็ น
คําตอบจาก Column ตามเลขทีเ่ ราต ้องการ โดย VLookup มีโครงสร ้างสูตร 2 แบบ

โครงสร้างสูตรแบบ Approaching Match

้ ดเป็ นตัวเลขต่อเนือ
เหมาะกับตารางข ้อมูลที่ Column ซายสุ ่ งทีเ่ รียงค่าจากน ้อยไปมาก
โครงสร ้างนีท
้ ํางานตามเงือ
่ นไขแบบน ้อยกว่าหรือเท่ากับ


=VLOOKUP(ค่าทีใ่ ชหา, ตารางทีเ่ ก็บค่า, เลขที่ Column ของคําตอบ)

โครงสร้างสูตรแบบ Exact Match

้ ดเป็ นรหัส ซงึ่ ไม่จําเป็ นต ้องเรียงค่า โครงสร ้างนี้


เหมาะกับตารางข ้อมูลที่ Column ซายสุ
ทํางานแบบเงือ
่ นไขเท่ากับ


=VLOOKUP(ค่าทีใ่ ชหา, ตารางทีเ่ ก็บค่า, เลขที่ Column ของคําตอบ,
FALSE หรือ 0)

ในกรณีทใี่ ชสู้ ตร IF หาคําตอบเป็ นเกรด A B หรือ C โดยใชสู้ ตร =IF( E3>=B3, C3,


IF(E3>=B4,C4,C5) )

่ นมาใชสู้ ตร VLookup ต ้องเรียงคะแนนในตารางจากน ้อยไปมาก ตามรูป


หากต ้องการเปลีย
ต่อไปนีแ
้ ทน

Copyright of www.ExcelExpertTraining.com 
110 

เซลล์ F3 สร ้างสูตร =VLOOKUP(E3,B3:C5,2) ซงึ่ เป็ นสูตร VLookup แบบ Approaching


Match เนือ ้
่ งจากค่าทีใ่ ชหาเป็ นตัวเลข และตัวเลขนีส
้ ามารถเป็ นตัวเลขทีต
่ อ
่ เนือ
่ งกันไป และคืน
ค่าได ้คําตอบเป็ นเกรด B โดยมีลําดับการทํางานของสูตร ดังนี้

1. VLookup นํ าคะแนนทีส
่ อบได ้ 75 คะแนน ไปตรวจสอบกับตารางข ้อมูล B3:C5

2. ใน Column ซายสุ
ดทีเ่ รียงเลขจากน ้อยไปมากนัน
้ พบว่าเลขคะแนน 70 เป็ นเลขทีม
่ าก
ทีส
่ ด ่ งั น ้อยกว่าหรือเท่ากับเลข 75 ซงึ่ เป็ นคะแนนทีส
ุ ทีย ่ อบได ้ แสดงว่าคําตอบทีต
่ ้องการ
อยูใ่ นแนวเดียวกับเลขคะแนน 70 แน่นอน
่ งไปในวงเล็บของสูตร VLookup เป็ นตัวเลขแทน Column ทีส
3. เลข 2 ทีใ่ สล ่ องในพืน
้ ที่
ตาราง B3:C5 ซงึ่ เป็ น Column เรือ
่ งเกรดทีเ่ ป็ นคําตอบ จึงคืนค่าออกมาเป็ นเกรด B

หากเลือกใชสู้ ตรแบบ Exact Match =VLOOKUP(E3,B3:C5,2,0) ซงึ่ เพิม


่ เลข 0 ต่อท ้ายลงไป
ในวงเล็บ จะได ้คําตอบเป็ น #N/A เนือ ้
่ งจาก Column ซายสุ
ดทีเ่ ป็ นตัวเลขคะแนน ไม่มเี ลข 75
แสดงไว ้ จึงคืนค่าคําตอบออกมาว่า Not Available แสดงว่าหาค่าทีต
่ ้องการไม่พบ

แม ้การใชสู้ ตร VLookup จะชว่ ยให ้ได ้สูตรทีส ั ้ ลงก็ตาม แต่จะทําให ้ Excel คํานวณชากว่
่ น ้ าใน
กรณีทใี่ ชสู้ ตร IF หากตารางทีใ่ ชเก็
้ บข ้อมูลมีขนาดใหญ่ขน
ึ้ ก็จะสง่ ผลให ้สูตร VLookup คํานวณ

ชาลง ี ได ้อย่างก็จําเป็ นต ้องเสย
เราจึงต ้องพึงระวังไว ้เสมอว่าทุกอย่างมีทงั ้ ข ้อดีข ้อเสย ี อย่าง
่ กัน
เชน

Copyright of www.ExcelExpertTraining.com 
111 

หนีสต ้ ต
ู ร IF ไปใชส ู ร Max Min หรือแค่ใชว้ งเล็ บชว
่ ย

่ นไขทีใ่ ชกั้ นมากทีส


ในบรรดาเงือ ุ ในชวี ต
่ ด ิ ประจําวันเห็นจะหนีไม่พ ้นเงือ
่ นไขเกีย ิ ใจ
่ วกับการตัดสน
ในเรือ ่ เกณฑ์การคํานวณภาษี เงินได ้
่ งห ้ามเกินกว่าหรือห ้ามตํา่ กว่า ยกตัวอย่างทีใ่ กล ้ตัว เชน
บุคคลธรรมดา มีหลักคํานวณภาษี จากเงินได ้ว่า เงินได ้ชว่ งทีไ่ ม่เกินกว่ายอดนัน
้ ยอดนีใ้ ห ้ใชอั้ ตรา
ภาษี เท่านัน
้ เท่านี้ หรือภาษี เงินได ้ของบริษัทต ้องคํานวณจากยอดกําไร แต่ถ ้าขาดทุนก็ไม่
จําเป็ นต ้องจ่ายภาษี เทียบได ้กับเงือ
่ นไขทีห
่ ้ามคิดภาษี ถ ้ามีตวั เลขตํา่ กว่า 0 นั่นเอง

่ าจเป็ นไปได ้ทัง้ ค่าบวกลบและศูนย์ แล ้วกําหนดให ้ใชสู้ ตร IF ปรับค่านีใ้ ห ้เป็ น


ถ ้ามีตวั เลขใดๆทีอ
ค่าใหม่ทห
ี่ ้ามตํา่ กว่า 0 แต่ถ ้าตัวเลขนัน
้ มีคา่ มากกว่า 0 อยูแ
่ ล ้ว ก็ขอให ้คงค่าเดิม จะต ้องสร ้าง
สูตรตามนี้

=IF(เซลล์ตวั เลข<0, 0, เซลล์ตวั เลข)

หรือ

=IF(เซลล์ตวั เลข>=0, เซลล์ตวั เลข, 0)

่ ะใชสู้ ตร IF ในเงือ
แทนทีจ ่ นไขทีเ่ กีย
่ วข ้องกับข ้อกําหนดห ้ามตํา่ กว่าหรือห ้ามเกินกว่า เรา

สามารถนํ าสูตร Max หรือ Min มาใชแทนโดยใช ้ กชว่ ยจํา ดังนี้
หลั

• สูตร Max หรือ Min นีท


้ ํางานตรงข ้ามกับความเข ้าใจ
• ปกติสต ่ าค่าสูงสุด แต่ให ้ใชกั้ บเงือ
ู ร Max ทําหน ้าทีห ่ นไขห ้ามตํา่ กว่า โดยใชสู้ ตร
=MAX(ต ัวเลขตามเกณฑ์ตา ่ อ
ํ่ สุดทีเ่ ป็นไปได้, ต ัวเลขทีต ้ งการเทียบ)
• ปกติสต ่ าค่าตํา่ สุด แต่ให ้ใชกั้ บเงือ
ู ร Min ทําหน ้าทีห ่ นไขห ้ามเกินกว่า โดยใชสู้ ตร
=MIN(ต ัวเลขตามเกณฑ์สง
ู สุดทีเ่ ป็นไปได้, ต ัวเลขทีต
่ อ
้ งการเทียบ)

ตามตัวอย่างข ้างต ้นทีใ่ ชสู้ ตร IF ปรับตัวเลขไม่ให ้ตํา่ กว่า 0 นัน ่ นมาใชสู้ ตร Max
้ สามารถเปลีย
ต่อไปนีแ
้ ทน

=MAX(0, เซลล์ตวั เลข)

สว่ นในกรณีทต
ี่ ้องการสร ้างสูตรควบคุมตัวเลขไม่ให ้เกินเลข 100 สามารถใชสู้ ตร IF หรือ Min
ได ้ตามนี้

Copyright of www.ExcelExpertTraining.com 
112 

=IF(เซลล์ตวั เลข>100, 100, เซลล์ตวั เลข)

หรือ

=IF(เซลล์ตวั เลข<=100, เซลล์ตวั เลข, 100)

หรือ

=MIN(100, เซลล์ตวั เลข)


นอกจากนีเ้ รายังสามารถใชวงเล็ บชว่ ยในการตัดสน
ิ ใจโดยไม่จําเป็ นต ้องพึง่ พาสูตรใดๆ เชน

กรณีทต ่ นตัวเลขให ้ไม่ตํา่ กว่า 0 ตามตัวอย่างข ้างต ้น ให ้ใชสู้ ตรทีใ่ ชวงเล็
ี่ ้องการเปลีย ้ บชว่ ย
ต่อไปนีไ
้ ด ้เลย

=(เซลล์ตวั เลข<=0)*0 + (เซลล์ตวั เลข>0)*เซลล์ตวั เลข


การใชวงเล็ บชว่ ยในการตัดสน
ิ ใจ มีหลักการดังนี้

้ ้เฉพาะเมือ
1. สามารถใชได ่ ผลลัพธ์ทต
ี่ ้องการเป็ นตัวเลขเท่านัน
้ เนือ
่ งจากต ้องนํ าตัวเลขมา
คํานวณต่อกันไปเรือ
่ ยๆ
2. หากมีหลายวงเล็บ ต ้องมีเงือ
่ นไขเดียวในวงเล็บหนึง่ เท่านัน
้ ทีเ่ ป็ นจริง และเงือ
่ นไขใน
วงเล็บอืน
่ ต ้องเป็ นเท็จทัง้ หมด
3. เงือ ้
่ นไขทีใ่ ชตรวจสอบนั ้ ถ ้าคืนค่าเป็ นเท็จ ถือว่ามีคา่ เท่ากับเลข 0 แต่ถ ้าคืนค่าเป็ นจริง

ถือว่ามีคา่ เท่ากับเลข 1
4. ให ้นํ าเงือ
่ นไขมาบวกกันในกรณีทก
ี่ ําหนดให ้เงือ
่ นไขเดียวเท่านัน
้ เป็ นจริง หรือนํ าเงือ
่ นไข
มาคูณกันในกรณีทต
ี่ ้องการตรวจสอบว่าทุกเงือ
่ นไขเป็ นจริงพร ้อมกัน

จากตัวอย่างข ้างต ้นในกรณีทห ่ เซลล์ตวั เลขมีคา่ เท่ากับ -5 เมือ


ี่ ้ามตํา่ กว่า 0 เชน ่ นํ ามาแทนค่าลง
ไปในสูตร =(เซลล์ตวั เลข<=0)*0 + (เซลล์ตวั เลข>0)*เซลล์ตวั เลข แล ้ว Excel จะคิดทีละขัน

ตามนี้

1. แทนค่าตัวเลขลงไปในสูตรเป็ น =(-5<=0)*0 + (-5>0)*-5


2. วงเล็บของ (-5<=0) จะคืนค่า TRUE หรือเทียบเท่ากับ 1
3. วงเล็บของ (-5>0) จะคืนค่า FALSE หรือเทียบเท่ากับ 0
4. จะได ้สูตร =1*0 + 0*-5
5. จะได ้สูตร =0 + 0

Copyright of www.ExcelExpertTraining.com 
113 

6. ซงึ่ ปรับค่า -5 ออกมาเป็ น 0

แต่ถ ้าเซลล์ตวั เลขมีคา่ เท่ากับ 5 เมือ


่ นํ ามาแทนค่าลงไปในสูตร =(เซลล์ตวั เลข<=0)*0 +
(เซลล์ตวั เลข>0)*เซลล์ตวั เลข แล ้ว Excel จะคิดทีละขัน
้ ตามนี้

1. แทนค่าตัวเลขลงไปในสูตรเป็ น =(5<=0)*0 + (5>0)*5


2. วงเล็บของ (5<=0) จะคืนค่า FALSE หรือเทียบเท่ากับ 0
3. วงเล็บของ (5>0) จะคืนค่า TRUE หรือเทียบเท่ากับ 1
4. จะได ้สูตร =0*0 + 1*5
5. จะได ้สูตร =0 + 5
6. ซงึ่ ปรับค่า 5 ออกมาเป็ น 5 เท่ากับค่าบวกตามค่าเดิมนั่นเอง


แม ้การใชวงเล็ บชว่ ยในการตัดสน
ิ ใจจะเกิดสูตรทีม ี วามยาวซงึ่ ดูเหมือนไม่จําเป็ นก็ตาม แต่
่ ค
โครงสร ้างสูตรภายในวงเล็บทุกวงเล็บมีความคล ้ายคลึงกัน จึงสามารถตรวจสอบแก ้ไขได ้ง่าย
และยังเป็ นพืน
้ ฐานของการคํานวณแบบ Array อีกด ้วย

Copyright of www.ExcelExpertTraining.com 
114 

หนีสต ้ า
ู ร IF ไปใชค ํ สง่ ั Format

่ มใช ้ Excel รุน


สมัยทีผ ่ แรกๆ Excel ไม่ได ้มีคําสงั่ บนเมนูให ้เลือกใชได
้ ้มากมายอย่างเชน
่ ทุกวันนี้
่ หละชว่ ยในการตรวจสอบค่าต่างๆ อย่างเชน
แต่ก็ได ้พึง่ สูตร IF นีแ ่ ถ ้าต ้องการตรวจสอบค่าที่
้ ก็ต ้องใชสู้ ตร IF มาผสมกับสูตร IsNumber เพือ
พิมพ์ลงไปว่าเป็ นตัวเลขอย่างเดียวเท่านัน ่
ตรวจสอบค่าทีพ
่ ม ่ วั เลข ให ้แสดงคําเตือนออกมาว่า Input is Wrong ตามสูตร
ิ พ์วา่ ถ ้าไม่ใชต
ต่อไปนี้

=IF(ISNUMBER(Cell), "OK", "Input is Wrong")

การใชสู้ ตรดังกล่าวจําเป็ นต ้องสร ้างสูตรลงไปในอีกเซลล์หนึง่ เพือ


่ เป็ นเซลล์ทแ
ี่ สดงคําเตือน
ออกมาให ้เห็น นอกจากสูตร IF ก็มแ ู แบบจากคําสงั่ Format เป็ นอีกเครือ
ี ต่รป ่ งมือหนึง่ ทีก
่ ําหนด
่ ถ ้าหากต ้องการเตือนว่า Input is Wrong ในเซลล์ทค
ลงไปในเซลล์ เชน ี่ วบคุมว่าต ้องเป็ น
ตัวเลขเท่านัน
้ ก็สามารถกําหนด Format ตามนี้

0;-0;0;"Input is Wrong"

แม ้ Format จะแสดงคําว่า Input is Wrong ให ้เห็นในเซลล์ทบ


ี่ น
ั ทึกค่าลงไปก็ตาม แต่ก็ถอ
ื ว่า
ได ้เกิดค่าทีผ
่ ด
ิ พลาดขึน
้ มาแล ้ว ต่างจาก Excel รุน
่ ใหม่ทม ี ําสงั่ บนเมนู Data Validation กับ
ี่ ค
Conditional Formatting ให ้เลือกใช ้ ซงึ่ สามารถแสดงคําเตือนหรือเปลีย
่ นสใี ห ้เห็นชด
ั ในเซลล์
นัน
้ ๆเลย

Copyright of www.ExcelExpertTraining.com 
115 

วิธใี ช ้ Data Validation

ื่ เดือนลงไปในเซลล์ ซงึ่ ทีผ


สมมติวา่ ต ้องการพิมพ์ชอ ิ ซํ้าแล ้วซํ้าอีก จึงต ้องการ
่ า่ นมาเคยพิมพ์ผด
สงั่ ให ้ Excel แสดงคําเตือนขึน
้ มาเมือ ื่ เดือนผิด
่ พิมพ์ชอ

ื่ Range Name ให ้กับเซลล์ทเี่ ก็บชอ


1. ตัง้ ชอ ื่ เดือนในเซลล์ B2:B7 ให ้มีชอ
ื่ ว่า Choice
2. เลือกเซลล์ D2 ทีเ่ ป็ นเซลล์ซงึ่ ต ้องการพิมพ์ชอ
ื่ เดือนทีต
่ ้องการแล ้วสงั่ Data > Data
Validation (Excel 2003 สงั่ Data > Validation)
่ ง Allow คลิกเลือก List (ในชอ
3. ในชอ ่ ง Allow นีเ้ องทีเ่ ราสามารถเลือกประเภทของ
่ อมรับได ้อีกหลายอย่างตามแต่จะกําหนด หรือเลือก Allow แบบ Custom เพือ
ข ้อมูลทีย ่
ใชสู้ ตรตรวจสอบการบันทึกค่า)
่ ง Source แล ้วกดปุ่ ม F3 เพือ
4. ให ้คลิกลงไปในชอ ื่ Range Name ทีม
่ เปิ ดรายชอ ่ อ
ี ยูข
่ น
ึ้ มา
5. ให ้เลือ ื่ Choice เพือ
่ นหาชอ ่ เลือกแล ้วกดปุ่ ม OK 2 ครัง้
6. จะพบว่าเซลล์ D2 มีปมลู
ุ่ กศรแสดงขึน
้ มาทางขอบด ้านขวา และเมือ
่ คลิกปุ่ มลูกศรนีก
้ ็จะมี
ื่ เดือนแสดงให ้คลิกเลือกก็ได ้ หรือ
รายชอ
ื่ เดือนลงไปในเซลล์
หากทดลองพิมพ์ชอ
ื่ เดือนผิด พอกด
D2 เอง ถ ้าเราพิมพ์ชอ
ปุ่ ม Enter เพือ ื่ เดือนลงไป จะมีคํา
่ รับชอ
เตือนแสดงขึน
้ มาให ้เห็นว่า The value you entered is not valid.

Copyright of www.ExcelExpertTraining.com 
116 

วิธใี ช ้ Conditional Formatting

ื่ เดือน May ในเซลล์ D2 แล ้ว ต ้องการเปลีย


สมมติวา่ พอคลิกเลือกชอ ่ นสเี ซลล์ในตารางทีต ื่
่ งั ้ ชอ
ว่า Choice ในเซลล์ทม
ี่ ค
ี ําว่า May ตรงตามทีเ่ ลือก ให ้ทําดังนี้

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 

การใช ้ Validation และ Conditional Formatting ควบคุมตําแหน่งของ


เซลล์ทจ
ี่ ะเปิ ดให้พม
ิ พ์คา่

ี้ นหัวตารางทีเ่ ป็ น Y
จากรูปต่อไปนี้ หากต ้องการควบคุมให ้เปิ ดบันทึกค่าได ้ตามตําแหน่งตัวชบ
และตามตําแหน่งข ้างตารางทีเ่ ป็ น B และให ้เปลีย ี อกตําแหน่งอีกด ้วย จะพบว่าเซลล์ D4
่ นสบ
เปลีย ี ละเป็ นเซลล์เดียวเท่านัน
่ นสแ ้ ทีจ
่ ะเปิ ดให ้พิมพ์คา่ ใหม่ลงไปได ้

้ ทีเ่ ซลล์ C3:E4 ซงึ่ เป็ นพืน


1. คลิกเลือกพืน ้ ทีใ่ นตาราง
้ ใชคํ้ าสงั่ Conditional Formatting ในทํานองเดียวกับตัวอย่างข ้างต ้น ต่างกัน
2. จากนัน
เพียงใชสู้ ตร =C$2&$B3=$C$6&$C$7
3. ตามด ้วยคําสงั่ Data Validation โดยใช ้ Allow แบบ Custom โดยกําหนดให ้ใชสู้ ตร
=C$2&$B3=$C$6&$C$7 ซงึ่ เป็ นสูตรเดียวกันกันทีใ่ ชกั้ บ Conditional
Formatting นั่นเอง (หรือจะใชสู้ ตร =And(C$2=$C$6,$B3=$C$7)

Copyright of www.ExcelExpertTraining.com 
118 

สูตร Array

เรือ
่ งสูตร Array เป็ นเรือ
่ งทีผ
่ มเคยเขียนมาแล ้วหลายครัง้ เคยอธิบายมาแล ้วหลายรอบ ทุกครัง้ ที่
จัดอบรมก็พด
ู เรือ
่ งสูตร Array อยูเ่ สมอ คนทีฟ
่ ั งเรือ
่ งสูตร Array แล ้วเข ้าใจก็จะเข ้าใจในทันที
แล ้วก็ต ้องมานั่งเบือ
่ นั่งทนฟั งผมอธิบายเรือ ้ ํ้าแล ้วซํ้าอีก เพราะคนสว่ นใหญ่เขา
่ งสูตร Array นีซ
ฟั งกีท
่ ก
ี ท
ี่ ก
ี ็ไม่เข ้าใจเรือ
่ งสูตร Array นีส ั ที ไม่ใชว่ า่ ฟั งแบบเข ้าหูซายแล
้ ก ้ ้วทะลุหข
ู วาหรอก แต่
แย่ยงิ่ กว่านัน
้ อีก พออธิบายเรือ ี งพูดอธิบายของผมมันเดินทางไป
่ งสูตร Array ทีไร ปรากฏว่าเสย
ี ด ้วยซํ้า เพราะคนฟั งพอฟั งแล ้วไม่รู ้เรือ
ไม่ถงึ หูคนฟั งเสย ่ งก็จะมีอาการหนังตาหนักขึน
้ เรือ
่ ยๆแล ้ว
หลับหูหลับตาไม่ได ้ฟั งทุกครัง้ ไป

"ถ ้าคุณใชสู้ ตร Array เป็ น จะแก ้ปั ญหาอะไรได ้บ ้าง" ผมคิดว่าต ้องเริม
่ อธิบายให ้พวกเราเห็น
คุณประโยชน์ของสูตร Array กันก่อน ถ ้าเห็นประโยชน์ของสูตร Array ว่าจะชว่ ยแก ้ปั ญหาของ
้ ้วจะได ้มีความตัง้ หน ้าตัง้ ตาตัง้ ใจมา
ตัวเองได ้มากมายขนาดไหน จะได ้เกิดความอยากใชแล
เรียนรู ้สูตร Array

ประโยชน์ของสูตร Array

สูตร Array จะชว่ ยทําให ้คุณสามารถทําสงิ่ ทีไ่ ม่นก


ึ ไม่ฝันว่า Excel จะทําได ้มาก่อน ได ้แก่

1. ทําให ้แฟ้ มมีขนาดเล็กลง เนือ


่ งจากแทนทีจ
่ ะต ้องสร ้างตารางหลายๆตารางเพือ
่ แยก
คํานวณทีละขัน
้ เราสามารถสร ้างสูตร Array ลงไปในเซลล์เพียงเซลล์เดียวก็ได ้คําตอบ
่ ้องการแล ้ว
ทีต
ี เดียว โดยไม่ต ้องแยกตารางฐานข ้อมูลออกเป็ น
2. ทําให ้เก็บข ้อมูลไว ้ในตารางเดียวชท
ี เพียงเพือ
หลายตารางหรือหลายชท ่ ต ้องการหายอดรวมแยกประเภทตามข ้อมูลทีจ
่ ัดแยก
ไว ้
3. ทําให ้ Excel ทํางานแบบคอมพิวเตอร์ได ้อย่างแท ้จริง พอกรอกค่าลงไปก็จะได ้คําตอบที่
ี แรงและเสย
ต ้องการทันที ไม่ต ้องเสย ี เวลาคลิกเลือกใชคํ้ าสงั่ บนเมนู เชน
่ ไม่ต ้องสงั่
Sort ตารางก็จัดเรียงให ้เองแล ้ว หรือไม่ต ้องสงั่ AutoFilter ก็สามารถหายอดรวมแยก
ประเภทได ้แล ้ว
4. ทําให ้สูตรสําเร็จรูปของ Excel มีความสามารถเหนือชน
ั ้ ขึน
้ กว่าเดิม สามารถใชสู้ ตรใน
เซลล์เดียวลัดหาคําตอบ

Copyright of www.ExcelExpertTraining.com 
119 

ในการอบรมครัง้ หนึง่ มีผู ้เข ้าอบรมคนหนึง่ มีทา่ ทีไม่สนใจเรียนรู ้สูตร Array โดยอ ้างว่า ทําไมต ้อง
ใชสู้ ตร Array ด ้วยในเมือ
่ Excel ก็มส ู รและคําสงั่ บนเมนูอยูแ
ี ต ่ ล ้ว ถ ้าอยากได ้อะไรก็แค่คลิก
คําสงั่ บนเมนู ก็จะได ้คําตอบทีต ่ รือ
่ ้องการแล ้วมิใชห

้ กคําสงั่ บนเมนูทวี่ า่ นัน


ผมจึงเรียนถามกลับว่า แล ้วมือทีใ่ ชคลิ ้ น่ะเป็ นมือของใคร ถ ้าคุณสง่ แฟ้ มไป
ให ้หัวหน ้าทีใ่ ช ้ Excel ไม่เป็ น หัวหน ้าจะรู ้วิธเี ลือกคลิกเมนูนัน
้ เมนูนด
ี้ ้วยหรือ เห็นทีหวั หน ้าต ้อง
พึง่ พามือของคุณไปชวั่ ชวี ต
ิ หรือไม่ แต่ถ ้าคุณสร ้างสูตร Array เป็ น แฟ้ มนัน
้ ๆจะทํางานต่อเอง
้ มของคุณ
อย่างอัตโนมัตโิ ดยไม่ต ้องห่วงว่าใครจะเป็ นผู ้ใชแฟ้

่ งการใช ้ Pivot Table เหมือนกันทีห


อย่างเรือ ้ นชวี ต
่ วั หน ้ามักชอบใชเป็ ิ จิตใจแล ้วผลักดันให ้
ลูกน ้องใช ้ Pivot Table ตามกันไปทัง้ บริษัท โดยหารู ้ไม่วา่ ถ ้าใช ้ Array เป็ นก็แทบไม่จําเป็ นต ้อง
ใช ้ Pivot Table เสย
ี ด ้วยซํ้า

ี ของสูตร Array
ข้อเสย


1. ทําให ้แฟ้ มคํานวณชาลง ่ งจากการใชสู้ ตร Array จะชว่ ยทําให ้แฟ้ มมีขนาดเล็กลง
แต่เนือ
ซงึ่ โดยทัว่ ไปย่อมสง่ ผลให ้แฟ้ มเล็กคํานวณเร็วกว่าแฟ้ มใหญ่ ถ ้าคุณออกแบบโครงสร ้าง
ตารางให ้เหมาะกับสูตร Array ด ้วย ปั ญหาเรือ
่ งนีก
้ ็จะชดเชยกันไป
2. ทําให ้แก ้ไขสูตรยากขึน
้ เพราะคนทัว่ ไปมักไม่เข ้าใจเรือ
่ งสูตร Array เป็ นพืน
้ อยูแ
่ ล ้วและ
ไม่ทราบว่าขัน
้ ตอนการสร ้างสูตร Array ต ้องกดปุ่ ม Ctrl+Shift+Enter พร ้อมกันแทนที่
จะกดปุ่ ม Enter
3. คนทีต
่ ด ั ชอบสร ้างสูตร Array มักหลงลืมมองข ้ามสูตรสําเร็จรูปอืน
ิ นิสย ่ ทีม
่ อ
ี ยูแ
่ ล ้วใน
โปรแกรม Excel ซงึ่ สูตรสําเร็จรูปจะใชเวลาคํ
้ านวณเร็วกว่าสูตร Array

้ งต้นของ Array
เบือ

ขนาดผมใชสู้ ตร Array มานานนับสบ


ิ ปี สร ้างสูตร Array เพือ
่ ใชกั้ บงานมาสารพัดชนิด ตอบ
่ ง Array ใน Excel Expert Forum ซํ้าแล ้วซํ้าอีกนับเป็ นพันๆครัง้ แต่ก็ยงั มีสต
คําถามเรือ ู ร Array
อีกเยอะทีผ
่ มเห็นแล ้วต ้องถอนหายใจ ไม่สามารถแกะทีไ่ ปทีม ้
่ าของลําดับการคํานวณทีใ่ ชใน
สูตร Array เหล่านัน
้ เพราะเป็ นสูตรทีค
่ นอืน
่ สร ้างขึน
้ ถ ้าคนทีส
่ ร ้างสูตร เขาไม่ได ้เขียนอธิบาย
แนวคิดประกอบสูตรไว ้ด ้วย ย่อมทําให ้ผู ้อืน
่ คิดถามในใจว่า “เขาสร ้างสูตรยากๆยาวๆแบบนีข
้ น
ึ้ มา
่ มาใช ้ ก็ได ้แต่ใช ้ ไม่สามารถดัดแปลง
ได ้อย่างไรกัน” แล ้วถ ้าเราได ้แต่ลอกเอาสูตรของคนอืน

Copyright of www.ExcelExpertTraining.com 
120 

แก ้ไขสูตรทีล
่ อกมาเพือ
่ ปรับให ้เข ้ากับเงือ
่ นไขในงาน วันหนึง่ เราก็จะหน ้าแตก เมือ
่ ถูกจับได ้ว่า
้ ถ ้าจะคิดใชสู้ ตร Array ต ้องหาทางสร ้างสูตรเอง
ไม่ได ้เก่งจริง “อ ้อ ลอกสูตรเขามานีเ่ อง” ดังนัน
ให ้เป็ น แม ้สูตร Array ทีส
่ ร ้างขึน
้ เองเป็ นสูตรยาวกว่าสูตรของคนอืน
่ ก็ตาม

สูตร Array สูตรแรกๆทีท


่ ําให ้ผมเกิดความประทับใจแล ้วเกิดแรงบันดาลใจให ้อยากเรียนรู ้เรือ
่ ง
้ เป็ นสูตรทีใ่ ชคํ้ านวณหาจํานวน Unique Items หรือนับจํานวนชอ
สูตร Array มากขึน ื่ รายการที่
ไม่ซํ้ากัน

{=SUM(1/CountIF(DataRange,DataRange))}

ื่ ลูกค ้าไว ้ตามนี้ aa, bb, aa, cc, bb สูตรนีจ


สมมติวา่ ใน DataRange บันทึกชอ ้ ะหาคําตอบเป็ น
เลข 3 ซงึ่ หมายถึงการนับชอ
ื่ ลูกค ้าว่ามีอยู่ 3 คน คือ aa, bb, และ cc แต่กว่าจะหาทางสร ้างสูตร
ให ้ทํางานได ้ก็ต ้องทราบก่อนว่าเครือ
่ งหมายวงเล็บปี กกา { } ทีเ่ ห็นอยูด
่ ้านหน ้าสุดและด ้าน
้ ไม่ใชเ่ ครือ
ท ้ายสุดของสูตรนัน ่ งหมายวงเล็บปี กกาทีพ
่ ม
ิ พ์เอง แต่เกิดจากการกดปุ่ ม
่ งว่างใน DataRange ด ้วย
Ctrl+Shift+Enter พร ้อมกันและห ้ามมีชอ

ตอนทีผ
่ มเห็นสูตรนีก
้ ็คด ้ กการใดในการคํานวณ แต่พออ่านคําอธิบายทีม
ิ ไม่ออกว่ามันใชหลั ่ ากับ
สูตรจึงเข ้าใจ สูตรนีเ้ ป็นการหายอดรวมของค่าเฉลีย
่ ต่อต ัวของแต่ละรายการใน
ื่ แต่ละชอ
DataRange กล่าวคือ ถ ้านับจํานวนชอ ื่ ใน DataRange aa, bb, aa, cc, bb จะพบ
จํานวนของการซํ้ากันดังนี้

• มี aa ซํ้ากันอยู่ 2 ตัว ดังนัน


้ ค่าเฉลีย
่ ต่อตัวของ aa แต่ละตัวคือ 1/2
• มี bb ซํ้ากันอยู่ 2 ตัว ดังนัน
้ ค่าเฉลีย
่ ต่อตัวของ bb แต่ละตัวคือ 1/2
• มี cc อยู่ 1 ตัว ดังนัน
้ ค่าเฉลีย
่ ต่อตัวคือ 1

เมือ
่ รวมค่าเฉลีย
่ ต่อตัวเข ้าด ้วยกัน จาก DataRange aa, bb, aa, cc, bb
=1/2+1/2+1/2+1+1/2 จะได ้คําตอบเป็ นจํานวนของ Unique Items เท่ากับ 3

จวบจนปั จจุบน
ั นีย
้ งั ตามหาคนทีค
่ ด
ิ สร ้างสูตรยอดเยีย
่ มนีข
้ น
ึ้ มาเป็ นครัง้ แรกไม่พบว่าเป็ นใคร ยังดี
ทีม
่ ค
ี ําอธิบายประกอบสูตรนีไ
้ ว ้ด ้วย

Copyright of www.ExcelExpertTraining.com 
121 

อยากเก่งสูตร Array ต้องสร้างไปแกะไป

จากคําอธิบายทีเ่ ขียนไว ้เกีย


่ วกับทีไ่ ปทีม
่ าของสูตรคํานวณหาจํานวน Unique Items ว่า เป็ นการ
่ ต่อตัวของแต่ละรายการใน DataRange ย่อมทําให ้คนสว่ นใหญ่ทเี่ พิง่
หายอดรวมของค่าเฉลีย
้ ตรนีช
รู ้จักสูตร Array เป็ นครัง้ แรกคงยังไม่เข ้าใจลําดับในการคํานวณทีใ่ ชในสู ั เจนนัก ถ ้า
้ ด
อยากจะเข ้าใจอย่างถ่องแท ้ว่าสูตร Array ทํางานได ้อย่างไร ต ้องเรียนรู ้จากการปฏิบต
ั เิ ท่านัน

โดยใชวิ้ ธท
ี ดลองสร ้างสูตรไปแกะไปซงึ่ มีอยู่ 2 วิธ ี

1. สร ้างสูตร Array ลงไปในเซลล์เดียวแล ้วแกะค่าในแต่ละสว่ นของสูตร โดยการกดปุ่ ม F9


เพือ ่ ง Formula Bar หรือ
่ ดูในชอ

2. สร ้างสูตร Array ลงไปในตารางพร ้อมกันทีเดียวหลายๆเซลล์หรือใชตารางแยกคํ านวณ
ทีละขัน
้ เพือ
่ ดูผลลัพธ์กระจายออกมาให ้เห็นในตาราง

โดยทัว่ ไปจะใชวิ้ ธแ
ี รกสําหรับแกะสูตรทีไ่ ม่ซบ
ั ซอนหรื
้ อไม่ยาวนัก พอแกะสูตรโดยการกดปุ่ ม F9
แล ้วต ้องอย่าลืมกดปุ่ ม Esc เพือ ่ ภาพเดิมก่อนแกะ (ถ ้าแกะสูตรแล ้วเผลอกด
่ ย ้อนหลังกลับคืนสูส
Enter ลงไปจะทําลายสูตรให ้กลายเป็ นค่าคงทีแ
่ ทน)

วิธท ี่ อง เหมาะสําหรับคนทีเ่ พิง่ เรียนรู ้เรือ


ี ส ้
่ ง Array หรือใชแกะสู ้
ตรยากๆยาวๆ หรือใชทดลอง
สร ้างสูตร Array ขึน
้ ใหม่ตงั ้ แต่แรก เพราะวิธน
ี จ
ี้ ะเห็นผลลัพธ์แต่ละขัน
้ ของการคํานวณแสดง
กระจายให ้เห็นในเซลล์แต่ละเซลล์ในตาราง จากนัน ้
้ พอซอนสู
ตรต่อๆกันไปจนได ้คําตอบที่
ต ้องการแล ้วจึงนํ าสูตรแต่ละขัน ้
้ มาซอนต่
อกันเป็ นสูตรเดียวเพือ ้
่ นํ าไปใชงานต่
อไป

วิธแ
ี กะสูตร Array วิธท
ี ี่ 1

DataRange คือ ตารางชว่ ง B3:B7

Copyright of www.ExcelExpertTraining.com 
122 

เซลล์ D3 มีสต
ู ร Array {=SUM(1/COUNTIF(DataRange,DataRange))} โดย
เครือ
่ งหมายวงเล็บปี กกาเกิดจากการกดปุ่ ม Ctrl+Shift+Enter พร ้อมกัน (ไม่ได ้พิมพ์ {} เอง)

1. เริม ่ ง Formula Bar คลิกลากทับสว่ นของสูตร


่ จากคลิกลงไปในชอ
COUNTIF(DataRange,DataRange)
2. กดปุ่ ม F9 จะพบว่าสูตร CountIF นับจํานวนซํ้าของค่าแต่ละตัว ทําให ้สูตรทัง้ หมด
เปลีย
่ นเป็ นสูตร =SUM(1/{2;2;2;1;2})
3. ตัวเลข {2;2;2;1;2} หมายถึง จํานวนซํ้าของแต่ละค่า กล่าวคือ aa มี 2 ค่า, bb มี 2 ค่า
, aa มี 2 ค่า, cc มี 1 ค่า, และ bb มี 2 ค่า
4. คลิกลากทับสว่ นของสูตร 1/{2;2;2;1;2}
่ จากจํานวนซํ้าของค่าแต่ละตัว ทําให ้
5. กดปุ่ ม F9 จะพบว่าสูตร 1/{2;2;2;1;2} หาค่าเฉลีย
สูตรทัง้ หมดเปลีย
่ นเป็ นสูตร =SUM({0.5;0.5;0.5;1;0.5})
6. ตัวเลข {0.5;0.5;0.5;1;0.5} เกิดจากสว่ นของหารหาค่าเฉลีย
่ โดย 1/2 ทําให ้เกิดเลข
0.5 และ 1/1 ทําให ้เกิดเลข 1
7. คลิกลากทับสูตร SUM({0.5;0.5;0.5;1;0.5}) แล ้วกดปุ่ ม F9 จะได ้คําตอบเป็ นสูตร =3
8. กดปุ่ ม Esc เพือ
่ ทําให ้สูตรแปลงกลับไปเป็ นสูตรแรกเริม
่ ตามเดิม

หมายเหตุ การคลิกแล ้วลากทับสว่ นของสูตรทีแ ่ ง Formula Bar นี้ ต ้องคลิกแล ้วลาก


่ สดงในชอ
ทับสว่ นของสูตรทีค ่ COUNTIF(DataRange,DataRange) แต่
่ รบและพร ้อมจะคํานวณได ้ เชน
่ ลากทับ /COUNTIF(DataRange,DataRange) ซงึ่ มีเครือ
ถ ้าลากทับขาดหรือเกิน เชน ่ งหมาย
่ กดปุ่ ม F9 จะพบว่าไม่สามารถแกะสูตรสว่ นนัน
หารเกินเข ้ามาด ้วย จะทําให ้เมือ ้ ได ้

วิธแ
ี กะสูตร Array วิธท
ี ี่ 2

วิธน ้
ี ใี้ ชตารางเป็ นตัวชว่ ยหาผลลัพธ์ของการคํานวณทีละขัน
้ แสดงให ้เห็นได ้ทันทีวา่ หลังจาก
้ แรกเสร็จแล ้ว สง่ ผลไปคํานวณต่อในการคํานวณขัน
คํานวณขัน ้ ถัดไปอย่างไรและเกิดผลลัพธ์
อย่างไร ซงึ่ พอคํานวณต่อกันไปจนเกิดผลลัพธ์ได ้ถูกต ้องตามทีต
่ ้องการแล ้ว จึงนํ าสูตรแต่ละขัน


มาซอนกั
นเป็ นสูตร Array เพียงสูตรเดียว

Copyright of www.ExcelExpertTraining.com 
123 

่ จากแยกสูตร =SUM(1/COUNTIF(DataRange,DataRange)) ออกเป็ นสว่ นๆตามลําดับ


ให ้เริม
การคํานวณ โดยไล่จากสูตรทีอ
่ ยูภ
่ ายในวงเล็บในสุดออกมา

1. Step1 เซลล์ D3 สร ้างสูตร =COUNTIF(DataRange,B3) แล ้ว copy ลงมาตลอดแนว


จนถึง เซลล์ D7
ั ทึกไว ้ซํ้ากันกีค
2. ตัวเลขทีไ่ ด ้จากเซลล์ D3:D7 เป็ นตัวเลขการนับว่าข ้อมูลแต่ละตัวมีบน ่ รัง้
ภายใน DataRange
3. Step2 เซลล์ E3 สร ้างสูตร =1/D3 แล ้ว copy ลงมาตลอดแนวจนถึง เซลล์ E7
4. ตัวเลขทีไ่ ด ้จากเซลล์ E3:E7 เป็ นตัวเลขค่าเฉลีย
่ ต่อตัวจากการนับว่าข ้อมูลแต่ละตัวมี
บันทึกไว ้ซํ้ากันกีค
่ รัง้ ภายใน DataRange
5. Step3 เซลล์ F3 สร ้างสูตร =SUM(E3:E7) เพือ
่ หายอดรวมของค่าเฉลีย
่ ได ้คําตอบเป็ น
จํานวนของ Unique Items

หมายเหตุ ใน Step1 และ Step2 แทนทีจ


่ ะสร ้างสูตรลงไปในเซลล์ D3 และ E3 เพียงเซลล์
เดียว ให ้ทดลองสร ้างสูตรคํานวณแบบ Array ลงไปในตารางหลายเซลล์พร ้อมกันแทนก็ได ้

• Step1 ให ้เลือกเซลล์ D3:D7 แล ้วพิมพ์สต


ู ร =COUNTIF(DataRange,DataRange)
แล ้วกดปุ่ ม Ctrl+Shift+Enter เพือ ้ งไปพร ้อมกันทีเดียว จะพบว่าได ้คําตอบ
่ สร ้างสูตรนีล
เป็ นการนับค่าซํ้าเชน
่ เดียวกัน เนือ ้ ละค่าใน DataRange
่ งจากสูตร CountIF จะใชแต่
ตรวจสอบจํานวนการบันทึกซํ้าจากพืน ่ เดียวกับสูตรทีน
้ ที่ DataRange ทัง้ หมดเชน ่ ับแต่
ละตัว
• Step2 ให ้เลือกเซลล์ E3:E7 แล ้วพิมพ์สต
ู ร =1/D3:D7 แล ้วกดปุ่ ม Ctrl+Shift+Enter
เพือ
่ สร ้างสูตรนีล
้ งไปพร ้อมกันทีเดียว จะพบว่าได ้คําตอบเป็ นค่าเฉลีย ่ เดียวกัน
่ เชน

Copyright of www.ExcelExpertTraining.com 
124 

Array คืออะไร

บทความนีย ่ ให ้เห็นตัวอย่างการใชสู้ ตร Array ไว ้


้ กความหมายของ Array มาไว ้ตอนหลัง เพือ

ก่อนบ ้าง ทําให ้ได ้เห็นว่า เรานํ าสูตร Array ไปใชงานกั
นอย่างไร แล ้วมันคํานวณหาอะไร พอได ้
ผ่านการลองทํากับมือมาแล ้ว คงพอเดากันได ้บ ้างว่า Array คืออะไร

Array คือ ค่าตัง้ แต่สองค่าขึน


้ ไป แทนทีจ ้
่ ะใชเซลล์
เดียวรับค่าเดียวตามวิธป
ี กติทวั่ ไป เรา

สามารถใชเซลล์
เดียวรับค่าหลายค่าลงไปก็ได ้ แทนทีจ ้ น
่ ะใชพื ้ ทีต
่ ารางของจริงนับร ้อยนับพัน
เซลล์เพือ ้ ด ้วยการใช ้ 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 แบบสูตรทีม
่ เี ครือ
่ งหมายเท่ากับนํ าหน ้าสุดเท่านัน
้ ดังนี้

้ บบสูตร Array Constant เชน


1. การใชแ ่ พิมพ์ ={1,2,3} ลงไปในเซลล์ใดๆ จะพบว่า
ในเซลล์แสดงค่าแรกคือเลข 1 เพียงค่าเดียว ซงึ่ ถ ้าต ้องการแสดงให ้ครบทุกค่า ต ้อง
เลือกเซลล์ 3 เซลล์ตด
ิ กันตามแนวนอนแล ้วพิมพ์ ={1,2,3} แล ้วกดปุ่ ม
่ บันทึก จะพบว่าสูตร ={1,2,3} ซงึ่ มีวงเล็บปี กกาอยูด
Ctrl+Shift+Enter เพือ ่ ้านหลัง
เครือ
่ งหมายเท่ากับ จะมีวงเล็บปี กกาเพิม
่ ด ้านหน ้าเครือ ั ้ หนึง่ เป็ น {=
่ งหมายเท่ากับอีกชน
{1,2,3}}

Copyright of www.ExcelExpertTraining.com 
125 

้ บบสูตร Array ซงึ่ ร ับค่ามาจากการอ้างอิงก ับพืน


2. การใชแ ่ รับค่า
้ ทีใ่ นตาราง เชน
Array มาจากเซลล์ตามแนวนอน {=A1:C1} หรือรับค่า Array มาจากเซลล์ตามแนวตัง้
{=A1:A3} หรือรับค่า Array มาจากตารางขนาดความสูง 2 row และมีความกว ้าง 3
column {=A1:C2} ทัง้ นีโ้ ปรดสงั เกตว่าวิธน
ี จ
ี้ ะมีเครือ
่ งหมายวงเล็บปี กกาแสดงไว ้หน ้า
เครือ
่ งหมายเท่ากับ แสดงว่าเป็ นวงเล็บปี กกาทีเ่ กิดจากการกดปุ่ ม Ctrl+Shift+Enter
้ บบสูตร Array ซงึ่ ร ับค่ามาจากสูตรทีค
3. การใชแ ่ น ่
ื ค่าแบบ Array เชน
{=Offset(A1,0,0,2,3)} ซงึ่ เทียบเท่ากับการอ ้างอิงมาจากเซลล์ A1:C2 เป็ นต ้น

การนํ าค่าแบบ Array ทัง้ 3 แบบไปใช ้ ขอให ้เลือกพืน


้ ทีต
่ ารางให ้มีขนาดพอดิบพอดีกบ
ั จํานวน
ของค่าทีม
่ อ
ี ยูใ่ น Array หรือให ้มีขนาดตารางเท่ากับจํานวนผลลัพธ์ทต
ี่ ้องการไว ้ก่อนทีจ
่ ะสร ้าง
สูตรลงไป กล่าวคือ ถ ้าในสูตร Array คืนค่าสุดท ้ายเพียงค่าเดียวก็ให ้สร ้างสูตรลงไปในเซลล์
เพียงเซลล์เดียว แต่ถ ้าสูตร Array คืนค่าผลลัพธ์ทม
ี่ จ
ี ํานวนค่ามากกว่าค่าเดียว ก็ต ้องเลือกพืน
้ ที่
ตารางให ้มีขนาดความสูงและความกว ้างเท่ากันกับจํานวนและลําดับค่าทีม
่ อ
ี ยู่ จากนัน
้ ให ้กดปุ่ ม
Ctrl+Shift+Enter ในการรับสูตร Array ลงไป จะพบว่า Excel กระจายค่าทีม
่ อ
ี ยูล
่ งไปในพืน
้ ที่
ตารางทีเ่ ตรียมไว ้ให ้เห็นได ้ครบทุกค่า

ต ัวอย่างการสร้างตารางสูตรคูณแบบ Array

เมือ ื่ Range Name ให ้กับตัวเลขบนหัวตารางและข ้างตารางว่า Top และ Left เสร็จแล ้ว


่ ตัง้ ชอ
้ ทีเ่ ซลล์ C3:H7 ซงึ่ เกินกว่าแนวขอบเขตตารางตัวเลขทีม
ให ้ทดลองเลือกพืน ่ ี แล ้วสร ้างสูตร
=Top*Left แล ้วกดปุ่ ม Ctrl+Shift+Enter จะได ้สูตร Array {=Top*Left}

Copyright of www.ExcelExpertTraining.com 
126 

สงั เกตว่าเฉพาะพืน ่ าราง C3:F5 ซงึ่ อยูภ


้ ทีต ่ ายในขอบเขตของ Top กับ Left เท่านัน
้ สามารถ
่ ้องการ สว่ นพืน
คํานวณหาผลคูณเป็ นตารางสูตรคูณทีต ้ ทีน
่ อกเหนือจาก C3:F5 ทีม
่ ส
ี ต
ู ร Array
จะคืนค่าเป็ น Error #N/A

จากนัน
้ ให ้คลิกเซลล์ใดก็ได ้ทีม
่ ส
ี ต
ู ร {=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

แต่ถ ้าต ้องการหายอดรวมของผลคูณของ =Top*Left ในเซลล์ C9 ให ้สร ้างสูตร


=SUM(Top*Left) แล ้วกดปุ่ ม Ctrl+Shift+Enter จะได ้สูตร Array {=SUM(Top*Left)} ซงึ่
สาเหตุทค
ี่ ราวนีส
้ ร ้างสูตรลงไปในเซลล์ C9 เพียงเซลล์เดียว เพราะคําตอบของการหายอดรวมมี
เพียงค่าเดียวเท่านัน

เรือ
่ งอืน
่ ๆเกีย
่ วก ับ Array ทีค
่ วรทราบ

1. ใน Excel Help เรียกพืน


้ ทีใ่ ดๆทีม
่ จ
ี ํานวนตัง้ แต่ 2 เซลล์ขน
ึ้ ไปว่า Array
2. การแกะดูคา่ ทีค
่ ํานวณได ้จากสูตร Array ให ้เริม
่ จากคลิกลงไปในเซลล์สต
ู รแล ้วกดปุ่ ม
F2 แล ้วตามด ้วยปุ่ ม F9 เมือ
่ เห็นค่าทีค
่ ํานวณได ้แล ้วให ้กดปุ่ ม Esc เพือ
่ กลับเป็ นสูตร
ตามเดิม ทัง้ นีถ
้ ้าค่าทีแ
่ กะได ้จากสูตร Array คืนค่าหลายค่าจนเกินกว่าทีเ่ ซลล์หนึง่ จะรับ
ได ้ จะพบว่า Excel ไม่ยอมแสดงค่าให ้เห็น
3. วิธค
ี ้นหาพืน
้ ทีข
่ องสูตร Array ทีเ่ กิดจากการสร ้าง
ขึน ่ จากคลิกเลือก
้ หลายเซลล์พร ้อมกัน ให ้เริม
เซลล์ใดเซลล์หนึง่ ซงึ่ ใชสู้ ตร Array แล ้วกดปุ่ ม
่ ง Current array
F5 > Special > กาชอ

4. บางคนกดปุ่ ม Ctrl+Shift+Enter แต่ไม่ได ้


เครือ
่ งหมายวงเล็บปี กกา เพราะไม่ได ้กดทัง้ สาม
ปุ่ มพร ้อมกันจริง ถ ้าอยากให ้ได ้ { } อย่างแน่นอน
ให ้ใชมื้ อซายกดปุ่
้ ่ ้างไว ้ก่อน จากนัน
ม Ctrl+Shift แชค ้ ใชมื้ อขวากดปุ่ ม Enter ลงไป

Copyright of www.ExcelExpertTraining.com 
127 

5. สูตร Array ทีเ่ กิดจากการสร ้างขึน


้ หลายเซลล์พร ้อมกันโดยการกดปุ่ ม
Ctrl+Shift+Enter จะไม่สามารถ Insert หรือ Delete เฉพาะบางเซลล์ หากต ้องการ
แก ้ไขหรือลบทิง้ ต ้องเลือกพืน ่ งั ้ หมดทีใ่ ชสู้ ตร Array นัน
้ ทีท ้ ก่อนแล ้วจึงแก ้ไขสูตรหรือ
ลบสูตรทิง้ (ดังนัน
้ หากสามารถลบสูตร Array เพียงเซลล์เดียวได ้ ย่อมแสดงว่าเป็ นสูตร
Array ทีส
่ ร ้างทีละเซลล์)
6. สูตร Array ทีเ่ ราสร ้างขึน
้ โดยการกดปุ่ ม
Ctrl+Shift+Enter จะไม่สามารถสร ้างลงไปใน
เซลล์ทถ
ี่ ก
ู Merge ไว ้ก่อนแล ้ว จะถูกเตือนว่า
Array formulas are not valid in merged
cells (แต่เราสามารถ Merge เซลล์ทส
ี่ ร ้างสูตร Array ไว ้ก่อน)

7. สูตร Array ทีเ่ กิดจากการสร ้างขึน


้ หลายเซลล์พร ้อมกันโดยการกดปุ่ ม

Ctrl+Shift+Enter จะใชเวลาคํ านวณเร็วกว่าการสร ้างสูตรคํานวณเพือ
่ หาคําตอบทีละ
เซลล์แยกจากกัน
8. สูตร Array ทีเ่ ราสร ้างขึน
้ โดยการกดปุ่ ม Ctrl+Shift+Enter ทัง้ ทีส
่ ร ้างในเซลล์เดียวหรือ

หลายเซลล์พร ้อมกัน จะใชเวลาคํ ้ าสูตรสําเร็จรูปทีม
านวณชากว่ ่ อ
ี ยูใ่ น Excel ดังนัน
้ จึง
แนะนํ าให ้ใชสู้ ตร Array ต่อเมือ
่ ไม่มส ู รสําเร็จรูปอืน
ี ต ่ ซงึ่ สามารถคํานวณหาคําตอบที่
ต ้องการได ้แล ้วเท่านัน

9. ใน Excel รุน
่ 2003 และรุน
่ เก่าก่อนนัน
้ สูตร Array ทีเ่ ราสร ้างขึน
้ โดยการกดปุ่ ม
Ctrl+Shift+Enter จะไม่ยอมรับการอ ้างอิงพืน
้ ทีต
่ ารางทีม
่ ข
ี นาดใหญ่เต็มความสูงทัง้

65,536 row ของตาราง เชน
{=MIN(IF(A:A<>0,ROW(A:A)))} หรือ
{=MIN(IF(A1:A65536<>0,ROW(A1:A65536)))}
้ ้
แต่ถ ้าแก ้เป็ น {=MIN(IF(A1:A65535<>0,ROW(A1:A65535)))} จะใชได
10. นอกจากสูตร Array ทีเ่ ราสร ้างขึน
้ โดยการกดปุ่ ม Ctrl+Shift+Enter แล ้ว ใน Excel ยังมี
สูตรสําเร็จรูปอืน
่ อีกทีท ่ สูตร
่ ํางานแบบ Array โดยไม่ต ้องกดปุ่ ม Ctrl+Shift+Enter เชน
SumIF, CountIF, SumIFs, CountIFs, AverageIfs, SumProduct ซงึ่ ถ ้าพิจารณาตาม
หลักการแล ้วสูตรใดก็ตามซงึ่ รับค่าจากเซลล์ตงั ้ แต่ 2 เซลล์ขน
ึ้ ไปได ้ ย่อมเป็ นสูตรที่
ทํางานแบบ Array จึงยังมีสต
ู รอีกมากทีส ่ สูตร Sum,
่ ามารถทํางานแบบ Array ได ้ เชน
Max, Min, And, Or, Index, หรือ Offset เป็ นต ้น

Copyright of www.ExcelExpertTraining.com 
128 

11. SumIFs, CountIFs, AverageIfs เป็ นสูตรทีเ่ กิดขึน


้ ใน Excel 2007 เป็ นต ้นมา ดังนัน

หากยังจําเป็ นต ้องใช ้ Excel 2003 หรือรุน
่ เก่ากว่านีอ
้ ยูอ
่ ก
ี แนะนํ าให ้หลีกเลีย
่ งสูตร
SumIFs, CountIFs, AverageIfs ไปก่อน โดยหันไปใชสู้ ตร Sum-IF-Array, Count-
IF-Array, Average-If-Array ซงึ่ สามารถใชงานใน
้ Excel ได ้ทุกรุน
่ แต่จําเป็ นต ้องสร ้าง
โดยการกดปุ่ ม Ctrl+Shift+Enter
12. Max, Min, And, Or เมือ ้
่ นํ ามาใชแบบ Array จะไม่สามารถคืนค่าหลายค่าแบบ Array
่ ถ ้าสร ้าง {=Max(RangeA,RangeB)} จะไม่ได ้คําตอบเป็ นค่าสูงสุดของแต่ละ
เชน
ตําแหน่งใน RangeA เมือ
่ นํ ามาเทียบกับแต่ละตําแหน่งใน RangeB แต่จะได ้คําตอบเป็ น
ค่าสูงสุดเพียงค่าเดียวจากค่าทัง้ หมดใน RangeA และ RangeB
13. สูตร Array บางสูตรไม่สามารถหาคําตอบมาแสดงให ้เห็นในเซลล์ แต่ถ ้านํ าสูตรนัน
้ ไป

ซอนในสู
ตรอืน
่ จะสามารถทํางานร่วมกับสูตรอืน
่ ได ้
14. สูตร Array ทีค
่ น
ื ค่าคําตอบหลายค่า ไม่ควรสร ้างสูตรนัน
้ ลงไปในเซลล์เดียวเพราะจะได ้
คําตอบไม่ครบทัง้ หมดหรือได ้คําตอบ error
15. ถ ้าสร ้างสูตร Array ทีค
่ น
ื ค่าคําตอบหลายค่า ลงไปในเซลล์เดียวในแนวเดียวกับคําตอบ
จากตารางฐานข ้อมูล จะได ้คําตอบจากเซลล์ในแนวคูข
่ นานกับตําแหน่งเซลล์ทส
ี่ ร ้างสูตร
ลงไป ซงึ่ ถือเป็ นความบังเอิญเท่านัน
้ ถ ้าย ้ายสูตรไปนอกแนวคูข
่ นานจะได ้คําตอบ error

16. ถ ้าสร ้างสูตร Array ลงไปในตารางหลายเซลล์พร ้อมกัน จะพบว่าในการสร ้างสูตรตอนที่


คลิกเลือกพืน ื่ Range Name ไว ้ก่อนนัน
้ ทีเ่ ซลล์ทเี่ คยตัง้ ชอ ื่
้ Excel จะไม่ยอมนํ าชอ
Range Name มาใสใ่ ห ้ในสูตร เชน
่ เดิมตัง้ ชอ
ื่ เซลล์ B4:B8 ว่า DataRange จากนัน
้ เมือ

เลือกเซลล์อน
ื่ ใดเพือ
่ จะสร ้างสูตรลงไปพร ้อมกัน พอพิมพ์ = แล ้วคลิกเลือกเซลล์ B4:B8
ื่ DataRange มาใสใ่ นสูตร แต่จะได ้ตําแหน่งเซลล์ B4:B8 แสดงในสูตร
จะไม่ได ้ชอ
ื่ DataRange ตัง้ ไว ้ก่อนแต่อย่างใด หากต ้องการนํ าชอ
เหมือนว่าไม่เคยมีชอ ื่ Range
Name มาใสใ่ นสูตร ให ้กดปุ่ ม F3 เพือ ื่ ทีต
่ เลือกชอ ้
่ ้องการมาใชแทนการคลิ
กเลือกเซลล์

Copyright of www.ExcelExpertTraining.com 
129 

17. ถ ้าอยากจะเก่ง Excel ให ้ทดลองสร ้างสูตรกับตารางขนาดเล็กให ้ผ่านก่อน แล ้วให ้ลอง


กดปุ่ ม Enter ตามธรรมดาบ ้าง หรือกดปุ่ ม Ctrl+Shift+Enter บ ้าง เพราะบางครัง้ จะได ้
คําตอบต่างไปจากเดิม
18. ไม่ควรปล่อยให ้คนทีไ่ ม่รู ้จักวิธส
ี ร ้างสูตร Array ทีส
่ ร ้างขึน
้ โดยการกดปุ่ ม
Ctrl+Shift+Enter มาแก ้ไขแฟ้ มทีม
่ ส
ี ต
ู ร Array เพราะเขาจะกดปุ่ ม Enter แทนแล ้วอาจ
ทําให ้ได ้คําตอบผิดเพีย
้ นไปหรือได ้คําตอบ error ขึน
้ มาแทน

Copyright of www.ExcelExpertTraining.com 
130 

สูตร Array IF
เพือ ้ ายอดรวมแยกประเภท
่ ใชห

สูตร Array IF เพือ ้


่ ใชหายอดรวมแยกประเภท ่ ําคัญเป็ นอย่างยิง่ และเป็ นสูตรทีใ่ ช ้
ถือเป็ นสูตรทีส
บ่อยทีส
่ ด
ุ สูตรหนึง่ ทีเดียว จนใน Excel 2007 เป็ นต ้นมาบริษัทไมโครซอฟท์ได ้เพิม
่ สูตร
่ ตอบสนองต่อความต ้องการของผู ้ใช ้ เพราะใน
SumIFs, CountIFs, และ AverageIFs เพือ
Excel รุน ้ มีเพียงสูตร SumIF และ CountIF ซงึ่ ไม่สามารถรับเงือ
่ ก่อนนัน ่ นไขในการคํานวณเกิน
กว่า 1 เงือ
่ นไข

แต่ถ ้าคุณนํ าแฟ้ มทีใ่ ชสู้ ตร SumIFs, CountIFs, และ AverageIFs ไปเปิ ดด ้วย Excel 2003
หรือรุน
่ เก่ากว่า จะพบว่าสูตรใหม่เหล่านีไ
้ ม่ทํางานเพราะ Excel รุน ่ ะใชสู้ ตรใหม่ได ้ก็ต ้องเป็ น
่ ทีจ
Excel รุน ่ กัน
่ ใหม่เชน

บทความนีจ
้ ะแนะนํ าแนวทางการสร ้างสูตร Array IF ว่ามีทไี่ ปทีม ่ ชว่ ยให ้สามารถ
่ าอย่างไร เพือ
ั สูตร SumIFs, CountIFs, และ
สร ้างสูตรหายอดรวมแยกประเภทได ้โดยไม่จําเป็ นต ้องอาศย
่ คุณทราบหลักการทํางานของการใช ้ Array IF หรือ Array
AverageIFs แต่อย่างใด แล ้วเมือ
่ นไข ยังจะชว่ ยให ้สามารถนํ าไปพัฒนาสร ้างสูตรหาคําตอบประเภทอืน
แบบเงือ ่ ๆได ้ไม่ยาก

สูตร Array IF คืออะไร

สูตร Array IF คือ สูตร IF ทีท


่ ําหน ้าทีต
่ รวจสอบค่าหลายค่าว่าตรงตามเงือ
่ นไขทีก
่ ําหนดหรือไม่
โดยจะได ้ผลลัพธ์จากการตรวจสอบเป็ น True หรือ False หลายค่าตามลําดับตําแหน่งของค่าที่
ใช ้ ซงึ่ ต่างจากสูตร IF ธรรมดาทีม ี ารตรวจสอบค่าเพียงค่าเดียวและเกิดผลลัพธ์เป็ น True หรือ
่ ก
False อย่างใดอย่างหนึง่ เพียงค่าเดียว

โดยลําพังของสูตร Array IF จะไม่สามารถหายอดรวมแยกประเภทได ้ แต่เมือ


่ นํ าผลลัพธ์ True
หรือ False ทีไ่ ด ้นัน
้ ไปเทียบกับ Array ของตัวเลขคําตอบทีต
่ ้องการ จะทําให ้เราสามารถเลือก
่ รงกับตําแหน่งของ True แล ้วจึงนํ าผลทีไ่ ด ้ไปหายอดร่วมกับ
เก็บตัวเลขเฉพาะตําแหน่งค่าทีต
สูตรอืน
่ ๆก็จะกลายเป็ นสูตร Array เพือ
่ หาค่าตามสูตรนัน ่ เมือ
้ ๆ เชน ่ นํ าผลทีไ่ ด ้หลังจากการเทียบ
้ ตร Sum ก็จะกลายเป็ นสูตร Array Sum IF ซงึ่ หายอดรวม
ตําแหน่ง True/False ไปซอนในสู

Copyright of www.ExcelExpertTraining.com 
131 

้ ตร Average ก็จะกลายเป็ นสูตร Array Average IF ซงึ่ หาค่าเฉลีย


แยกประเภท หรือถ ้าซอนในสู ่
แยกประเภท

โครงสร ้างของสูตร Array IF ประกอบด ้วย 2 สว่ นใหญ่ๆ ซงึ่ โดยทัว่ ไปทัง้ 2 สว่ นต ้องมีขนาด
ความสูงความกว ้างของ Array เท่ากัน กล่าวคือ

1. สว่ นของ Array ทีท


่ ําหน ้าทีค
่ น
ื ค่า True หรือ False
2. สว่ นของ Array ทีเ่ ป็ นตัวเลขหรือค่าคําตอบเรือ
่ งทีต
่ ้องการ

้ งต ้นขอให ้จําไว ้ว่าขนาด Array ทัง้ สองสว่ นนีต


(ในเบือ ้ ้องมีขนาดเท่ากัน ซงึ่ ทีจ
่ ริงแล ้วขอเพียงว่า
้ ้แล ้ว)
มีขนาดความสูงหรือขนาดความกว ้างด ้านใดด ้านหนึง่ เท่ากันก็ใชได

้ ต
การใชส ู ร Array IF แบบเงือ
่ นไขเดียว

โปรดสงั เกตว่าใน Range ID มีรหัส a001 และ a002 เป็ นรายการทีบ ั ทึกซํ้า ซงึ่ ถ ้ามีรหัสไม่ซํ้า
่ น
แล ้วต ้องการหายอด Amount ของ a001 จะสามารถหาคําตอบโดยใชสู้ ตร Vlookup ได ้ทันที
่ มีรายการซํ้า ถ ้าใชสู้ ตร Vlookup ก็จะได ้ยอดของ a001 รายการแรกเพียงรายการเดียว
แต่เมือ
่ ํ้าของ a001
หากต ้องการหายอดรวม Amount ของ a001 หรือจะแยกหายอดแต่ละรายการทีซ
ั สูตรคํานวณแบบ Array มาชว่ ย
ก็ต ้องอาศย

ถ ้าไม่ใชสู้ ตร Array IF จะหายอดรวม Amount ของรหัส a001 จากการคํานวณทีละขัน


้ ได ้
อย่างไร

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 

1. Id เป็ นสว่ นของ Array ทีท


่ ําหน ้าทีค
่ น
ื ค่า True หรือ False จากการนํ าไปเปรียบเทียบค่า
กับรหัสทีต
่ ้องการ
2. Amount เป็ นสว่ นของ Array ทีเ่ ป็ นตัวเลขหรือค่าคําตอบเรือ
่ งทีต
่ ้องการ

้ เราสามารถหาคําตอบยอดรวมแยกประเภทของรหัส a001 ซงึ่ บันทึกไว ้ในเซลล์ G3 เป็ น


จากนัน
เซลล์สําหรับใสร่ หัสทีต
่ ้องการ แล ้วใชสู้ ตรต่อไปนีห
้ าผลลัพธ์ทต
ี่ ้องการ

1. สูตร SUMIF โดยใชสู้ ตร =SUMIF(Id,$G$3,Amount) หรือ


2. สูตร Array SumIF โดยใชสู้ ตร { =SUM(IF(Id=$G$3,Amount))} โดยต ้องกดปุ่ ม
Ctrl+Shift+Enter ด ้วยจึงจะเกิดวงเล็บปี กกา { } ปิ ดหัวท ้ายสูตร หรือ
3. สูตร SumArray โดยใชสู้ ตร { =SUM((Id=$G$3)*Amount)} โดยต ้องกดปุ่ ม
Ctrl+Shift+Enter ด ้วยจึงจะเกิดวงเล็บปี กกา { } ปิ ดหัวท ้ายสูตร หรือ
4. สูตร SumProduct โดยใชสู้ ตร =SUMPRODUCT((Id=$G$3)*Amount) โดยไม่
ต้องกดปุ่ ม Ctrl+Shift+Enter ด ้วยแต่อย่างใด

ี่ บบใชหลั
สูตรทัง้ สแ ้ กการคํานวณแบบเดียวกัน คือ

1. Id เป็ นสว่ นของ Array ทีท


่ ําหน ้าทีค
่ น
ื ค่า True หรือ False จากการนํ าไปเปรียบเทียบค่า
กับรหัส a001 ทีต
่ ้องการ จะคืนค่าออกมาเป็ น Array
{TRUE;FALSE;TRUE;FALSE;FALSE}
2. Amount เป็ นสว่ นของ Array ทีเ่ ป็ นตัวเลขหรือค่าคําตอบเรือ
่ งทีต
่ ้องการ
{10;20;30;40;50}
่ นํ า Array {TRUE;FALSE;TRUE;FALSE;FALSE} มาเทียบตําแหน่งกับ Array
3. เมือ
{10;20;30;40;50} จะได ้ Array ตัวเลขเฉพาะตัวเลขคําตอบทีต
่ ้องการออกมาเป็ น
{10;FALSE;30;FALSE;FALSE}
4. จากนัน
้ เมือ
่ นํ าผล {10;FALSE;30;FALSE;FALSE} ไปหายอดรวมด ้วยสูตร Sum จึงหา
คําตอบเป็ น 40 ตามต ้องการ

ี่ บบนีจ
แม ้ว่าสูตรทัง้ สแ ้ ะหาผลลัพธ์ทต ่ เดียวกันก็ตาม แต่ขอให ้พิจารณาเลือกใชให
ี่ ้องการได ้เชน ้ ้
เหมาะสมกับงาน กล่าวคือ

1. สูตร SUMIF ให ้ใชกั้ บโจทย์ทงี่ า่ ยไปตลอดเพราะสูตรนีร้ ับเงือ


่ นไขได ้เพียงเงือ
่ นไข

เดียว และสูตรนีใ้ ชเวลาคํ านวณเร็วทีส
่ ด ี่ ต
ุ ในบรรดาสส ู รทีก
่ ล่าวถึงอยูน
่ ี้

Copyright of www.ExcelExpertTraining.com 
134 

2. สูตร Array SumIF สูตรนีเ้ ป็ นสูตรพิเศษ เพราะเราสามารถเปลีย


่ นสูตร Sum ด ้านหน ้า
ไปเป็ นสูตร Average, Count, Max, Min, หรือ Small เพือ ่ ๆตามสูตรทีใ่ ช ้
่ หายอดอืน
แทนนัน
้ และถ ้ามีหลายเงือ ้ IF เข ้าไปได ้อีก
่ นก็สามารถซอน

{ =SUM(IF(Id=$G$3,Amount))} หายอดรวมของ a001 ได ้เท่ากับ 40


{ =AVERAGE(IF(Id=$G$3,Amount))} หาค่าเฉลีย
่ ของ a001 ได ้เท่ากับ 20
{ =COUNT(IF(Id=$G$3,Amount))} นับยอดของ a001 ได ้เท่ากับ 2
{ =MAX(IF(Id=$G$3,Amount))} หายอดสูงสุดของ a001 ได ้เท่ากับ 30
{ =MIN(IF(Id=$G$3,Amount))} หายอดตํา่ สุดของ a001 ได ้เท่ากับ 10
3. สูตร SumArray เป็ นสูตรทีผ ้
่ มนิยมใชเพราะใช ้
มานานและพบว่
าสามารถหาคําตอบที่
ต ้องการได ้เสมอแม ้จะลิงค์ข ้ามแฟ้ มมาจากแฟ้ มทีไ่ ม่ได ้เปิ ดก็ยังทํางานได ้ และถ ้ามี
หลายเงือ ้
่ นไข การใชวงเล็ บหลายๆชุดชว่ ยตรวจสอบเงือ ่ ะใชสู้ ตร IF
่ นไขยังง่ายกว่าทีจ

ซอนกั
นเข ้าไป
4. สูตร SumProduct เป็ นสูตรยอดนิยมของคนทัว่ ไปเพราะไม่จําเป็ นต ้องกดปุ่ ม
Ctrl+Shift+Enter ด ้วยแต่อย่างใด ซงึ่ แท ้จริงแล ้วโครงสร ้างภายในวงเล็บของสูตรนีก
้ ็
เหมือนกับของสูตร SumArray นั่นเอง

เรือ
่ งแปลกของ True ก ับ False

คุณควรทราบลักษณะสําคัญของค่า True หรือ False เพิม ่ ะเรียนรู ้วิธใี ชสู้ ตร Array


่ เติมก่อนทีจ
IF แบบหลายเงือ
่ นไข กล่าวคือ Excel ถือว่าค่า True มีคา่ เท่ากับ 1 และค่า False มีคา่ เท่ากับ
0 ซงึ่ เราจะเห็นค่าเหล่านีไ ั ต่อเมือ
้ ด ้ชด ่ นําค่า True หรือ False มาคํานวณต่อ

แต่ถ ้านํ าค่า True ทีไ่ ด ้ไปเทียบตรงๆกับเลข 1 ว่าเท่ากันหรือไม่ จะพบว่า True ไม่เท่ากับ 1
และถ ้านํ าค่า False ทีไ่ ด ้ไปเทียบตรงๆกับเลข 0 ว่าเท่ากันหรือไม่ จะพบว่า False ไม่เท่ากับ 0

Copyright of www.ExcelExpertTraining.com 
135 

จากภาพตัวอย่างนี้ เซลล์ B2 มีคา่ =TRUE() จากนัน


้ เรามาทดสอบค่าของ B2 กัน จะพบว่าใน
่ นํ ามาเทียบค่ากันโดยตรง ซงึ่ มีสต
เซลล์ C2 เมือ ู ร =B2=1 บอกเราว่า False แสดงว่า True
ไม่ได ้เท่ากับ 1 แต่เมือ
่ นํ าค่าจาก B2 ไปคํานวณต่อในเซลล์ C3:C8 ไม่วา่ จะนํ า B2 ไป *1, /1,
+0, -0, หรือใสเ่ ครือ
่ งหมายลบลบไว ้ข ้างหน ้า หรือนํ าไปคูณกับ TRUE() จะกระตุ ้นให ้แสดงค่า
เท่ากับเลข 1 ออกมาให ้เห็น

ทํานองเดียวกัน เซลล์ G2 มีคา่ =FALSE() จากนัน


้ เรามาทดสอบค่าของ G2 กัน จะพบว่าใน
่ นํ ามาเทียบค่ากันโดยตรง ซงึ่ มีสต
เซลล์ H2 เมือ ู ร =G2=0 บอกเราว่า False แสดงว่า False
ไม่ได ้เท่ากับ 0 แต่เมือ
่ นํ าค่าจาก G2 ไปคํานวณต่อในเซลล์ H3:H8 ไม่วา่ จะนํ า G2 ไป *1, /1,
+0, -0, หรือใสเ่ ครือ
่ งหมายลบลบไว ้ข ้างหน ้า หรือนํ าไปคูณกับ TRUE() จะกระตุ ้นให ้แสดงค่า
เท่ากับเลข 0 ออกมาให ้เห็น

้ ถ ้าเรามี Array ซงึ่ มีคา่ True หรือ False แล ้วนํ าไปบวกหรือคูณกับ Array อืน
ดังนัน ่ ทีม
่ ค
ี า่ เป็ น
ตัวเลขหรือมีคา่ เป็ น True หรือ False ก็ตาม ย่อมเหมือนกับนํ าเลข 1 หรือเลข 0 ไปบวกหรือคูณ
กับค่าอืน
่ นั่นเอง โปรดดูข ้อพิสจ
ู น์จากรูปต่อไปนี้

Array ทีม
่ เี ลข 1 และ 0 จากการบวกหรือคูณนีแ ่ ว่ ยทําให ้เราหายอดรวมแยกประเภท
่ หละทีช
ต่อไปได ้

Copyright of www.ExcelExpertTraining.com 
136 

้ ต
การใชส ู ร Array IF แบบหลายเงือ
่ นไข

้ รวจสอบเงือ
กรณี Range ทีใ่ ชต ่ นไขมาจากเรือ ้ วก
่ งเดียวก ัน ให้ใชบ

ให ้หายอดรวม Amount ของรหัส Id a001 กับ a002 (ทัง้ นีท


้ เี่ รียกว่า เป็ นเรือ
่ งเดียวกันเพราะ
เงือ
่ นไขเป็ นเรือ ่ กันทัง้ คู)่ โดยบันทึกรหัสทีต
่ งของรหัสเชน ้ นรหัสทีค
่ ้องการให ้ใชเป็ ่ ้นหาไว ้ที่
เซลล์ G3 และ H3 ตามลําดับ ซงึ่ สามารถใชสู้ ตรหาคําตอบเป็ นยอดรวม 110 ได ้หลายวิธ ี ดังนี้

1. ใชสู้ ตร {=SUM(IF(Id=G3, Amount, IF(Id=H3,Amount,0) ))}

โดยต ้องกดปุ่ ม Ctrl+Shift+Enter เพือ


่ สร ้างเครือ
่ งหมายวงเล็บปี กกา { } ปิ ดหัวท ้าย
สูตร ถ ้าแกะสูตร IF(Id=G3, Amount, IF(Id=H3,Amount,0) ) โดยการคลิกลากทับ
สว่ นของสูตรนีแ
้ ล ้วกดปุ่ ม F9 จะได ้ Array {10;20;30;0;50} ซงึ่ เปลีย
่ นค่า Amount
ของรหัสอืน
่ ทีไ่ ม่เท่ากับ a001 หรือ a002 ให ้เท่ากับ 0 แทน
2. ใชสู้ ตร { =SUM( ((Id=G3)+(Id=H3)) *Amount) }

โดยต ้องกดปุ่ ม Ctrl+Shift+Enter เพือ


่ สร ้างเครือ
่ งหมายวงเล็บปี กกา { } ปิ ดหัวท ้าย
สูตร ถ ้าแกะสูตร ((Id=G3)+(Id=H3)) โดยการคลิกลากทับสว่ นของสูตรนีแ
้ ล ้วกดปุ่ ม
F9 จะได ้ Array {1;1;1;0;1} โดยมีเลข 1 ตรงกับตําแหน่งของรหัสทีต
่ ้องการ
ถ ้าแกะทีม
่ าของเงือ
่ นไข (Id=G3) จะได ้ Array ของ
่ ํ ามาบวกกับ (Id=H3) ซงึ่ เป็ น Array ของ
{TRUE;FALSE;TRUE;FALSE;FALSE} ทีน
{FALSE;TRUE;FALSE;FALSE;TRUE} ทําให ้ได ้ Array
{1;1;1;0;1}

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 ซายไปขวา

• 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 ทีใ่ ชต ่ นไขมาจากต่างเรือ ้ ณ
่ งก ัน ให้ใชค ู

ให ้หายอดรวม Amount ของรหัส Id a001 เฉพาะรายการทีม


่ ี Name เท่ากับ c (ทัง้ นีท
้ เี่ รียกว่า
เป็ นต่างเรือ
่ งกัน เพราะเงือ
่ นไขรหัสต่างจากเงือ ื่ ) โดยบันทึกรหัสทีต
่ นไขชอ ้ นรหัส
่ ้องการให ้ใชเป็
ื่ ทีค
และชอ ่ ้นหาไว ้ทีเ่ ซลล์ G3 และ H3 ตามลําดับ ซงึ่ สามารถใชสู้ ตรหาคําตอบเป็ นยอดรวม 30
ได ้หลายวิธ ี ดังนี้

1. ใชสู้ ตร { =SUM(IF(Id=G3, IF(Name=H3,Amount,0), 0 ))}

โดยต ้องกดปุ่ ม Ctrl+Shift+Enter เพือ


่ สร ้างเครือ
่ งหมายวงเล็บปี กกา { } ปิ ดหัวท ้าย
สูตร ถ ้าแกะสูตร IF(Id=G3, IF(Name=H3,Amount,0), 0 ) โดยการคลิกลากทับสว่ น
้ ล ้วกดปุ่ ม F9 จะได ้ Array {0;0;30;0;0} ซงึ่ เปลีย
ของสูตรนีแ ่ นค่า Amount ของรหัส
อืน ื่ ไม่ใช ่ c ให ้เท่ากับ 0 แทน
่ ทีไ่ ม่เท่ากับ a001 และชอ
2. ใชสู้ ตร { =SUM( (Id=G3)*(Name=H3) *Amount) }

โดยต ้องกดปุ่ ม Ctrl+Shift+Enter เพือ


่ สร ้างเครือ
่ งหมายวงเล็บปี กกา { } ปิ ดหัวท ้าย
สูตร ถ ้าแกะสูตร (Id=G3)*(Name=H3) โดยการคลิกลากทับสว่ นของสูตรนีแ
้ ล ้วกดปุ่ ม
F9 จะได ้ Array {0;0;1;0;0} โดยมีเลข 1 ตรงกับตําแหน่งรายการทีต
่ ้องการ

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
เป็ นต ้นมา

่ ชว่ ยทําให ้มองเห็นลําดับการคํานวณได ้ชด


เพือ ั เจนขึน
้ ขอให ้ดูภาพต่อไปนีแ
้ ล ้วดูหลักการ
คํานวณทีละขัน ้
้ จาก column ซายไปขวา

• Column ที่ 1 เป็ นรหัส Id จะพบว่ามีรหัส a001 อยู่ 2 รายการ


• Column ที่ 2 ตรวจสอบรหัส Id a001 จะพบว่ามีรหัส a001 อยู่ 2 รายการ โดยถ ้ามอง
่ ้องการเป็ นเลข 1 และตําแหน่งทีไ่ ม่ใชเ่ ป็ นเลข 0
ตําแหน่งทีเ่ ป็ นรหัสทีต
จะได ้เลข 1, 0, 1, 0, 0 ตามลําดับจากบนมาล่าง
• ื่ Name จะพบว่ามีชอ
Column ที่ 3 เป็ นชอ ื่ c อยู่ 1 รายการ
• ื่ Name c จะพบว่ามีชอ
Column ที่ 4 ตรวจสอบชอ ื่ Name c อยู่ 1 รายการ โดยถ ้ามอง
่ ้องการเป็ นเลข 1 และตําแหน่งทีไ่ ม่ใชเ่ ป็ นเลข 0
ตําแหน่งทีเ่ ป็ นรหัสทีต
จะได ้เลข 0, 0, 1, 0, 0 ตามลําดับจากบนมาล่าง

Copyright of www.ExcelExpertTraining.com 
140 

• Column ที่ 5 เป็ นผลคูณเมือ


่ นํ า Column ที่ 2 มาคูณกับ Column ที่ 4
ื่
จะได ้เลข 0, 0, 1, 0, 0 ตามลําดับจากบนมาล่าง แสดงตําแหน่งของรหัส a001 มีชอ
Name c ณ ตําแหน่งทีต
่ รงกับเลข 1
• Column ที่ 6 เป็ นตัวเลข Amount ทัง้ หมด
• Column ที่ 7 เป็ นผลคูณเมือ
่ นํ า Column ที่ 5 มาคูณกับ Column ที่ 6
จะได ้เลข 0, 0, 30, 0, 0 ตามลําดับจากบนมาล่าง ซงึ่ รวมเท่ากับ 30

วิธพ
ี ลิกแพลงสูตร SumProduct

สูตร SumProduct เป็ นสูตรทีท


่ ํางานแบบ Array อยูใ่ นตัว มีหน ้าทีน
่ ํ า Range ของตัวเลขแต่ละ
ตําแหน่งจากตารางทีม
่ ข
ี นาดเท่ากัน มาคูณกันทีละเซลล์ตามตําแหน่งทีต
่ รงกัน จากนัน
้ จึงบวก
รวมผลคูณทีไ่ ด ้นัน
้ เข ้าด ้วยกัน

่ เราต ้องการหามูลค่าต ้นทุนรวมของสน


ตัวอย่าง เชน ิ ค ้า โดยนํ าต ้นทุนต่อหน่วยมาคูณกับจํานวน
หน่วย ซงึ่ หากไม่รู ้จักสูตร SumProduct ก็ต ้องนํ า Cost*Quantity ทีละรายการ เพือ
่ ให ้ได ้
ตัวเลข Total ตาม Column D จากนัน
้ จึงสร ้างสูตรในเซลล์ F2 =SUM(D3:D5) จึงจะได ้ยอด
รวมต ้นทุนทัง้ หมด

ซง่ึ แทนทีจ ี พืน


่ ะต ้องเสย ่ ํานวณหา Total ใน Column D เราสามารถใชสู้ ตร SumProduct ลัด
้ ทีค
หาต ้นทุนรวมได ้โดยใชสู้ ตรตามนี้

1. =SUMPRODUCT(Cost, Quantity) เป็ นการใชสู้ ตรตามโครงสร ้างปกติ โดยใช ้


เครือ
่ งหมาย comma , คัน
่ แต่ละ Range ในสูตร หรือ
่ ํ าแต่ละ Range มาคูณกันเลย ซงึ่
2. =SUMPRODUCT(Cost*Quantity) เป็ นสูตรทีน
การสร ้างแบบคูณกันนี้ จะชว่ ยให ้เราสามารถคลิกลากทับการคํานวณในวงเล็บแล ้วกดปุ่ ม
F9 เพือ
่ เห็นผลการคูณกันของแต่ละตําแหน่งได ้ด ้วย

Copyright of www.ExcelExpertTraining.com 
141 

จากนัน
้ ขอย ้อนกลับไปเรือ
่ งโครงสร ้างภายในสูตร Array IF ตามทีอ
่ ธิบายไว ้แล ้วว่า โครงสร ้าง
ของสูตร Array IF ประกอบด ้วย 2 สว่ นใหญ่ๆ ซงึ่ โดยทัว่ ไปทัง้ 2 สว่ นต ้องมีขนาดความสูงความ
กว ้างของ Array เท่ากัน กล่าวคือ

1. สว่ นของ Array ทีท


่ ําหน ้าทีค
่ น
ื ค่า True หรือ False
2. สว่ นของ Array ทีเ่ ป็ นตัวเลขหรือค่าคําตอบเรือ
่ งทีต
่ ้องการ

ขอนํ าสูตร =SUMPRODUCT( (Id=G3)*(Name=H3) *Amount) มาวิเคราะห์แยก


โครงสร ้างข ้างต ้น จะพบว่า

1. สว่ นของ Array ทีท


่ ําหน ้าทีค ื ค่า True หรือ False ได ้แก่ สว่ นของ (Id=G3) และ
่ น
(Name=H3) ซงึ่ นํ ามาคูณกันเพือ
่ ทําให ้เปลีย
่ น True เป็ นเลข 1 และเปลีย
่ น False เป็ น
เลข 0
2. สว่ นของ Array ทีเ่ ป็ นตัวเลขหรือค่าคําตอบเรือ ่ ้องการ ได ้แก่สว่ นของ Amount
่ งทีต

ดังนัน
้ หากต ้องการปรับสูตรให ้คํานวณนับแทนการหายอดรวมของ Amount โดยให ้นับว่ามีคา่
ตามเงือ ิ้ กีร่ ายการ ให ้ใชสู้ ตรใดสูตรหนึง่ ต่อไปนีก
่ นไขทัง้ สน ้ ็ได ้

1. =SUMPRODUCT( (Id=G3)*(Name=H3) ) โดยสูตร SumProduct จะทํา


หน ้าทีร่ วมเลข 1 ทีไ่ ด ้จากการคูณกันของ Array ภายในวงเล็บว่ามีเลข 1 กีต
่ วั นั่นคือนับ
จํานวนรายการทีม
่ เี งือ
่ นไขตามต ้องการนั่นเอง
2. =SUMPRODUCT( (Id=G3)*1, (Name=H3)*1)
3. =SUMPRODUCT( (Id=G3)/1, (Name=H3)/1)
4. =SUMPRODUCT( (Id=G3)+0, (Name=H3)+0)
5. =SUMPRODUCT( (Id=G3)-0, (Name=H3)-0)
6. =SUMPRODUCT( --(Id=G3), --(Name=H3) )

้ อ
สูตร SumProduct แบบที่ 2-6 เป็ นสูตรทีใ่ ชเครื ่ งหมาย comma , คัน
่ จึงจําเป็ นต ้องกระตุ ้นให ้
เปลีย
่ น True เป็ นเลข 1 และเปลีย
่ น False เป็ นเลข 0 โดยนํ า True หรือ False ทีไ่ ด ้จากการ
่ นไขไป *1, /1, +0, -0, หรือใสเ่ ครือ
ตรวจสอบเงือ ่ งหมายลบลบไว ้ข ้างหน ้าก่อน

ดังนัน
้ จึงขอแนะให ้สร ้างสูตร SumProduct แบบนํ าเงือ
่ นไขมาคํานวณ(คูณหรือบวก)กันเองก่อน
เพราะนอกจากจะแกะหาผลจากการคูณหรือบวกกันจากสว่ นของเงือ
่ นไขทีน
่ ํ ามาคํานวณกันได ้

Copyright of www.ExcelExpertTraining.com 
142 

แล ้ว ยังเป็ นสูตรทีส ั ้ กว่าและมีขน


่ น ้
ั ้ ตอนการคํานวณน ้อยกว่าสูตร SumProduct ทีใ่ ชแบบ
เครือ
่ งหมาย comma , คัน
่ อยูภ
่ ายใน

หมายเหตุ

โดยทัว่ ไปหากเงือ ้ ตร Array IF เป็ นการตรวจสอบว่าเท่ากันหรือไม่ โดยใช ้


่ นไขทีใ่ ชในสู
เครือ
่ งหมาย = ในการเปรียบเทียบว่าเป็ น True หรือ False เราสามารถท่องจําไว ้เลยดังนี้

• ถ ้า Range ทีน
่ ํ ามาตรวจสอบเงือ
่ นไขเป็ น เรือ
่ งเดียวก ัน ให ้นํ าผลลัพธ์จากการ
ตรวจสอบเงือ
่ นไขมา บวกก ัน และมีวงเล็บเปิ ดด ้านหน ้า 3 ตัว
• ถ ้าถ ้า Range ทีน
่ ํ ามาตรวจสอบเงือ
่ นไขเป็ น ต่างเรือ
่ งก ัน ให ้นําผลลัพธ์จากการ
่ นไขมา คูณก ัน และมีวงเล็บเปิ ดด ้านหน ้า 2 ตัว
ตรวจสอบเงือ

แต่ถ ้าเป็ นการตรวจสอบเงือ


่ นไขประเภทมากกว่าหรือน ้อยกว่าหรือผสมกัน แม ้ Range ทีน
่ ํ ามา
เป็ นเงือ
่ นไขจะเป็ นเรือ
่ งเดียวกัน ก็ไม่จําเป็ นว่าต ้องนํ าผลลัพธ์จากการตรวจสอบเงือ
่ นไขมาบวก
กันเสมอไป บางกรณีอาจใชคู้ ณกันก็ได ้ ทัง้ นีข ึ้ กับลักษณะการเปรียบเทียบทีใ่ ชด้ ้วย โดยขอให ้
้ น
่ ะทําให ้เกิดเลข 1 ชเี้ ฉพาะตําแหน่งรายการทีต
คิดหาวิธใี ดก็ได ้ทีจ ่ ้องการให ้ได ้

Copyright of www.ExcelExpertTraining.com 
143 

ของจริง ของปลอม
ของใชไ้ ม่ได้ใน Excel

ในเรือ ื่ สต
่ งความซอ ั ย์สจ
ุ ริต โปรแกรม Excel ถือว่าได ้หนึง่ ร ้อยคะแนนเต็ม ไม่วา่ คุณจะบันทึกค่า

สร ้างสูตร หรือนํ า Excel มาใชแบบใด อะไรทีค
่ ณ
ุ ทําลงไปใน Excel ก็จะได ้รับผลตามนัน
้ แต่ถ ้า
ี อ ก็อาจจะตีโพยตีพายเมือ
คุณเข ้าใจ Excel ได ้ไม่ดพ ่ เห็นว่า Excel ทรยศ เพราะมันให ้คําตอบที่
ผิดพลาดต่างจากคําตอบทีค
่ ณ
ุ ต ้องการ ทัง้ ๆทีแ
่ ท ้จริงแล ้วคุณนั่นแหละทีเ่ ข ้าใจผิด

ของจริงทีท
่ ําให้สต
ู ร IF กลายเป็นของปลอม

เนือ
้ หาทีจ ้ ะชเี้ ป็ นชต
่ ะนํ ามาอธิบายต่อไปนีจ ี้ ายให ้กับคนทีช
่ อบใชสู้ ตร IF หรือสูตรใดก็ตามที่
เกีย ิ ใจหรือใชในการค
่ วข ้องกับการตัดสน ้ ้นหาข ้อมูลว่า แฟ้ มงานทีค
่ ณ
ุ สร ้างขึน
้ นัน
้ มีความ
ื่ ถือหรือไม่ เพือ
น่าเชอ ู น์ให ้เห็นกับตา ลองดูสต
่ พิสจ ู ร IF ต่อไปนีแ
้ ล ้วคิดว่าจะได ้คําตอบออกมา
เป็ นคําว่า เท่ากัน หรือ ไม่เท่ากัน

=IF( 22.3-22.2=0.1, "เท่ากัน", "ไม่เท่ากัน")

ื่ หรือไม่!!! Excel จะให ้คําตอบออกมาว่า 22.3-22.2 นัน


เชอ ้ ไม่เท่ากับ 0.1 โดยคืนค่าออกมาเป็ น
คําว่า ไม่เท่าก ัน ซงึ่ ถือเป็ นคําตอบทีถ
่ ก
ู ต ้อง เพราะ 22.3-22.2 ไม่ได ้คํานวณออกมาแล ้วให ้ผล
ลัพธ์เท่ากับ 0.1 ตามทีเ่ ราเข ้าใจ

ขอให ้ลองสร ้างสูตร =22.3-22.2 ลงไปในเซลล์ แล ้วกดปุ่ ม F2 ตามด ้วยปุ่ ม F9 จะพบว่าค่าที่


แท ้จริงที่ Excel คํานวณได ้คือ 0.100000000000001 ซงึ่ แน่นอนว่าไม่ใช ่ 0.1

บางคนมองค่า 0.100000000000001 แล ้วยอมรับตัวเลขทีไ่ ด ้นี้ เพราะเห็นว่ามันต่างจาก 0.1 ที่


่ นีแ
ต ้องการเพียงเล็กน ้อย ถ ้าใครคิดเชน ้ สดงว่าเข ้าใจ Excel ผิด เพราะ Excel จะไม่ยอมรับว่าค่า
0.1 เท่ากับ0.100000000000001 ไม่วา่ ค่าทีแ
่ ตกต่างกันนัน
้ จะน ้อยมากก็ตาม

การที่ Excel คํานวณได ้ค่าทีเ่ พีย


้ นต่างจากทีค
่ วรนี้ ไม่ได ้ถือว่าเป็ นการคํานวณทีผ
่ ด
ิ พลาด และ
ไม่ได ้มีแค่กรณีนก
ี้ รณีเดียว สูตรหรือการคํานวณใดๆทีค ุ ใชมี้ โอกาสคืนค่าเพีย
่ ณ ้ นไปจากที่
ต ้องการได ้ทัง้ นัน

Copyright of www.ExcelExpertTraining.com 
144 

Excel จะใชรู้ ปแบบ (Format Number) แสดงค่าในเซลล์ตามลักษณะตัวเลขทีพ


่ ม
ิ พ์ นีค
่ อ

สาเหตุประการแรกทีอ
่ ธิบายว่า ทําไม Excel จึงไม่แสดงค่า 0.100000000000001 ในเซลล์
ออกมาให ้เห็นครบทุกหลัก เนือ
่ งจากตัวเลข 22.3-22.2 ทีพ
่ ม
ิ พ์ลงไปมีทศนิยมเพียงหนึง่ หลัก
ดังนัน
้ Excel จึงแสดงผลลัพธ์ให ้เห็นตัวเลขทีม
่ ท
ี ศนิยมเพียงหนึง่ หลักตามไปด ้วย

ค่าทีเ่ พีย
้ นไปไม่ได ้ถือว่าเกิดจากการคํานวณทีผ
่ ด ้ กการคํานวณ
ิ พลาด แต่เป็ นเพราะ Excel ใชหลั
ิ ซงึ่ ค่า 22.3-22.2 คํานวณแบบเลขฐานสอง
แบบเลขฐานสองแล ้วแปลงกลับมาเป็ นเลขฐานสบ
่ ํ้าไม่รู ้จบ (Repeating Binary Number) จากนัน
ได ้คําตอบเป็ นเลขทีซ ้ เมือ
่ แปลงกลับมาเป็ น
ิ ให ้พวกเราเข ้าใจ จึงต ้องปรับค่าให ้เหลือเพียง 15 หลัก (Excel มีความละเอียด
เลขฐานสบ
Precision โดยรับตัวเลขได ้สูงสุด 15 หลัก) แล ้วสง่ ผลให ้ได ้ผลลัพธ์แตกต่างจากทีค
่ วรบ ้าง
เล็กน ้อย และมิได ้เกิดขึน
้ เฉพาะกรณี 22.3-22.2 เท่านัน ี างคาดการณ์ได ้เลยว่าจะ
้ เราไม่มท
เพีย
้ นเมือ
่ ใดและเกิดจากการคํานวณใด

ด ังนนก่
ั้ อนทีค
่ ณ ้ ต
ุ จะใชส ู รทีเ่ กีย ิ ใจหรือสูตรในการค้นหาข้อมูล เชน
่ วข้องก ับการต ัดสน ่
IF, SumIF, VLookup, หรือ Match จําเป็ นต ้องปรับค่าให ้เท่ากับค่าทีต
่ ้องการ เพือ
่ ให ้เป็ นไป
ตามเงือ ่ ้องการก่อนเสมอ โดยใชสู้ ตรอืน
่ นไขทีต ่ เข ้ามาชว่ ยปรับค่า จากนัน
้ เมือ
่ ได ้ค่าตามที่
ต ้องการจริงๆแล ้วคุณจะกําหนดรูปแบบ Format ใดๆให ้กับค่านัน ้ เพียงการ
้ ก็ตามใจ (ห ้ามใชแต่
้ เพราะมันไม่ได ้ชว่ ยปรับค่าทีแ
กําหนดรูปแบบเท่านัน ่ ท ้จริงแต่อย่างใด)

สูตรสําคัญซงึ่ ใชในการปรั
้ ึ ษารายละเอียดของสูตร
บค่าตัวเลขให ้เป็ นไปตามต ้องการ (โปรดศก
ได ้จาก Excel Help) ได ้แก่

1. สูตร =Round(ต ัวเลข, จํานวนหล ัก) ใชส้ ําหรับการปั ดค่า

=Round(123.45,0) คืนค่า 123


=Round(123.45,1) คืนค่า 123.5
=Round(123.45,-1) คืนค่า 120
=Round(123.45,-2) คืนค่า 100

2. สูตร =Trunc(ต ัวเลข, จํานวนหล ัก) ใชส้ ําหรับการตัดค่า

=Trunc(123.45,0) คืนค่า 123


=Trunc(123.45,1) คืนค่า 123.4 ต่างจาก Round

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(เลขตงต
ั้ ตง, หาร) ใชส้ ําหรับหาเศษ
ั้ เลขต ัวห ษทีเ่ หลือจาก
กการหาร

=Mod(7,2)) คืนค่า 1 เพราะ 7/2 เ ทียบเท่ากับ 3 1/2


=Mod(7,4)) คืนค่า 3 เพราะ 7/4 เ ทียบเท่ากับ 1 3/4
=Mod(123
3.45,1) คืนค่
คาเท่ากับ .4
45 !!!

ว ันทีจ
่ อมปลอม

ในหน ้ารรายงานของงทุกคน ต ้อง


งมีข ้อมูลเกีย
ยวกั
่ บวันเดือนปี
อ ของราย
ยงานนัน
้ กํากั บอยูด
่ ้วยเส
สมอ
ขอให ้เปิ ้ มาดูซวิ า่ ในเซลล
ปิ ดแฟ้ มของคุณขึน ล์ทม
ี่ ข
ี ้อมูลแสดงวั
แ นเดือนปี
อ ถ ้าไม่ได ้กําหนดรูปแบบให
ป ้
ิ ซาย
ชด ้ หรือชด
ิ ขวา ข ้อมูลวันเดื ิ ซายข
ดือนปี ของคุณชด ้ องเซลล์ตามรูปข ้างบนน
นีเ้ หมือนใน
Column ิ ขวาของเซล
n B หรือชด ลล์เหมือนใน
น Column C

Column ื่ เดื
n B เป็ นชอ เ อนทีช ิ ซายของเซล
่ ด ้ ลล์ ไม่วา่ คุณจะบั
ณ นทึกไว
ว ้เป็ นเพียงเล
ลขทีว่ น
ั หรือเฉพาะ

ื่ อนเท่านััน
เลขทีเ่ ดือน หรือชอเดื
อ ้ ตามแบบที
ทีเ่ ห็นในภาพ ิ ายเองโด
พนี้ ถ ้ามันชดซ
ด ้ ดยคุณไม่ได ้

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
146 

ิ ซาย
กําหนดให ้มันชด ้ แสดงว่าข ้อมูลนัน
้ มีคา่ เป็ น Text ซงึ่ ไม่มป
ี ระโยชน์ในการนํ าข ้อมูลไปใช ้
่ เซลล์ B2 ทีม
คํานวณต่อแม ้แต่น ้อย อย่างเชน ่ ค
ี ําว่า Jan ไม่ได ้ให ้รายละเอียดว่าเป็ นวันทีใ่ ดของ
เดือนมกราคมหรือเป็ นเดือนมกราคมของปี ใด คําว่า Jan ทีช ิ ซายให
่ ด ้ ้ความหมายแต่เพียงบอกว่า
้ ซงึ่ หลายคนแก ้ปั ญหาโดยการเพิม
เป็ นเดือนมกราคมเท่านัน ่ เซลล์บน
ั ทึกเลขปี ลงไปอีก

Column C เป็ นการบันทึกแบบทีถ ู ต ้อง สงั เกตว่าชอ


่ ก ื่ เดือนชด
ิ ขวาของเซลล์ และแม ้ในเซลล์
C2 แสดงคําว่า Jan ก็ตาม แต่เมือ
่ มองทีช ่ ง Formula Bar ด ้านบน จะพบว่ามีคา่ ทีแ
่ อ ่ ท ้จริงเป็ น
15/1/2010 ซงึ่ หากต ้องการให ้แสดงชอ
ื่ เดือนตัง้ แต่เซลล์ C3 ต่อๆกันไป ให ้สร ้างสูตร =C2+30
ลงไปในเซลล์ C3 แล ้ว Copy สูตรนีต
้ อ
่ ลงไปในแนวตัง้ จากนัน
้ ให ้กําหนด Format Cells ใน
Column C เป็ น [$-409]mmm จะทําให ้ค่า 15/1/2010, 14/2/2010, 16/3/2010 แสดง
ื่ เดือน Jan, Feb, Mar ทีช
เฉพาะชอ ิ ขวาของเซลล์
่ ด

สาเหตุทใี่ ชค่้ าแรกในเซลล์ C2 เป็ นวันที่ 15 นัน ่ ชว่ ยให ้เราสามารถบวกเพิม


้ เพือ ่ ต่อไปเซลล์ละ
30 วัน เพือ
่ ทําให ้ได ้เดือนต่อไปเพิม
่ ทีละเดือนได ้ง่ายกว่าทีจ
่ ะเริม
่ เซลล์แรกเป็ นวันทีส ิ้ เดือน ซงึ่
่ น
ต ้องบวกเพิม
่ ด ้วยจํานวน 31 วัน 30 วัน 28-29 วันแตกต่างกันไปในแต่ละเดือน

Copyright of www.ExcelExpertTraining.com 
147 

หล ักการใชว้ ันทีแ
่ ละเวลา

1. ในการบันทึก ให ้พิมพ์ให ้ครบทัง้ วันเดือนปี อย่าบันทึกเฉพาะวันทีห


่ รือเฉพาะเดือนหรือเฉพาะ
้ โดยจะพิมพ์สว่ นของเวลาต่อท ้ายด ้วยหรือไม่ก็ได ้ เชน
ปี เท่านัน ่ 14/2/2010 12:00
2. ให ้บันทึกโครงสร ้างของวันทีล
่ งไปในเซลล์ตามแบบทีก
่ ําหนดไว ้ใน Regional Setting ของ
่ ถ ้ากําหนดไว ้ใน Regional Setting เป็ น Thai ก็ต ้องบันทึกวันทีต
Windows เชน ่ ามแบบของ
ประเทศไทยซงึ่ ใชลํ้ าดับตามวันก่อนเดือนก่อนปี แต่ถ ้ากําหนดใน Regional Setting เป็ น
USA ก็ต ้องบันทึกตามลําดับเดือนก่อนวันก่อนปี
3. แม ้จะใช ้ Regional Setting เป็ น Thai แต่ในการบันทึกในสว่ นของเลขปี ต ้องใชปี้ ค.ศ.ในการ
บันทึกเท่านัน ้ ให ้ใช ้ Format ปรับการแสดงปี ค.ศ.ให ้เป็ นปี พ.ศ.ในภายหลัง เชน
้ จากนัน ่ ให ้
บันทึก 14/2/2010 (ห ้ามใชปี้ พ.ศ.แทนอย่างเด็ดขาด) จากนัน
้ เมือ
่ ต ้องการแสดงเป็ น
14/2/2553 ให ้ใช ้ Format [$-1070000]d/mm/yyyy
่ งหมาย / ในการแบ่งสว่ นของ ว ัน/เดือน/ปี ค.ศ. และ
4. ในโครงสร ้างของวันทีใ่ ห ้พิมพ์เครือ
่ งหมาย : ในการแบ่งสว่ นของ ชว่ ั โมง:นาที:วินาที
ในโครงสร ้างของเวลาให ้พิมพ์เครือ
5. ควรพิมพ์เลขปี ค.ศ.ให ้ครบทัง้ 4 หลักเสมอ แต่ถ ้าจําเป็ นต ้องพิมพ์แค่สองหลักท ้าย พอกด
ปุ่ ม Enter เพือ
่ บันทึกค่าลงไป Excel จะเปลีย
่ นตัวเลขปี 2 หลักท ้าย ดังนี้
5.1. ตัง้ แต่เลข 00-29 ให ้เป็ นชว่ งปี ค.ศ. 2000-2029
5.2. ตัง้ แต่เลข 30-99 ให ้ย ้อนกลับเป็ นชว่ งปี ค.ศ. 1930-1999
่ บันทึกวันทีแ
6. เมือ ิ ขวาของเซลล์เสมอ (สาเหตุทช
่ ล ้วต ้องชด ิ ขวาเพราะมีคา่ เป็ นตัวเลข) และ
ี่ ด
่ งการใชวั้ นทีแ
ขอให ้หลีกเลีย ่ บบ Text ซงึ่ ชด
ิ ซายของเซลล์
้ เนือ
่ งจาก Excel จะไม่นํา
Regional Setting มาชว่ ยควบคุมในการแบ่งสว่ นของวันเดือนปี ทใี่ ชแบบ
้ Text
7. ค่าของวันทีแ ื่ เรียกว่า Date Serial Number หรือเรียกว่า Serial Number (SN)
่ ละเวลามีชอ
โดย Excel ถือว่า 1/1/1900 0:00:00 มีคา่ SN=1 ซงึ่ เราสามารถแกะดูคา่ SN ได ้โดย
เปลีย ่ 14/2/2010
่ น Format เป็ น General (โดยการกดปุ่ ม Ctrl+Shift+ ~) เชน
12:00:00 มีคา่ SN เท่ากับ 40223.5
7.1. ในสว่ นของตัวเลข SN สว่ นทีเ่ ป็ นจํานวนเต็ม คือ ค่าของวันที่
7.2. ในสว่ นของตัวเลข SN สว่ นทีเ่ ป็ นเศษทศนิยม คือ ค่าของเวลา
่ จาก 0:00:00-23:59:59 และใช ้ Format h:mm:ss
8. เวลาของ Excel เริม
9. ระยะเวลา เริม
่ จาก 0:00:00 ขึน ิ้ สุดที่ 23:59:59
้ ไป โดยไม่สน
9.1. ใช ้ Format [h]:mm:ss เพือ
่ แสดงเลขตัง้ แต่ 24 ชวั่ โมงขึน
้ ไปได ้

Copyright of www.ExcelExpertTraining.com 
148 

9.2. ใช ้ Format [mm]:ss เพือ


่ แสดงเลขตัง้ แต่ 60 นาทีขน
ึ้ ไปได ้
9.3. ใช ้ Format [ss] เพือ
่ แสดงเลขตัง้ แต่ 60 วินาทีขน
ึ้ ไปได ้
10. ในการแสดงเวลาหรือระยะเวลา ถ ้าค่า SN < 1 จะใช ้ Format ของเวลาหรือระยะเวลาก็ได ้
แต่ถ ้า SN >=1 ต ้องเลือกใช ้ Format ของระยะเวลาเท่านัน

11. ถ ้าต ้องการบันทึกการทํางานข ้ามคืน ไม่ควรบันทึกเฉพาะเวลาเข ้าออกงาน แต่ให ้บันทึกวัน
่ 14/2/2010 20:00 เพือ
เดือนปี กํากับเวลาไว ้ด ้วย เชน ่ ทําให ้ Excel รับรู ้ค่าเป็ น SN ทีม
่ ค
ี รบ
ทัง้ สว่ นของวันทีแ
่ ละเวลา
12. Format ในการแสดงวันและเวลา
12.1. แสดงเลขวันที่ ใช ้ d หรือ dd
12.2. ื่ วัน แบบย่อใช ้ ddd หรือแบบเต็ม dddd
แสดงเป็ นชอ
12.3. แสดงเป็ นเลขเดือน ใช ้ m หรือ mm
12.4. ื่ เดือน แบบย่อใช ้ mmm หรือแบบเต็ม mmmm
แสดงเป็ นชอ
12.5. แสดงเป็ นเลขปี ใช ้ yy หรือ yyyy
12.6. แสดงชวั่ โมง นาที วินาที ใช ้ h:mm:ss หรือ hh:mm:ss
12.7. รหัสควบคุม Locale ใช ้ [$-409] สําหรับ USA และ [$-1070000] สําหรับไทย

การคํานวณว ันทีแ
่ ละเวลา

ก่อนทีจ
่ ะนํ าวันทีแ
่ ละเวลามาคํานวณได ้ ต ้องเริม
่ จากการตรวจสอบว่าข ้อมูลเกีย
่ วข ้องกับวันทีแ
่ ละ
เวลาซงึ่ ถูกบันทึกไว ้ว่ามีโครงสร ้างทีถ
่ ก
ู ต ้องตรงกับ Regional Setting หรือไม่ หากบันทึกไว ้ผิด
่ ใน Regional Setting กําหนดไว ้เป็ น USA แต่คนทีบ
เชน ั ทึกข ้อมูลพิมพ์วน
่ น ั ทีไ่ ว ้ในแบบ
่ พิมพ์ 4/2/2001 ซงึ่ ต ้องการบันทึกแบบไทยให ้หมายถึงวันที่ 4 เดือน 2 ปี
ประเทศไทย เชน
2001 จะพบว่าเมือ
่ นํ าแฟ้ มนัน
้ มาเปิ ดบนเครือ
่ งทีม
่ ี Regional Setting เป็ นไทย เลขทีข
่ องวันจะ
่ องเดือน จะแสดงเป็ น 2/4/2001 แทน ทําให ้กําหนดเวลาทีบ
สลับกับเลขทีข ่ น
ั ทึกไว ้ผิดทัง้ หมด
ถ ้าไม่เก่งสูตรเกีย
่ วข ้องกับวันทีแ
่ ละเวลาก็ต ้องจัดการพิมพ์ทบ
ั ใหม่ทงั ้ หมด

นอกจากนีต ่ งึ่ บันทึกไว ้เป็ นข ้อมูลทีม


้ ้องตรวจสอบต่อไปอีกว่า ค่าของวันทีซ ่ ค
ี า่ เป็ นตัวเลข (Date
Serial Number หรือ SN) หรือไม่ โดยเริม ิ ซายช
่ จากยกเลิกการจัดชด ้ ดิ ขวาของเซลล์วน
ั ที่
ิ ขวาก็ใชได
ทัง้ หมด หากพบว่า ชด ้ ้ แต่ถ ้าพบว่าชด
ิ ซายแสดงว่
้ ามีคา่ เป็ น Text ซงึ่ ไม่สามารถ
ั สูตร Left, Right, Mid แยกตัวเลขแต่ละสว่ นทีเ่ ป็ น
นํ ามาคํานวณต่อได ้ในทันที จําเป็ นต ้องอาศย
วันเดือนปี ออกจากกันแล ้วใชสู้ ตรวันทีแ
่ ละเวลามาชว่ ยแก ้ไขให ้มีคา่ เป็ น SN

Copyright of www.ExcelExpertTraining.com 
149 

หากคุณอยากจะเก่งสูตรคํานวณเรือ
่ งวันทีแ
่ ละเวลา ต ้องรู ้จักสูตรหา SN หรือสูตรทีส
่ ามารถ
แปลงเลขทีข
่ องวันเดือนปี ทม ่ สูตร Now(),
ี่ นุษย์เข ้าใจไปเป็ นค่า SN ที่ Excel รู ้จัก เชน
Today(), Date(Year,Month,Day), Time(Hour,Minute,Second)

้ ต ้องสามารถใชสู้ ตรแปลงค่า SN กลับมาเป็ นเลขทีข


จากนัน ่ สูตร Day(SN),
่ องวันเดือนปี เชน
Month(SN), Year(SN), และ WeekDay(SN) หรือหาเลขทีข ่ Hour(SN),
่ องเวลา เชน
Minute(SN), Second(SN)

สูตรแปลงเลขทีข
่ องว ันเดือนปี และเวลาทีม
่ นุษย์เข้าใจ
ไปเป็นค่า Serial Number

่ ชว่ ยให ้เข ้าใจสูตรได ้ง่ายขึน


เพือ ้ ขอสมมติวา
่ ปัจจุบ ัน คือ วันที่ 14 เดือนกุมภาพันธ์ ปี ค.ศ.
ิ 30 นาที 45 วินาที
2010 เวลา 12 นาฬกา

1. =NOW() จะได ้วันเดือนปี และเวลาปั จจุบน ่ 14/2/2010 12:30:45


ั เชน
2. =Today() จะได ้เฉพาะวันเดือนปี ปัจจุบน ่ 14/2/2010
ั เชน
3. =Date(2010,2,14) จะได ้ 14/2/2010
4. =Date( Year(Today()), Month(Today())+1, 0) จะได ้วันเดือนปี ของวันสุดท ้าย
ของเดือนปั จจุบน
ั คือ 28/2/2010
5. =Time(12,30,45) จะได ้เวลา 12:30:45
6. =Time(12,30,45)+1 จะได ้ระยะเวลา 36:30:45 ซงึ่ ต ้องใช ้ Format [h]:mm:ss ด ้วย

สูตรแปลงค่า Serial Number


กล ับมาเป็นเลขทีข
่ องว ันเดือนปี และเวลาทีม
่ นุษย์เข้าใจ

ู ร =NOW() ซงึ่ แสดงออกมาเป็ น 14/2/2010 12:30:45 (ถ ้าต ้องการ


สมมติวา่ เซลล์ A1 มีสต
แสดงค่าออกมาเป็ น SN โดยการเปลีย
่ น Format เป็ น General จะพบว่า เซลล์ A1 มีคา่ SN
เท่ากับ 40223.5213541667 ซงึ่ เป็ นตัวเลขที่ Excel รู ้จักแต่เราไม่รู ้จัก)

1. =Day(A1) จะได ้เลขวันที่ 14


2. =Month(A1) จะได ้เลขเดือน 2
3. =Year(A1) จะได ้เลขปี 2010

Copyright of www.ExcelExpertTraining.com 
150 

ั ดาห์ 1=Sunday, 2=Tuesday,…7=Saturday


4. =WeekDay(A1) จะได ้เลขของวันในสป
5. =Hour(A1) จะได ้เลขชวั่ โมง 12
6. =Minute(A1) จะได ้เลขนาที 30
7. =Second(A1) จะได ้เลขวินาที 45

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 

ตัวอย่างต่อไปนี้ สมมติวา่ ค่าทีพ


่ ม
ิ พ์ลงไปในเซลล์คอ
ื 123, -123, 0, Hello

• Format ;;; จะไม่แสดงอะไรให ้เห็นเลย


• Format 0.00 จะแสดง 123.00, -123.00, 0.00, Hello
• Format 0.00; จะแสดง 123.00, ค่าลบไม่แสดง, 0.00, Hello
• ี ดง, 0.00, Hello
Format 0.00;[Red](0.00) จะแสดง 123.00, (123.00) ในสแ
• Format 0.00;; จะแสดงเฉพาะค่าบวก 123.00 กับ Hello เท่านัน
้ ค่า ลบ และ 0 ไม่
แสดง
• Format 0.00;;; จะแสดงเฉพาะค่าบวก 123.00 เท่านัน

• Format 0.00;(0.00);; จะแสดงเฉพาะค่าบวก123.00 กับค่าลบ (123.00)
• Format “Yes”;”No”;”Reject”; จะแสดง Yes, No, Reject
• Format “Total” 0 “Baht”. 00 “Satang”;;; จะแสดง Total 123 Baht. 00 Satang
• Format 0.00_);(0.00);; จะแสดง 123.00 ได ้แนวตรงกับค่าลบ (123.00) โดย
เครือ
่ งหมาย _) ทีเ่ ติมต่อท ้าย Format ค่าบวก หมายถึง ให ้ห่างจากขอบขวาของเซลล์
เท่ากับความกว ้างของเครือ
่ งหมาย )

ตัวอย่าง Format แปลกๆ

• Format [>=90]”A”;[>=70]”B”;”C” จะเปลีย


่ นตัวเลขในเซลล์ตามเงือ
่ นไขว่า
ถ ้าค่ามากกว่าหรือเท่ากับ 90 ให ้แสดงตัว A แทนตัวเลขนัน

ถ ้าค่ามากกว่าหรือเท่ากับ 70 ให ้แสดงตัว B แทนตัวเลขนัน

หรือมิฉะนัน
้ ให ้แสดงตัว C
• Format [=1]”Yes”;[=0]”No”;”Reject” จะแสดงคําว่า Yes, No, Reject แทนตัวเลขที่
มีคา่ เท่ากับ 1, 0, หรือตัวเลขอืน
่ ตามลําดับ
• Format “4”;”4”;”4”;”4” จะเปลีย
่ นค่าให ้เป็ นเลข 4 แทนไม่วา่ ค่าทีแ
่ ท ้จริงจะเป็ นเท่าใด
• Format 0000 จะแสดงเลข 123 ออกมาเป็ น 0123 (ซงึ่ ตัวเลขยังคงมีสถานะเป็ นตัวเลข
ตามเดิม ถูกต ้องกว่าการพิมพ์ ‘0123 หรือใชคํ้ าสงั่ Format Cells > Number > Text
ซงึ่ ทําให ้ตัวเลขเปลีย
่ นสถานะมาเป็ น Text ซงึ่ ดูงา่ ยๆว่าจะชด
ิ ซายของเซลล์
้ )
• ั ลักษณ์แปลกทีไ่ ม่มบ
หากต ้องการแทรกสญ ่
ี นแป้ นพิมพ์ลงไปใน Format เชน
่ งหมายบวกลบ ± ให ้กดปุ่ ม Alt ค ้างไว ้แล ้วพิมพ์ตวั เลข 0177 ซงึ่ สามารถค ้นหาตัว
เครือ

Copyright of www.ExcelExpertTraining.com 
153 

เลขทีต
่ ้องพิ
พิมพ์นไ ก โปรแกรม Characterr Map ซงึ่ สงเปิ
ี้ ด ้จาก งั่ ดโปรแก
กรมนีไ
้ ด ้ง่ายๆโดย

พิมพ์คําว่า charmap
c ลงไปในช
ล อ่ งงของคําสงั่ Start
S > Run

คํ้ าสงั่ Forma


การใชค at Cells > Number จะะชว่ ยปรับกาารแสดงตัวเลขให ้มีตวั อั กษรแทรก โดย
ค่าทีแ
่ ท ้้จริงยังคงถือว่าเป็ น Nu
umber ทีเ่ ห็น ิ ขวาของ
นได ้จากการรชด งเซลล์ แต่ถ ้าเซลล์มค
ี วาม

กว ้างไม
ม่พอจะเห็นเป็ นเครือ
่ งหม ### แทน ซงึ่ แก ้ได ้โดยสงั่ Form at Cells >
มาย ####
Alignm
ment > กา ่ ง Shriink to fit เเพือ
าชอ ่ ทําให ้ Excel
E ปรับขนาด Font ย
ย่อลงให ้แสดงให ้
เห็นไดในเซลล์
้ใ นัน
้ เสมอ

ประเด็น
นเรือ ้ อยํ้าว่า การใช ้ Fo
่ ง Format นีข ่ นสงิ่ เห็น เท่านัน
ormat เป็ นเเพียงการเปลีย ้ มิได ้แก ้ไข
ค่าให ้ต่าางไปจากเดิ
ดิมแม ้แต่น ้อย

หากต ้องการนํ าตัวเลขไปแสดง


เ งร่วมกับตัวอักษร ยังมีอกวิ
ี ธห ดยใชสู้ ตร T
ี นึง่ โด ชว่ ยปรับ
Text เข ้ามาช
รูปแบบข
ของตัวเลขแ
แล ้วนํ าไปเช
ชอ่ื มต่อกับตั วั อักษรทีต
่ องการโดยใ
้อ ้ อ
ชเครื ่ งหมาาย & เป็ นตัวเช
ว อ ื่ ม

สมมติวา่ เซลล์ A1 มีคา่ เท่ากับ .15 หากต


ต ้ ้องการนํ าเล
ลข .15 ไปแ นคําว่า Profit
แสดงให ้เป็ น
15.0% ทําได ้ 2 วิธี
ธี

• วิธแ ค้ าสงั่ Form


ี รก ใชคํ mat Cells > Number > Custom แล
แ ้วกําหนด Type เป็ น
“Profit” 0.0
0%
• วิธท
ี ส
ี่ อง สร
ส ้างสูตร =””Profit ”&T
Text(A1,”0.0%”)

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
154 

จะพบว่าผลจากวิธแ ิ ขวาของเซลล์แสดงว่าสามารถนํ าไปคํานวณ


ี รกได ้คําว่า Profit 15.0% ชด
ต่อได ้ แต่วธิ ท
ี ส ิ ซายของเซลล์
ี่ องแม ้จะได ้คําเดียวกันแต่จะชด ้ ซงึ่ ไม่สามารถนํ าไปคํานวณต่อ จึง
ขอแนะนํ าให ้ใชวิ้ ธท
ี ส ุ ท ้ายทีไ่ ม่ต ้องนํ าไปใชคํ้ านวณต่อเท่านัน
ี่ องกับผลลัพธ์สด ้

นอกจากนีส
้ ต
ู ร 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 นัน
้ สร ้างขึน
้ มาเพือ
่ จุดประสงค์ใด

ขอแนะนํ าให ้ใช ้ Expert2000.xla ซงึ่ เป็ น Add-in ทีแ ้


่ จกให ้ใชในหลั
กสูตรสุดยอดเคล็ดลับ
ื่ Expert และมีคําสงั่ เพิม
โดยจะทําให ้คุณได ้เมนูชอ ่ ขึน
้ ทําหน ้าทีเ่ กีย
่ วข ้องกับการปรับแต่ง
หน ้าจอเมือ ู รต่อไปนีเ้ พิม
่ สร ้างงานเสร็จแล ้ว และยังทําให ้มีสต ่ เติม

• =Fml(cell) ทําหน ้าทีแ


่ สดงสูตรในเซลล์
• =Fmt(cell) ทําหน ้าทีแ
่ สดง Format ในเซลล์

ถ ้าเรียกใช ้ 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 เป็ นทางออกทีจ ้
้ มาใชงานในแฟ้ ม

วิธส
ี ร้าง Function VBA

1. เปิ ด Visual Basic Editor โดยกดปุ่ ม Alt+F11


้ คําสงั่ Insert > Module เพือ
2. ใชเมนู ่ เปิ ดพืน
้ ทีจ
่ ัดเก็บรหัส
่ ้องการ โดยเลือกชว่ งตัง้ แต่บรรทัด Function ถึงบรรทัด End Function
3. copy รหัสทีต
4. paste รหัสที่ copy ไว ้นัน
้ ลงใน module ทีต
่ ้องการ
้ บ Function ได ้ไม่จํากัด ให ้เรียง Function ต่อกันไปเรือ
5. ใน Module หนึง่ ๆ จะใชเก็ ่ ยๆ
6. สงั่ File > Save โดยกําหนดนามสกุลแฟ้ ม xlsm

วิธใี ช ้ 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 _

GetFormulaI = "{" & cell.formula & "}"

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

4 Function FUNCTION_DEF(FCELL As Variant)As Variant

Copyright of www.ExcelExpertTraining.com 
160 

'Let's make sure the function


'recalculates when required
Application.Volatile

'If the argument is not a range


'then return appropriate error.
If Not TypeName(FCELL) = "Range" Then
FUNCTION_DEF = CVErr(xlErrRef)
Exit Function
End If

'If the argument is not a single


'cell then return appropriate error.
If Not FCELL.Cells.Count = 1 Then
FUNCTION_DEF = CVErr(xlErrRef)
Exit Function
End If

'If the argument cell contains no


'formula, then just return its value
If Not FCELL.HasFormula Then
FUNCTION_DEF = FCELL.Value
Exit Function
End If

'Find out the format of the formula


'we need to return...
Select Case Application.ReferenceStyle
Case xlA1

Copyright of www.ExcelExpertTraining.com 
161 

FUNCTION_DEF = FCELL.Formula
Case xlR1C1
FUNCTION_DEF = FCELL.FormulaR1C1
End Select

'Finally check whether we are looking at a cell


'containing an array function.
If FCELL.HasArray Then _
FUNCTION_DEF = "{" & FUNCTION_DEF & "}"

End Function

แสดงสูตรในเซลล์

Option Explicit

Function DATEDIFF(d1, d2) As Variant


Dim YearDiff As Integer
Dim MonthDiff As Integer
Dim DayDiff As Integer
Dim temp As Date
5

' Swap arguments, if necessary


If d1 > d2 Then
temp = d1
d1 = d2
d2 = temp
End If

Copyright of www.ExcelExpertTraining.com 
162 

' Do the year part


YearDiff = Year(d2) - Year(d1)
If DateSerial(Year(d2), Month(d1), Day(d1)) > d2 _
Then YearDiff = YearDiff - 1

' Do the month part


If Month(d2) > Month(d1) Then
If Day(d2) >= Day(d1) Then
MonthDiff = Month(d2) - Month(d1)
Else
MonthDiff = Month(d2) - Month(d1) - 1
End If
Else
If Day(d2) >= Day(d1) Then
MonthDiff = Month(d2) - Month(d1) + 12
If MonthDiff = 12 Then MonthDiff = 0
Else
MonthDiff = Month(d2) - Month(d1) + 11
End If
End If

' Do the day part


If Day(d2) >= Day(d1) Then
DayDiff = Day(d2) - Day(d1)
Else
DayDiff = Day(DateSerial(Year(d1), _
Month(d1) + 1, 1) - 1) - Day(d1) + Day(d2)
End If

' Create the variant array to be returned

Copyright of www.ExcelExpertTraining.com 
163 

DATEDIFF = Array(YearDiff, MonthDiff, DayDiff)


End Function

แสดงระยะเวลาระหว่างชว่ งเวลาทีก
่ ําหนด

www.j-walk.com\ss\excel\tips\tip55.htm

Function Age(TheDate As Double) As String


Age = _
CStr(Evaluate("=DATEDIF(" & TheDate & "," & CDbl(Now) & ",""y"")"))
& " years " & _
6 CStr(Evaluate("=DATEDIF(" & TheDate & "," & CDbl(Now) &
",""ym"")")) & " months " & _
CStr(Evaluate("=DATEDIF(" & TheDate & "," & CDbl(Now) &
",""md"")")) & " days"
End Function

แสดงระยะเวลาระหว่างชว่ งเวลาทีก
่ ําหนดเป็ นประโยครวม

Function OrdDate(arg)

dd = Day(arg)

mmmm = Format(arg, "mmmm") '*Corrected*


7
yyyy = Year(arg)

Select Case 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

แปลงวันทีใ่ ห ้มีคําต่อท ้าย st nd rd th

Function SheetName() As String


8 SheetName = Application.Caller.Parent.Name 'in XL97
End Function

ื่ sheet
แสดงชอ

Function CellType(c)

' Returns the cell type of the upper left


9
' cell in a range

Application.Volatile

Copyright of www.ExcelExpertTraining.com 
165 

Set c = c.Range("A1")

Select Case True

Case IsEmpty(c): CellType = "Blank"

Case Application.IsText(c): CellType = "Text"

Case Application.IsLogical(c): CellType = "Logical"

Case Application.IsErr(c): CellType = "Error"

Case IsDate(c): CellType = "Date"

Case InStr(1, c.Text, ":") <> 0: CellType = "Time"

Case IsNumeric(c): CellType = "Value"

End Select

End Function

แสดงประเภทของค่าในเซลล์

Function CellValue(c) As Double

'John Walkenbach 2001-04-25

10 ' misc returns number part

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

' UseFormula Jul 20, 1998, UseFormula2 Jun 13, 2000

'Application.Volatile = True -- DO NOT DO THIS


12

If Trim(cell.Value) = "" Then

UseFormula2 = ""

Exit Function

ElseIf Left(cell.Value, 1) = "=" Then

UseFormula2 = Application.Evaluate(cell.Formula)

Exit Function

Else

Copyright of www.ExcelExpertTraining.com 
167 

UseFormula2 = "'#bad formula"

End If

End Function


แปลงสูตรทีเ่ ป็ นตัวอักษร ให ้เป็ นสูตรทีใ่ ชงานได ้

Function fontinfo(cell As Range) As String

fontinfo = cell.FONT.Name & " -- " & cell.FONT.Size

If Left(cell.FONT.FontStyle, 7) = "Regular" Then

fontinfo = Trim(fontinfo & Mid(cell.FONT.FontStyle, 8, 100))


13
Else

fontinfo = Trim(fontinfo & " " & cell.FONT.FontStyle)

End If

End Function

แสดงรายละเอียดของ font ทีใ่ ช ้

Function SumByColor(InputRange As Range, ColorRange As Range) As


Double
Dim cl As Range, TempSum As Double, ColorIndex As Integer
14
ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex
TempSum = 0
On Error Resume Next ' ignore cells without values

Copyright of www.ExcelExpertTraining.com 
168 

For Each cl In InputRange.Cells


If cl.Interior.ColorIndex = ColorIndex Then TempSum = TempSum +
cl.Value
Next cl
On Error GoTo 0
Set cl = Nothing
SumByColor = TempSum
End Function

ี ใี่ ช ้ www.erlandsendata.no
หายอดรวมตามสท

Function CountByColor(InputRange As Range, ColorRange as Range) As


Long

Dim cl As Range, TempCount As Long, ColorIndex As Integer

ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex

TempCount = 0

For Each cl In InputRange.Cells


15
If cl.Interior.ColorIndex = ColorIndex Then TempCount =
TempCount + 1

Next cl

Set cl = Nothing

CountByColor = TempCount

End Function

Copyright of www.ExcelExpertTraining.com 
169 

ี ใี่ ช ้
นับจํานวนตามสท

Function WEEKNR(InputDate As Long) As Integer

Dim A As Integer, B As Integer, C As Long, D As Integer

WEEKNR = 0

If InputDate < 1 Then Exit Function

A = Weekday(InputDate, vbSunday)
16
B = Year(InputDate + ((8 - A) Mod 7) - 3)

C = CDate("1.1." & B)

D = (Weekday(C, vbSunday) + 1) Mod 7

WEEKNR = Int((InputDate - C - 3 + D) / 7) + 1

End Function

คืนค่าเป็ นเลขทีส ั ดาห์ www.erlandsendata.no


่ ป

Function UniqueItem(InputRange As Range, ItemNo As Long) As Variant

Dim cl As Range, cUnique As New Collection, cValue As Variant

17 Application.Volatile

On Error Resume Next

For Each cl In InputRange

Copyright of www.ExcelExpertTraining.com 
170 

If cl.Formula <> "" Then

cUnique.Add cl.Value, CStr(cl.Value)

End If

Next cl

UniqueItem = ""

If ItemNo = 0 Then

UniqueItem = cUnique.Count

Else

If ItemNo <= cUnique.Count Then

UniqueItem = cUnique(ItemNo)

End If

End If

On Error GoTo 0

End Function

แสดงค่า unique values

=UniqueItem(A1:A100,2) แสดงค่า the 2nd unique value


=UniqueItem(A1:A100,0) แสดงจํานวน unique values

18 Function INDEXN(InputRange As Range, N As Integer) As Variant

Copyright of www.ExcelExpertTraining.com 
171 

' returns every N-th item from InputRange

' select the desired target range for the function and

' enter as an array function with Ctrl+Shift+Enter.

Dim ItemList() As Variant, c As Range, i As Long, iCount As Long

i=0

iCount = 0

ReDim ItemList(1 To InputRange.Cells.Count \ N)

For Each c In InputRange

i=i+1

If i Mod N = 0 Then

iCount = iCount + 1

On Error Resume Next

ItemList(iCount) = c.Value

On Error GoTo 0

End If

Next c

INDEXN = ItemList

If InputRange.Rows.Count >= InputRange.Columns.Count Then

INDEXN = Application.WorksheetFunction.Transpose(INDEXN)

Copyright of www.ExcelExpertTraining.com 
172 

End If

Erase ItemList

End Function

แสดงค่าทีอ
่ ยูใ่ นลําดับที่ n

Sub FindUniqueValues(SourceRange As Range, TargetCell As Range)

SourceRange.AdvancedFilter Action:=xlFilterCopy,
19
CopyToRange:=TargetCell, Unique:=True

End Sub

แยก unique items ออกมาสรุป

Function TimeInterval(StartTime As Double, EndTime As Double, _

LowerLimit As Double, UpperLimit As Double) As Double

' returns EndTime-StartTime limited by LowerLimit and UpperLimit

TimeInterval = 0
20
If StartTime > EndTime Then Exit Function

If StartTime > UpperLimit Then Exit Function

If EndTime < LowerLimit Then Exit Function

If StartTime < LowerLimit Then StartTime = LowerLimit

Copyright of www.ExcelExpertTraining.com 
173 

If EndTime > UpperLimit Then EndTime = UpperLimit

TimeInterval = EndTime - StartTime

End Function

ระยะเวลาระหว่างชว่ ง

Option Explicit

'****************
' Main Function *
'****************
Function BahtEng(ByVal MyNumber)
Dim Baht, Satang, Temp
Dim DecimalPlace, Count

ReDim Place(9) As String


Place(2) = " Thousand "
21
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "

' String representation of amount


MyNumber = Trim(Str(MyNumber))

' Position of decimal place 0 if none


DecimalPlace = InStr(MyNumber, ".")
'Convert Satang and set MyNumber to Baht amount
If DecimalPlace > 0 Then

Copyright of www.ExcelExpertTraining.com 
174 

Satang = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))


MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

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

Select Case Baht


Case ""
Baht = "No Baht"
Case "One"
Baht = "One Baht"
Case Else
Baht = Baht & " Baht"
End Select

Select Case Satang


Case ""
Satang = " and No Satang"
Case "One"
Satang = " and One Satang"

Copyright of www.ExcelExpertTraining.com 
175 

Case Else
Satang = " and " & Satang & " Satang"
End Select

BahtEng = Baht & Satang


End Function

'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String

If Val(MyNumber) = 0 Then Exit Function


MyNumber = Right("000" & MyNumber, 3)

'Convert the hundreds place


If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If

'Convert the tens and ones place


If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If

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

Result = "" 'null out the temporary function value


If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
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 "

Copyright of www.ExcelExpertTraining.com 
177 

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"
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

ReDim Place(9) As String


Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
22

' String representation of amount


MyNumber = Trim(Str(MyNumber))

' Position of decimal place 0 if none


DecimalPlace = InStr(MyNumber, ".")
'Convert Satang and set MyNumber to Baht amount
If DecimalPlace > 0 Then
Satang = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

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

Select Case Baht


Case ""
Baht = "No Baht"
Case "One"
Baht = "One Baht"
Case Else
Baht = Baht & " Baht"
End Select

Select Case Satang


Case ""
Satang = " Only"
Case "One"
Satang = " and One Satang"
Case Else
Satang = " and " & Satang & " Satang"
End Select

BahtOnly = Baht & Satang


End Function

Copyright of www.ExcelExpertTraining.com 
180 

'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String

If Val(MyNumber) = 0 Then Exit Function


MyNumber = Right("000" & MyNumber, 3)

'Convert the hundreds place


If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If

'Convert the tens and ones place


If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If

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 

Result = "" 'null out the temporary function value


If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
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

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 

Dim KeyUnit1, KeyUnit2, Temp


Dim DecimalPlace, Count

ReDim Place(9) As String


Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "

' String representation of amount


MyNumber = Trim(Str(MyNumber))

' Position of decimal place 0 if none


DecimalPlace = InStr(MyNumber, ".")
'Convert KeyUnit2 and set MyNumber to KeyUnit1 amount
If DecimalPlace > 0 Then
KeyUnit2 = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

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

Select Case KeyUnit1


Case ""
KeyUnit1 = "No " & UnitName1
Case "One"
KeyUnit1 = "One " & UnitName1
Case Else
KeyUnit1 = KeyUnit1 & " " & UnitName1 & "s"
End Select

Select Case KeyUnit2


Case ""
KeyUnit2 = " Only"
Case "One"
KeyUnit2 = " and One " & " " & UnitName2
Case Else
KeyUnit2 = " and " & KeyUnit2 & " " & UnitName2 & "s"
End Select

Money = KeyUnit1 & KeyUnit2


End Function

'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String

If Val(MyNumber) = 0 Then Exit Function

Copyright of www.ExcelExpertTraining.com 
185 

MyNumber = Right("000" & MyNumber, 3)

'Convert the hundreds place


If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If

'Convert the tens and ones place


If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If

GetHundreds = Result
End Function

'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Private Function GetTens(TensText)
Dim Result As String

Result = "" 'null out the temporary function value


If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"

Copyright of www.ExcelExpertTraining.com 
186 

Case 14: Result = "Fourteen"


Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
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)

Copyright of www.ExcelExpertTraining.com 
187 

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

'****************
' Main Function *
'****************
Function UnitText(ByVal MyNumber, UnitName1, UnitName2)
24 Dim KeyUnit1, KeyUnit2, Temp

Dim DecimalPlace, Count

ReDim Place(9) As String


Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "

Copyright of www.ExcelExpertTraining.com 
188 

Place(5) = " Trillion "

' String representation of amount


MyNumber = Trim(Str(MyNumber))

' Position of decimal place 0 if none


DecimalPlace = InStr(MyNumber, ".")
'Convert KeyUnit2 and set MyNumber to KeyUnit1 amount
If DecimalPlace > 0 Then
KeyUnit2 = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

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

Select Case KeyUnit1


Case ""
KeyUnit1 = "No " & UnitName1
Case "One"
KeyUnit1 = "One " & UnitName1

Copyright of www.ExcelExpertTraining.com 
189 

Case Else
KeyUnit1 = KeyUnit1 & " " & UnitName1 & "" 'without s
End Select

Select Case KeyUnit2


Case ""
KeyUnit2 = " Only"
Case "One"
KeyUnit2 = " and One " & " " & UnitName2
Case Else
KeyUnit2 = " and " & KeyUnit2 & " " & UnitName2 & "" 'without s
End Select

UnitText = KeyUnit1 & KeyUnit2


End Function

'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String

If Val(MyNumber) = 0 Then Exit Function


MyNumber = Right("000" & MyNumber, 3)

'Convert the hundreds place


If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If

Copyright of www.ExcelExpertTraining.com 
190 

'Convert the tens and ones place


If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If

GetHundreds = Result
End Function

'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Private Function GetTens(TensText)
Dim Result As String

Result = "" 'null out the temporary function value


If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else

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 

Case 7: GetDigit = "Seven"


Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function

สูตรแปลงตัวเลขเป็ นคําอ่าน

Option Explicit

Function NetYMD(Day1 As Date, Day2 As Date) As String


Dim years, months, days, m

years = Year(Day2) - Year(Day1)


If Month(Day1) > Month(Day2) Then
years = years - 1
End If

25
If Month(Day2) < Month(Day1) Then
months = 12 - Month(Day1) + Month(Day2)
Else
months = Month(Day2) - Month(Day1)
End If

If Day(Day2) < Day(Day1) Then


months = months - 1
If Month(Day2) = Month(Day1) Then
years = years - 1

Copyright of www.ExcelExpertTraining.com 
193 

months = 11
End If
End If

days = Day(Day2) - Day(Day1)


If days < 0 Then
m = CInt(Month(Day2)) - 1
If m = 0 Then m = 12
Select Case m
Case 1, 3, 5, 7, 8, 10, 12
days = 31 + days
Case 4, 6, 9, 11
days = 30 + days
Case 2
If (Year(Day2) Mod 4 = 0 And Year(Day2) _
Mod 100 <> 0) Or Year(Day2) Mod 400 = 0 Then
days = 29 + days
Else
days = 28 + days
End If
End Select
End If
NetYMD = CStr(years) + " years " + CStr(months) _
+ " months " + CStr(days) + " days "
End Function

Function NetYear(Day1 As Date, Day2 As Date) As String


Dim years, months, days, m

years = Year(Day2) - Year(Day1)

Copyright of www.ExcelExpertTraining.com 
194 

If Month(Day1) > Month(Day2) Then


years = years - 1
End If
NetYear = CStr(years)

End Function

Function NetMonth(Day1 As Date, Day2 As Date) As String


Dim years, months, days, m

If Month(Day2) < Month(Day1) Then


months = 12 - Month(Day1) + Month(Day2)
Else
months = Month(Day2) - Month(Day1)
End If

If Day(Day2) < Day(Day1) Then


months = months - 1
If Month(Day2) = Month(Day1) Then
years = years - 1
months = 11
End If
End If

NetMonth = CStr(months)

End Function

Function NetDay(Day1 As Date, Day2 As Date) As String


Dim years, months, days, m

Copyright of www.ExcelExpertTraining.com 
195 

days = Day(Day2) - Day(Day1)


If days < 0 Then
m = CInt(Month(Day2)) - 1
If m = 0 Then m = 12
Select Case m
Case 1, 3, 5, 7, 8, 10, 12
days = 31 + days
Case 4, 6, 9, 11
days = 30 + days
Case 2
If (Year(Day2) Mod 4 = 0 And Year(Day2) _
Mod 100 <> 0) Or Year(Day2) Mod 400 = 0 Then
days = 29 + days
Else
days = 28 + days
End If
End Select
End If

NetDay = CStr(days)

End Function

สูตรคํานวณระยะเวลา

Function PersonalTax(TaxableIncome)
26
Const UpperRange0 = 50000

Copyright of www.ExcelExpertTraining.com 
196 

Const UpperRange1 = 100000


Const UpperRange2 = 500000
Const UpperRange3 = 1000000
Const UpperRange4 = 4000000
Const TaxRate0 = 0
Const TaxRate1 = 0.05
Const TaxRate2 = 0.1
Const TaxRate3 = 0.2
Const TaxRate4 = 0.3
Const TaxRate5 = 0.37
Const TotalTaxPay0 = 0
Const TotalTaxPay1 = 2500
Const TotalTaxPay2 = 42500
Const TotalTaxPay3 = 142500
Const TotalTaxPay4 = 1042500
Select Case TaxableIncome
Case Is >= UpperRange4
PersonalTax = TotalTaxPay4 + _
(TaxRate5 * (TaxableIncome - UpperRange4))
Case Is >= UpperRange3
PersonalTax = TotalTaxPay3 + _
(TaxRate4 * (TaxableIncome - UpperRange3))
Case Is >= UpperRange2
PersonalTax = TotalTaxPay2 + _
(TaxRate3 * (TaxableIncome - UpperRange2))
Case Is >= UpperRange1
PersonalTax = TotalTaxPay1 + _
(TaxRate2 * (TaxableIncome - UpperRange1))
Case Is >= UpperRange0
PersonalTax = TotalTaxPay0 + _

Copyright of www.ExcelExpertTraining.com 
197 

(TaxRate1 * (TaxableIncome - UpperRange0))


Case Is < UpperRange0
PersonalTax = TaxRate0 * TaxableIncome
End Select

End Function

สูตรคํานวณภาษี หก
ั ณ ทีจ
่ า่ ย

Public Function SigFig(X As Variant, SigFigs As Integer) As Variant

'Rounds X to Sigfigs significant figures


'Many thanks to John N. of Locum Destination Consulting for sharing his
SigFig() function for rounding to significant figures.
'http://www.pcqna.com/Excel_Rounding.htm

Dim Powers As Double, Sign As Long


On Error GoTo ErrHandler
If SigFigs < 1 Then GoTo ErrHandler
27
Sign = Sgn(X)
X = Abs(X)
Powers = 10 ^ (Int(Log(X) / Log(10#)) + 1)
'Application.Round() in next line is an Excel function; adjust as needed
SigFig = Sign * Application.Round(X / Powers, SigFigs) * Powers
Exit Function
ErrHandler:
SigFig = CVErr(xlErrValue)
End Function

Copyright of www.ExcelExpertTraining.com 
198 

'Further developed by Somkiat Foongkiat


'http://xls.i.am
'Excel Expert Training

Public Function SigFigDown(X As Variant, SigFigs As Integer) As Variant


Dim Powers As Double, Sign As Long
On Error GoTo ErrHandler
If SigFigs < 1 Then GoTo ErrHandler
Sign = Sgn(X)
X = Abs(X)
Powers = 10 ^ (Int(Log(X) / Log(10#)) + 1)
SigFigDown = Sign * Application.RoundDown(X / Powers, SigFigs) *
Powers
Exit Function
ErrHandler:
SigFigDown = CVErr(xlErrValue)
End Function

Public Function SigFigUp(X As Variant, SigFigs As Integer) As Variant


Dim Powers As Double, Sign As Long
On Error GoTo ErrHandler
If SigFigs < 1 Then GoTo ErrHandler
Sign = Sgn(X)
X = Abs(X)
Powers = 10 ^ (Int(Log(X) / Log(10#)) + 1)
SigFigUp = Sign * Application.RoundUp(X / Powers, SigFigs) * Powers
Exit Function
ErrHandler:
SigFigUp = CVErr(xlErrValue)

Copyright of www.ExcelExpertTraining.com 
199 

End Function

Public Function PowerNum(X As Variant) As Double


X = Abs(X)
PowerNum = (Int(Log(X) / Log(10#)) + 1)
End Function

Public Function RoundSP(Num As Variant, NumDigits As Integer) As


Variant
Dim PowersX As Double, PowersZ As Double, Sign As Long
Dim X1 As Variant, X2 As Variant, X3 As Variant
Dim Y1 As Variant, Y2 As Variant
Dim Z1 As Variant, Z2 As Variant, Z3 As Variant

On Error GoTo ZeroHandler


Sign = Sgn(Num)
Num = Abs(Num)

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 

Z3 = Right(Z2, 1) 'หาตัวเลข ณ หลักนัน


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

Public Function SigFigSP(X As Variant, SigFigs As Integer) As Variant


Dim Powers As Double, Sign As Long
On Error GoTo ErrHandler
If SigFigs < 1 Then GoTo ErrHandler
Sign = Sgn(X)
X = Abs(X)
Powers = 10 ^ (Int(Log(X) / Log(10#)) + 1)
SigFigSP = Sign * RoundSP(X / Powers, SigFigs) * Powers
Exit Function
ErrHandler:
SigFigSP = CVErr(xlErrValue)
End Function

Public Function CountDecimal(X As Variant) As Integer

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

Public Function CountInteger(X As Variant) As Integer


X = Abs(X)
If Int(X) = 0 Then
CountInteger = 0
Else
CountInteger = Len(Int(X))
End If
End Function

Public Function CountSF(X As Variant) As Integer


Dim Powers As Double, X1 As Variant
X = Abs(X)
Powers = 10 ^ (Int(Log(X) / Log(10#)) + 1)
X1 = X / Powers
CountSF = Len(X1) - 1
End Function

Significant Figure

Copyright of www.ExcelExpertTraining.com 
202 

General Functions

1 =SUM(Sheet1:Sheet10!A1:A100)

รวมค่าในเซลล์ A1:A100 ของทุก sheet ตัง้ แต่ sheet 1 ถึง 10

2 =COUNTA(Sheet1:Sheet10!A1:A100)

นับเซลล์ A1:A100 ทีม


่ ค
ี า่ ของทุก sheet ตัง้ แต่ sheet 1 ถึง 10

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)

รวมค่าของ C2:C10 ในตําแหน่งซงึ่ A2:A10 = "Jan"

12 =COUNTIF(A2:A10,"Jan",C2:C10)

Copyright of www.ExcelExpertTraining.com 
204 

นับค่าของ C2:C10 ในตําแหน่งซงึ่ A2:A10 = "Jan"

13 =SUMIF(A2:A10,"<>Jan",C2:C10)

รวมค่าของ C2:C10 ในตําแหน่งซงึ่ A2:A10 <> "Jan"

14 =SUMIF(Month,"Jan",Sales)+SUMIF(Month,"Feb",Sales)

รวมค่าของ Sales ในตําแหน่งซงึ่ Month="Jan" หรือ "Feb"

=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 

=IF(A1>=1,INT(A1)&"' ","") & TEXT(MOD(A1,1)*12,"-


0"&IF(ABS(MOD(A1,1)*12-ROUND(MOD(A1,1)*12,0))>1/32,"
18
0/"&CHOOSE(ROUND(MOD(MOD(A1,1)*12,1)*16,0),16,8,16,4,16,
8,16,2,16,8,16,4,16,8,16),"")) &""""

ปั ดเลขความยาวจาก feet และ decimal feet ไปเป็ น feet, inches


แบบปั ดค่า 1/16 inch fractions.

=INT(A1/12)&"' " & TEXT(MOD(A1,12),"0"&IF(ABS(MOD(A1,12)-


ROUND(MOD(A1,12),0))>1/32,"
19
0/"&CHOOSE(ROUND(MOD(MOD(A1,12),1)*16,0),
16,8,16,4,16,8,16,2,16,8,16,4,16,8, 16),"")) & """"

ปั ดเลขความยาวจาก inches และ decimal fractions ไปเป็ น feet


และ inches แบบปั ดค่า 1/16th inch fractions

=TEXT(A1,"0"&IF(ABS(A1-ROUND(A1,0))>1/32," 0/"& CHOOSE(


20 ROUND(MOD(A1,1)*16,0),16,8,16,
4,16,8,16,2,16,8,16,4,16,8,16),"")) &""""

ปั ดเลขความยาวจาก inches และ decimal fractions ไปเป็ น inches


only with rounded 1/16th inch fractions

=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

สูตร คืนค่า

=SUM(E4:E23) รวมค่าใน E4:E23

รวมค่าใน G4:G26 เฉพาะ visible


=SUBTOTAL(9;G4:G26)
cells

รวมผลคูณระหว่างn E4:E13 คูณกับ


=SUMPRODUCT(E4:E13;F4:F13)
F4:F13

23
{=SUM(E4:E13*F4:F13)} เหมือนสูตรข ้างต ้นแต่ใช ้ array formula

=SUMSQ(E4:E13) S(x²)

=SUMX2MY2(E4:E13;E14:E23) S(x² - y²)

=SUMX2PY2(E4:E13;E14:E23) S(x² + y²)

=SUMXMY2(E4:E13;E14:E23) S(x - y)²

Copyright of www.ExcelExpertTraining.com 
207 

24 =COUNTBLANK(E2:E23)

นับเซลล์วา่ ง

25 =CELL("filename")

แสดง path- และ filenames

26 =RAND()*100

่ เป็ นเลขทศนิยมระหว่าง 0 ถึง 100


แสดงเลขสุม

27 =RAND()*(100-50)+50

่ เป็ นเลขทศนิยมระหว่าง 50 ถึง 100


แสดงเลขสุม

28 =ROUND(RAND()*100,0)

่ เป็ นเลขจํานวนเต็มระหว่าง 0 ถึง 100


แสดงเลขสุม

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," ","")))))

To return the last name. Suppose cell A2 contains the name

Copyright of www.ExcelExpertTraining.com 
209 

"John A Smith"

=LEFT(A2,FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-
33
LEN(SUBSTITUTE(A2," ",""))))-1)

To return the first name, including the middle name (if


present),

34 =LEFT(B2,FIND(" ",B2,1))

To return the first name, without the middle name (if


present),

35 =LEFT(A1,FIND(" ",A1,1))

Returning First Word In A String

36 =RIGHT(A1,LEN(A1)-FIND(" ",A1,1))

Returning All But First Word In A String

"Grades" which refers to ={0,"F";60,"D";70,"C";80,"B";90,"A"}


37
=VLOOKUP(A1,Grades,2)

Copyright of www.ExcelExpertTraining.com 
210 

to convert the number to the grade:

=IF(ROW()-ROW(TopRng)+1>TopN,"",LARGE(RankRng,ROW()-
38
ROW(TopRng)+1))

Ranking Numbers : to return the N highest or lowest values


from a range of data

Suppose we have a range of numeric data called


RankRng. Create a range next to RankRng (starting in the
same row, with the same number of rows) called TopRng.
Also, create a named cell called TopN, and enter into it the
number of values you want to return (e.g., 5 for the top 5
values in RankRng). Enter the following formula in the first
cell in TopRng, and use Fill Down to fill out the range

=IF(ROW()-ROW(TopRng)+1>TopN,"",SMALL(RankRng,ROW()-
39
ROW(TopRng)+1))

To return the TopN smallest values of RankRng

40 =CELL("filename",A1)

To return the full sheet name (including the file path)

41 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,

Copyright of www.ExcelExpertTraining.com 
211 

LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))

To return the sheet name, without the path

=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",
42
CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)

To return the file name without the path

=LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))) Or

43 =SUBSTITUTE(SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",

CELL("filename",A1))),"[",""),"]","")

To return the file name with the path

=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))))

Great Circle Distances

Lat1 is the latitude of point 1, entered as DD:MM:SS.


Long1 is the longitude of point 1, entered as DD:MM:SS.
Lat2 is the latitude of point 2, entered as DD:MM:SS.
Long2 is the longitude of point 2, entered as DD:MM:SS.
RadiusEarth is the radius of the earth (3,963 miles or 6,377

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)))

mixing hemispheres, enter Northern and Western coordinates


as positive, and Southern and Eastern coordinates as
negative

=LEFT(A2,IF(ISERROR(FIND(",",A2,1)),LEN(A2),FIND(",",A2,1)-
46
1))

To return the last name of the full name in A2

=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))))

To return the first name

=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 

To return the middle name

49 =MAX(A1:A10,B1)

the highest score ever reached

the Tolls->Options dialog, click on the Calculation tab, and


check the Interations check box

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"))

return the number in A1 with the suffix appended

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 

Reverse Unique Ranks

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\

=UPPER(LEFT(A37,1)&"."&MID(A37,FIND(" ",A37&" ")+1,1)&".


62
")

Copyright of www.ExcelExpertTraining.com 
216 

Extract the first two initials

=IF(LEN(A11)=0,"",IF(ISERR(FIND("
63
",A11)),A11,LEFT(A11,FIND(" ",A11)-1)))

Extract the first word

=len(a1)-len(substitute(a1,"a","")) — lettercase must match


64 =len(a1)-len(substitute(upper(a1),"A","")) — lettercase does
not matter

Find number of occurrences of a character in a cell

65 =LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+(LEN(TRIM(A1))>0)

Find the number of items separated by commas

=LEN(SUBSTITUTE(TRIM(A1),CHAR(32),CHAR(32)&CHAR(32))
66
)-LEN(TRIM(A1))+1

Find the number of words in a string

67 =LEN(A1)-LEN(SUBSTITUTE(A1,"aa","")))/LEN("aa")

Find the number of occurences of a string in a single cell

Copyright of www.ExcelExpertTraining.com 
217 

68 =countif(A1:J1,"aa")

Find the number of cells in a range that have string as their


value

=IF(ISERR(FIND("/",E22)),E22,MID(E22,FIND("/",E22,1)+1,99))
69 =IF(ISERR(FIND("/",E22)),"",MID(E22,FIND("/",E22,1)+1,99))

Return string after first "/" character

=NOT(ISNUMBER(VALUE(LEFT(D7,1))))
70
=IF(LEFT(TRIM(D7))="","",NOT(ISNUMBER(VALUE(LEFT(D7,1)))))

First Character checked as alphabetic character

71 =SUBSTITUTE(A1," ","")

Remove All Spaces

=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")))))

to reduce 8/16's to 1/2, 10/16 to 5/8

73 =SUMPRODUCT(B2:B6,C2:C6)/SUM(C2:C6)

Weighted Average

74 =OFFSET(MySheet!$A$1,0,0,COUNTA(MySheet!$A:$A),1)

Dynamic Named Ranges

=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

combine the functionality of the XIRR and MIRR functions

values is the row or column range of cashflows


dates is the row or column range of corresponding dates
iRate is the interest rate you pay on the money used in the
cash flows
rRate is the interest rate you receive on the cash flows as you
reinvest them
daybase is days-in-year basis to use (usually 360 or 365).

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)

'bankers rounding' for a number (Num) to a given number (Plc) of


significant digits
define 'Fact' as =10^(INT(LOG(ABS(Num)))-Plc+1),

77 =INDEX(FREQUENCY((A1,A3,A5),20),2)

นับจํานวนเซลล์ซงึ่ ไม่ได ้ติดต่อกัน และมีคา่ มากกว่า 20

=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),"")

แปลงเลขที่ column เป็ นตัวอักษร column

=MID(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-
82
LEN(SUBSTITUTE(A1,"\",))))+1,LEN(A1))

ื่ file จาก c:\MainDir\ชอ


แยกชอ ื่ file

=IF(ISERR(LEFT(A1,FIND(" ",A1)-1)),A1,LEFT(A1,FIND(" ",A1)-


83
1))

แยกคําแรกออกจากประโยคภาษาอังกฤษ

=IF(LEN(A4)-LEN(SUBSTITUTE(A4," ",""))=0, A4,


84 RIGHT(A4,LEN(A4) -FIND("*",SUBSTITUTE(A4," ", "*", LEN(A4)-
LEN(SUBSTITUTE(A4," ",""))))))

แยกคําสุดท ้ายออกจากประโยคภาษาอังกฤษ

Copyright of www.ExcelExpertTraining.com 
221 

85 =RIGHT(A1,LEN(A1)-FIND(" ",A1,1))

แยกคําทีเ่ หลือซงึ่ ไม่ใชค


่ ําแรก ออกจากประโยคภาษาอังกฤษ

=LEFT(A1,FIND(" ",A1)-1)

=IF(ISERR(MID(A1,FIND(" ",A1)+1,IF(ISERR(FIND(" ",A1,FIND("


",A1)+1)),FIND(" ",A1),FIND(" ",A1,FIND(" ",A1)+1))-FIND("
",A1)-1)),"",MID(A1,FIND(" ",A1)+1,IF(ISERR(FIND("
86
",A1,FIND(" ",A1)+1)),FIND(" ",A1), FIND(" ",A1,FIND("
",A1)+1))-FIND(" ",A1)-1))

=RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1," ","*",LEN(A1)-
LEN(SUBSTITUTE(A1," ","")))))

แยก first name, middle names, last names

=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 ออกจากชอ

=SUBTOTAL(9, INDIRECT(ADDRESS( ROW(C3),COLUMN(C3)


90 )&":"& ADDRESS( ROW(C3),
ROW(INDIRECT(COLUMN(C3)&":"&COLUMN(G3))) )))

Cumulative Sum ค่าในเซลล์ C3:G3

ิ้ สุดกะ, กําหนดสน
=MAX( 0, MIN( เวลาสน ิ้ สุด ) - MAX( เวลาเริม
่ กะ,
91
กําหนดเริม
่ ))


ระยะเวลาทีใ่ ชในกะนั น

92 =IF( Date>=Start, Amount, 0 )

แสดง Amount เมือ


่ ถึงวันทีก
่ ําหนด

93 =IF( Date<=Stop, Amount, 0 )

แสดง Amount เมือ


่ ยังไม่เลยวันทีก
่ ําหนด

Copyright of www.ExcelExpertTraining.com 
223 

94 =IF( AND( Date>=Start, Date<=Stop ), Amount, 0 )

แสดง Amount ในชว่ งวันทีก


่ ําหนด

=IF( AND( Date>=Start, Date<=Stop, OR( MOD( Date-


95
Start+1,Cycle ) = 1,Cycle = 1 ) ), Amount, 0 )

แสดง Amount ในชว่ งวันทีก


่ ําหนด และกําหนดเป็ นชว่ งๆตาม Cycle

Copyright of www.ExcelExpertTraining.com 
224 

Day and Time Formulas

1 =DATEDIF(Date1,Date2,Interval)

คํานวณระยะเวลาระหว่างชว่ งทีก
่ ําหนด

Interval Code ความหมาย

"m" จํานวนเดือนสะสม

"d จํานวนวันสะสม

"y" จํานวนปี สะสม

"ym" จํานวนเดือนทีเ่ หลือ เมือ


่ นับปี ชนปี

"yd" จํานวนวันทีเ่ หลือ เมือ


่ นับปี ชนปี

จํานวนวันทีเ่ หลือ เมือ


่ นับเดือนชน
"md"
เดือน

=DATEDIF(วันเกิด,NOW(),"y") & " years, " & DATEDIF(วันเกิด


2 ,NOW(),"ym") & " months, " & DATEDIF(วันเกิด,NOW(),"md") & "
days"

คํานวณอายุ

Copyright of www.ExcelExpertTraining.com 
225 

3 =AND((TDate>=MIN(TDate1,TDate2)),TDate<=MAX(TDate1,TDate2))

ตรวจสอบว่า TDate อยูร่ ะหว่าง 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())))

นับจํานวนวันในระหว่างชว่ งวันทีก
่ ําหนด

ื่
ชอ ความหมาย

Date1 วันทีเ่ ริม


่ งาน

Date2 วันทีเ่ สร็จงาน

่ ซงึ่ ไม่ต ้องการนับเป็ นวัน


วันเริม
VDate1
ทํางาน

วันสุดท ้าย ซงึ่ ไม่ต ้องการนับเป็ น


VDate2
วันทํางาน

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))

่ ยูใ่ นทัง้ สองชว่ งเวลาเหมือนกัน


นับจํานวนวันทีอ

ื่
ชอ ความหมาย

IDate1 ่ ต ้นของชว่ งแรก


วันเริม

IDate2 วันสุดท ้ายของชว่ งแรก

Copyright of www.ExcelExpertTraining.com 
227 

RDate1 ่ ต ้นของชว่ งทีส


วันเริม ่ อง

RDate1 วันสุดท ้ายของชว่ งทีส


่ อง

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

B2 เป็ นปี ทีต


่ ้องการหาวัน 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)

เลขทีส ั ดาห์ตาม ISO


่ ป

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))

ระยะเวลาระหว่างสอง Julian Dates

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))

วันปรับปรุงค่าครัง้ สุดท ้าย

=IF(INT(StartDT)=INT(EndDT),"0 days " & ROUND(24*(EndDT-


StartDT),2)&"hours",MAX(NETWORKDAYS(StartDT+1,EndDT-
1,HolidayList),0)+INT(24*(((EndDT-INT(EndDT))-(StartDT-
20 INT(StartDT)))+(DayEnd-DayStart))/(24*(DayEnd-DayStart)))&"
days "&MOD(ROUND(((24*(EndDT-INT(EndDT)))-
24*DayStart)+(24*DayEnd-(24*(StartDT-INT(StartDT)))),2),
ROUND((24*(DayEnd-DayStart)),2))&" hours ")

ระยะเวลาเป็ นวันและชวั่ โมง ระหว่างชว่ งเวลาทีก


่ ําหนด

Copyright of www.ExcelExpertTraining.com 
231 

ื่
ชอ ความหมาย ตัวอย่าง

วันทีแ
่ ละเวลา 25-Oct-99
StartDT
เริม
่ ต ้น 13:00

วันทีแ
่ ละเวลา 28-Oct-99
EndDT
ิ้ สุด
สน 15:00

เวลาเริม
่ งาน
DayStart 9:00
ประจําวัน

เวลาเลิกงาน
DayEnd 17:00
ประจําวัน

HolidayList ตารางวันหยุด H1:H10

=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)

ลําดับวันทีเ่ ฉพาะวันทํางานปกติ นับตัง้ แต่วน


ั แรกในเซลล์ A4

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))

return the date of Nth day-of-week for a given year

Where Yr,Nth, and DoW are cell references or values indicating


Year, Month, Nth, and Day-Of-Week

28 =TRUNC((B1-A1)/7)&" Weeks "&MOD(B1-A1,7)&" Days"

ั ดาห์ระหว่างชว่ งเวลาทีก
จํานวนสป ่ ําหนด

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)

ปรับเวลา ในเซลล์ A1 เป็ นเลขชวั่ โมง ครึง่ ชวั่ โมง หรือสบ


ิ ห ้านาที ทีใ่ กล ้
ทีส
่ ด

B1 เป็ นเลขนาที ซงึ่ ต ้องการปั ดเข ้าสู่

=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

1 TIME Time สูตรทีใ่ ช ้

=ROUNDDOWN(A2,-2) / 2400 + MOD(A2,100) /


2 1 0:01:00
1440
40

=ROUNDDOWN(A3,-2) / 2400 + MOD(A3,100) /


3 2 0:02:00
1440

=ROUNDDOWN(A4,-2) / 2400 + MOD(A4,100) /


4 3 0:03:00
1440

Copyright of www.ExcelExpertTraining.com 
236 

=ROUNDDOWN(A5,-2) / 2400 + MOD(A5,100) /


5 1200 12:00:00
1440

=ROUNDDOWN(A6,-2) / 2400 + MOD(A6,100) /


6 1201 12:01:00
1440

=ROUNDDOWN(A7,-2) / 2400 + MOD(A7,100) /


7 2400 0:00:00
1440

=ROUNDDOWN(A8,-2) / 2400 + MOD(A8,100) /


8 3359 9:59:00
1440

เปลีย
่ นเวลาแบบทหาร เป็ น เวลาแบบมาตรฐาน

=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

เวลา 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

Monday week starting dates

=A2&IF(INT(MOD(A2,100)/10)=1, "th", IF(MOD(A2,10)=1, "st",


IF(MOD(A2,10)=2,"nd", IF(MOD(A2,10)=3, "rd","th"))))

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))

Rounding to nearest quarter hour

Copyright of www.ExcelExpertTraining.com 
238 

48 =FLOOR(A22,1/(24*4))

Rounding down to nearest quarter hour

49 =CEILING(A22,1/(24*4))

Rounding Up to nearest quarter hour

50 =TEXT(NOW(),"dd mmmm yyyy")

เปลีย ิ ซายและยื
่ นเวลาเป็ นรูปแบบตัวอักษร จะได ้จัดชด ้ ดข ้ามขอบขวา
ออกไปได ้

(วันทีแ
่ สดงในแบบของ 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

First Day of Month 04/01/200 Sun =DATE(YEAR(B1),MONTH(B1),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

Closest Monday 04/16/200 Mo =DATE(YEAR(B1),MONTH(B1),DAY(


1 n B1)
+CHOOSE(WEEKDAY(B1),1,0,-1,-2,-
3,3,2,1))

Next Monday 04/16/200 Mo =DATE(YEAR(B1),MONTH(B1),DAY(


1 n B1)
+CHOOSE(
WEEKDAY(B1),1,7,6,5,4,3,2))

Next Monday 04/16/200 Mo =A1-WEEKDAY(A1,2)+8


1 n

1st Monday of 04/02/200 Mo =DATE(YEAR(B1),MONTH(B1),


Month 1 n CHOOSE(WEEKDAY(DATE(YEAR(B1)
,
MONTH(B1),1)),2,1,7,6,5,4,3))

Copyright of www.ExcelExpertTraining.com 
240 

2nd Monday of Mont 04/09/200 Mo =DATE(YEAR(B1),MONTH(B1),7


h 1 n +CHOOSE(WEEKDAY(DATE(YEAR(B
1),
MONTH(B1),1)),2,1,7,6,5,4,3))

3rd Monday of 04/16/200 Mo =DATE(YEAR(B1),MONTH(B1),14


Month 1 n +CHOOSE(WEEKDAY(DATE(YEAR(B
1),
MONTH(B1),1)),2,1,7,6,5,4,3))

4th Monday of 04/23/200 Mo =DATE(YEAR(B1),MONTH(B1),21


Month 1 n +CHOOSE(WEEKDAY(DATE(YEAR(B
1),
MONTH(B1),1)),2,1,7,6,5,4,3))

5th Monday of 04/30/200 Mo =IF(MONTH(DATE(YEAR(B1),


Month 1 n MONTH(B1),28+
CHOOSE(WEEKDAY(DATE(YEAR(B1)
, MONTH(B1),1)),2,1,7,6,5,4,3)))=
MONTH(B1),DATE(YEAR(B1),
MONTH(B1),28
+CHOOSE(WEEDATE(YEAR(B1),
MONTH(B1),1)),
2,1,7,6,5,4,3)),"none")

Last Monday of 04/30/200 Mo =DATE(YEAR($B$1),


Month 1 n MONTH($B$1)+1,1)-
WEEKDAY(DATE(YEAR($B$1),

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.

Formula in C1 & D1, downward =IF(ISNUMBER(B1),WEEKDAY(B1),"


")

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 สูตร

The date for


Monday in the =TODAY()-WEEKDAY(TODAY(),2)-6
previous week

53 The date for


Monday in the =TODAY()-WEEKDAY(TODAY(),2)+1
current week

The date for


Monday in the next =TODAY()-WEEKDAY(TODAY(),2)+8
week

Create a valid date =DATE(2002,12,24)

Copyright of www.ExcelExpertTraining.com 
245 

Create a valid date =DATEVALUE("1.1.1980")

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 

List & Database Formulas

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)))

sum A5:E1 ตามแนวทะแยงมุม

=INDEX(Range2,MATCH(Value,Range1,0))

9 =LOOKUP(Value,Range1,Range2)

=VLOOKUP(Value,Range12,2,FALSE)

สูตรค ้นหาค่า

Copyright of www.ExcelExpertTraining.com 
248 

Conditional Formatting & Data


Validation Formulas

Conditional Formatting

1 =MOD(ROW()-Rw,N*2)+1<=N

กําหนดรูปแบบให ้เป็ นแถบแบบเลขคี่


Rw เป็ นเลขทีบ
่ รรทัดแรก
N เป็ นจํานวนบรรทัดในแต่ละแถบ

2 =MOD(ROW()-Rw,N*2)+1>N

กําหนดรูปแบบให ้เป็ นแถบแบบเลขคู่


Rw เป็ นเลขทีบ
่ รรทัดแรก
N เป็ นจํานวนบรรทัดในแต่ละแถบ

3 =ISERROR(cell_reference)

กําหนดรูปแบบให ้กับเซลล์ทเี่ ป็ น Error Values

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)

เซลล์ซงึ่ มีคา่ สูงสุด

=OR( A1=LARGE($A$1:$A$30,1), A1=LARGE($A$1:$A$30,2),


10
A1=LARGE($A$1:$A$30,3) )

เซลล์ซงึ่ มีคา่ สูงสุด 3 ลําดับแรก

Copyright of www.ExcelExpertTraining.com 
250 

11 =MOD(ROW(),2)=0

row เลขคู่

12 =MOD(INT((ROW()-1)/4)+1,2)

row ชุดละ 4 row

13 =MOD(ROW(),2)=MOD(COLUMN(),2)

row เลขคู่ และเป็ น column เลขคู่

14 =IF(COUNTIF($A$1:$D$12,A1)>1,TRUE,FALSE)

เซลล์ซงึ่ มีคา่ ซํ้า

15 =A2<A1

เซลล์ซงึ่ ไม่ได ้เรียงลําดับ

=LEN( SUBSTITUTE(TRIM(A1), CHAR(32), CHAR(32)&CHAR(32)) )-


16
LEN(TRIM(A1))+1>1

เซลล์ซงึ่ มีคํามากกว่า 1 คํา

Copyright of www.ExcelExpertTraining.com 
251 

17 =LEN(A3)-LEN(SUBSTITUTE(SUBSTITUTE(A3,"A",""),"a",""))>0

เซลล์ซงึ่ มีตวั อักษรตัว a

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

เซลล์ซงึ่ มีคา่ ตรงกับค่าในตารางทุก column $F$6:$F$15 และ $G$6:$G$15


และ $H$6:$H$15 และ $I$6:$I$15

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

รับค่าซงึ่ นํ าด ้วยตัว a และมี 5 ตัวอักษร

Copyright of www.ExcelExpertTraining.com 
253 

Array Formulas

สูตร Array ต่อไปนีต


้ ้องสร ้างขึน
้ โดยกดปุ่ ม Ctrl+Shift+Enter จะเกิดเครือ
่ งหมายวงเล็บปี ก
กาปิ ดหัวท ้ายสูตร

=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))

หาผลลัพธ์เฉพาะค่าทีไ่ ม่เท่ากับ 0 เท่านัน


้ สามารถละ
่ ําว่า 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 ในสูตร
ละไม่ต ้องใสค

LLim เป็ นขีดจํากัดล่าง, ULim เป็ นขีดจํากัดบน

=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)

่ นไข โดยใชสู้ ตร SUM ตัวเลข 1 โดย


นับจํานวนเซลล์ตามเงือ
ไม่ต ้องใชสู้ ตร COUNT

สงั เกตการใชเครื
้ อ ่ งหมายบวก หรือ เครือ
่ งหมายคูณ

5 =SUM((Month="Jan")*(Region="North")*Sales)

รวมค่าของ Sales ในตําแหน่งซงึ่ Month="Jan" AND

Copyright of www.ExcelExpertTraining.com 
255 

Region="North"

6 =SUM((Month="Jan")*(Region<>"North")*Sales)

รวมค่าของ Sales ในตําแหน่งซงึ่ Month="Jan" AND


Region<>"North"

7 =SUM((Month="Jan")*(Region="North"))

นับค่าของ Sales ในตําแหน่งซงึ่ Month="Jan" และ


Region="North"

8 =SUM((Month="Jan")*(Sales>=200)*(Sales))

รวมค่าของ Sales ในตําแหน่งซงึ่ Month="Jan" และ


Sales>= 200

9 =SUM((Sales>=300)*(Sales<=400)*(Sales))

รวมค่าของ Sales ระหว่าง 300 ถึง 400

10 =SUM((Sales>=300)*(Sales<=400))

นับค่าของ Sales ระหว่าง 300 ถึง 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())

กลับลําดับค่าในแนวนอน

RowList เป็ นตารางข ้อมูลเดิมตามแนวนอน,


RevRowList เป็ นตารางเก็บค่าทีจ
่ ัดลําดับกลับข ้าง

=OFFSET(CList,COLUMN()-MIN(COLUMN(RList)),0)

25 =OFFSET(CList,MAX(COLUMN(RevRList))-

COLUMN(),0)

ตะแคงตารางแนวตัง้ CList เป็ นแนวนอน RList

RevRList เป็ นตารางแนวตัง้ ทีส


่ ลับค่า

=OFFSET(RowList,0,ROW()-MIN(ROW(TXList)))

26 =OFFSET(RowList,0,MAX(ROW(TList))-ROW())

Copyright of www.ExcelExpertTraining.com 
261 

ตะแคงตารางแนวนอน RowList เป็ นแนวตัง้ TXList

TList เป็ นตารางแนวนอนทีส


่ ลับค่า

=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))

นับจํานวนค่าทีเ่ ป็ น Unique กรณีไม่ม ี blank

37 =SUM(N(FREQUENCY(A1:A10,A1:A10)>0))

นับจํานวนค่าทีเ่ ป็ น Unique ใชกั้ บตารางตัวเลขหรือ


เซลล์วา่ ง

=ADDRESS(ROW(DataRange2),COLUMN(DataRange2),4)&":"&
38 ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
COLUMN(DataRange2)+COLUMNS(DataRange2)-1,4)

แสดง range ทีม


่ ข ่ DataRange2 เป็ นตารางข ้อมูล
ี ้อมูล data เชน
H7:I25 โดยเซลล์ H7:I17 มีตวั เลขอยู่ นอกจากนัน
้ เป็ นเซลล์วา่ ง

=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 

B10),SUM(SMALL(IF(MID(" "&A10&" ",ROW(INDIRECT


("1:"&LEN(A10)+2)),1)="
",ROW(INDIRECT("1:"&LEN(A10)+2))),
B10+{0,1})*{-1,1})-1)

แยกคําออกจากประโยค ซงึ่ มีเครือ


่ งหมายวรรคแยกแต่ละคํา

=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)

แยกคําลําดับทีต
่ ้องการออกจากประโยค

A10 เป็ นประโยคทีม


่ ค
ี ําอยู่
B10 เป็ นเลขทีค
่ ําเริม
่ ต ้นทีต
่ ้องการ
C10 เป็ นจํานวนคําทีต
่ ้องการ เริม
่ ต ้นจาก B10

=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)))

ตัดเซลล์วา่ งออกจากตาราง BlanksRange ให ้เป็ นตารางใหม่


NoBlanksRange เหลือเฉพาะเซลล์ทม
ี่ ค
ี า่ เท่านัน

=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 คํานวณจํานวนเงินทัง้ หมด ใชหลั

สูตรนีม ี ระโยชน์อย่างมาก ใชกั้ บปั ญหาอืน


้ ป ่ อัตราภาษี แบบ
่ ๆ เชน
ก ้าวหน ้า การตัด Stock แบบ FIFO

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

1 Part# ALPHA NUMERIC


portion portion

{=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)}

แยกคําทีเ่ ป็ นตัวอักษรออกจากตัวเลข

=INDIRECT(ADDRESS( ROW(MyRange) +INT((ROW() -


ROW(CxRV))/COLUMNS(MyRange)),
COLUMN(MyRange)+MOD(ROW() -ROW(CxRV),
COLUMNS(MyRange)),4,,"Sheet1"))

=INDIRECT(ADDRESS( ROW(MyRange) +MOD(ROW() -


ROW(CxCV),ROWS(MyRange)),
COLUMN(MyRange)+INT((ROW() -
ROW(CxCV))/ROWS(MyRange)), 4,,"Sheet1"))
46
=INDIRECT(ADDRESS( ROW(MyRange) +INT((COLUMN() -
COLUMN(RxRV))/COLUMNS(MyRange)),
COLUMN(MyRange)+MOD(COLUMN() -COLUMN(RxRV),
COLUMNS(MyRange)), 4,,"Sheet1"))

=INDIRECT(ADDRESS( ROW(MyRange) +MOD(COLUMN() -


COLUMN(RxCV),ROWS(MyRange)),
COLUMN(MyRange)+INT((COLUMN() -
COLUMN(RxCV))/ROWS(MyRange)),4,,"Sheet1"))

ตะแคงตารางเป็ นแนวตัง้

Copyright of www.ExcelExpertTraining.com 
268 

MyRange เป็ นตารางข ้อมูล มีขนาด M rows และ N


columns

CxRV เป็ นตารางผลลัพธ์

=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)

list of unique entries in an n * m array

48 =AND(NOT(ISNA(MATCH(Range1,Range2,0))))

ตรวจสอบว่าข ้อมูลใน Range1 แสดงใน Range2

=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)))

ตรวจสอบว่าเป็ นตัวเลข prime number

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.);

52 Put the constants (17, 13, 22) in, e.g., D1:D3;


Highlight, e.g., E1:E3 and array enter (i.e., enter with
Ctrl+Shift+Enter instead of just Enter)

=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 

the #VALUE error will appear in E1:E3.

solve a set of simultaneous equations

=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)

Nth largest unique value in a column range

=SUM(N(FREQUENCY(IF(lookupRange="specifStr",
59
MATCH(colRange,colRange,0)), MATCH(colRange,colRange,0))0))

นับจํานวนข ้อมูล unique ซงึ่ มีตวั อักษรตามกําหนด

=SMALL(IF(MATCH(TheList,TheList,0)=ROW(TheList),
ROW(TheList),""),
60
ROW(INDIRECT("1:"&SUM(N(MATCH(TheList,TheList,0)=
ROW(TheList))))))-1

แยกข ้อมูล Unique item ออกมา

Copyright of www.ExcelExpertTraining.com 
272 

=IF(SUBTOTAL(3,OFFSET(Rge,ROW(Rge)-
61
MIN(ROW(Rge)),,1)),Rge,"")

create an array of filtered items in a column list.

=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)

ั ดาห์ C1 ในเดือน A3 และปี B2 ที่


รวมจํานวนวันของสป
กําหนด

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))

นับจํานวนเซลล์ ซงึ่ มี text ตรงกัน

=SUM(IF(LEN(data)-
68
LEN(SUBSTITUTE(data,text,""))>0,1))

นับจํานวนเซลล์ ซงึ่ มี text ตรงกัน แม ้บางสว่ น

=(SUM(LEN(data))-

69 SUM(LEN(SUBSTITUTE(UPPER(data),UPPER(text),""))))/LEN(text)

=(SUM(LEN(data))-SUM(LEN(SUBSTITUTE(data,text,""))))/LEN(text)

นับจํานวนเซลล์ ซงึ่ มี 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 

ROW(INDIRECT("1:"&ROWS(Data))))), "", INDEX(Data,


SMALL(IF(Data>0, ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data))))))

สรุปค่าบวก

=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))))

78 =IF( ISERR( LARGE( Data, ROW( INDIRECT("1:"&ROWS(Data))))),

"", LARGE( Data, ROW( INDIRECT("1:"&ROWS(Data)))))

เรียงลําดับตัวเลข จากมากไปน ้อย

Copyright of www.ExcelExpertTraining.com 
276 

=INDEX( data, SMALL( IF( MATCH(data,data,0) =


79 ROW(INDIRECT("1:"&ROWS(data))), MATCH(data,data,0), ""),
ROW(INDIRECT("1:"&ROWS(data)))))

Unique items in List

80 =SUM(LARGE(Data,ROW(INDIRECT("1:"&n))))

รวมค่าทีม
่ ากทีส
่ ด
ุ n ลําดับแรก

=IF(OR(TheName=NameList),"Found","Not
81
Found")

ตรวจสอบว่า มีคา่ TheName อยูใ่ น NameList

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 

เลขที่ row ของเซลล์ซงึ่ มีคา่ สูงสุด

85 =SMALL(IF(Data=Value,ROW(Data), ""),n)

เลขที่ row ของเซลล์ซงึ่ มีคา่ ซํ้ากันครบ n ครัง้

86 =INDEX(Data,MATCH(MAX(LEN(Data)),LEN(Data),FALSE),1)

คํายาวทีส
่ ด
ุ ในตาราง

87 =ISNA(MATCH(TRUE,ISNA(MATCH(MyList,Master,0)),0))

ตรวจสอบว่า ค่าใน MyList มีอยูใ่ น Master

88 =SUM(1*ISNA(MATCH(MyList,Master,0)))

จํานวนเซลล์ของ MyList ซงึ่ ไม่มอ


ี ยูใ่ น Master

89 =INDEX(MyList,MATCH(TRUE,ISNA(MATCH(MyList,Master,0)),0))

ค่าแรกของ MyList ซงึ่ ไม่มอ


ี ยูใ่ น Master

=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)))

ค่าล่างสุดใน column A แม ้จะไม่ได ้อยูต


่ ด
ิ กัน

=INDIRECT(ADDRESS(6,(MAX((TRANSPOSE(
94
ROW(1:256))*(6:6<>""))))))

ค่าขวาสุดใน row 6 แม ้จะไม่ได ้อยูต


่ ด
ิ กัน

Copyright of www.ExcelExpertTraining.com 
279 

95 =SUM(1*(B6<=Sales))-(SUM(1*(B6=Sales))-1)/2

่ องค่า โดยใชลํ้ าดับแบบเฉลีย


ลําดับทีข ่ กรณีซํ้ากัน ต่าง
จากการใชสู้ ตร =RANK(B6,Sales)

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)

ตําแหน่ง space ขวาสุด

=SUM((SUBTOTAL(9, INDIRECT(ADDRESS( ROW(E3),COLUMN(E3)


98 )&":"& ADDRESS( ROW(E3),
ROW(INDIRECT(COLUMN(E3)&":"&COLUMN(AI3))) )))<=B3)*1)+1

จํานวนเซลล์ ซงึ่ ยอดรวม Cumulative Sum ค่าในเซลล์ C3:G3 มีคา่


มากกว่าหรือเท่ากับ ค่าในเซลล์ B3

=INDEX(ค่าทัง้ หมด,SMALL(IF(ค่าทัง้ หมด<0,ลําดับตัวเลข),ลําดับ


99
ตัวเลข),1)

ค่าติดลบ

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)

แยกข ้อมูลซงึ่ มีประเภท เลขทีบ ั ช ี วันที่ ตามต ้องการ


่ ญ

=INDEX(Type, LARGE(IF( NOT(ISBLANK(Type)),


MATCH(Type,Type,0)) * (IF( NOT(ISBLANK(Type)),
101 MATCH(Type,Type,0))=ROW( INDIRECT("1:"&ROWS(Type)))),
ROW(INDIRECT("1:"&SUM( IF( NOT(ISBLANK(Type)),
1/COUNTIF(Type,Type))))) ) )

Unique List

=INDEX(Product, MATCH( MAX(COUNTIF(Product,Product)),


102
COUNTIF(Product,Product), 0),1)

ค่าซงึ่ ใชบ่้ อยทีส


่ ด

Copyright of www.ExcelExpertTraining.com 
281 

การกําหนดขอบเขตตารางแบบยืดหยุน

งานทีส ้ ด ้วย Excel ไม่ได ้ใชตํ้ าแหน่งอ ้างอิง (Reference) เพือ


่ ร ้างขึน ้ ตรคํานวณแต่เพียง
่ ใชในสู
้ าสงั่ Conditional Formatting, Data Validation,
อย่างเดียว ตําแหน่งอ ้างอิงยังถูกเรียกใชในคํ
Advanced Filter, Pivot Table, หรือในคําสงั่ อืน
่ ๆ แม ้แต่ในรหัส Visual Basic for Applications
(VBA) ซงึ่ โดยทัว่ ไปเมือ
่ มีการ Insert หรือ Delete row หรือ column หรือโยกย ้ายตําแหน่ง
ตาราง จะสง่ ผลให ้ตําแหน่งอ ้างอิงทีใ่ ชเดิ
้ มปรับเปลีย
่ นขนาดตามทันที และหากรู ้จักใชช้ อ
ื่ ในการ
กําหนดตําแหน่งอ ้างอิงจะชว่ ยทําให ้กําหนดตําแหน่งอ ้างอิงในสูตรได ้ง่าย และยังทําให ้ตําแหน่ง
้ อ VBA ปรับขนาดตามได ้อีกด ้วย ชว่ ยทําให ้ไม่ต ้องเสย
อ ้างอิงทีใ่ ชในกราฟหรื ี เวลาสร ้างกราฟ
ใหม่หรือต ้องย ้อนกลับมาแก ้ไขรหัส VBA อีกแม ้แต่น ้อย

ขอบเขตตารางแบบยืดหยุน
่ หมายถึง ขอบเขตตารางทีส
่ ามารถยืดได ้หดได ้ตามจํานวนรายการ
หรือปริมาณข ้อมูลทีม ่ ลด ทําให ้ไม่ต ้องใชวิ้ ธค
่ เี พิม ี อ
่ ยๆ Insert เพิม
่ row เพือ
่ ขยายพืน
้ ทีต
่ าราง
ให ้มีเซลล์วา่ งเตรียมไว ้สําหรับข ้อมูลในอนาคต หรือไม่ต ้องกําหนดขอบเขตตารางแบบฟุ่ มเฟื อย

โดยสร ้างสูตรอ ้างอิงกับทัง้ column เชน

=VLookup( IDCode, A:D, 3)

ซงึ่ การกําหนดตําแหน่งอ ้างอิง A:D เชน


่ นีจ ้
้ ะทําให ้สูตรทํางานชาลงอย่
างมากและยังทําให ้แฟ้ มมี
ขนาดใหญ่ขน
ึ้ โดยไม่จําเป็ นอีกด ้วย

ในบทความนีข
้ อแนะนํ าวิธก
ี ําหนดขอบเขตตารางแบบยืดหยุน
่ ตัง้ แต่วธิ ี Dynamic Cell ไปจนถึง
วิธ ี Dynamic Range ซงึ่ ใชสู้ ตร Offset, Index, Indirect, Address ชว่ ยในการกําหนดขอบเขต
ตารางแบบอัตโนมัต ิ

วิธก
ี า
ํ หนดตําแหน่งเซลล์แบบยืดหยุน
่ (Dynamic Cell)

คนทัว่ ไปมักมองข ้ามเรือ


่ งพืน
้ ฐานทีน ึ ว่าไม่สําคัญหรือไม่เคยคิดว่า Excel ทําได ้ไปใชสู้ ตร
่ ก
Offset กําหนดขอบเขตตารางกันเลย โดยหารู ้ไม่วา่ เมือ
่ นํ าตําแหน่งเซลล์ของเซลล์เพียงเซลล์
้ ้เป็ น จะทําให ้เกิดขอบเขตตารางแบบยืดหยุน
เดียวหรือเซลล์ในแนวเดียวกันมาใชให ่ กัน
่ ได ้เชน
แถมเป็ นวิธท ี อีกเพราะไม่จําเป็ นต ้องใชสู้ ตร Offset ให ้ยุง่ ยาก
ี งี่ า่ ยกว่าเสย

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 ตามขนาดข
ต อมู
้อ ลอีกต่อไป

หากต ้องการย ้ายตาารางสูตรคูณนี


ณ ไ ้ ปยัง row
w อืน
่ ไม่สามารถใช
า วิ้ ธ ี Cut เฉพาะะพืน
้ ทีต
่ าราง
งสูตร
คูณ B2:G7 แต่ต ้องงเลือก Cut row 2:7 ไป
ปวางที่ row
w อืน ชวิ้ ธ ี Insert rrow เพือ
่ หรือใช ่ ขยั
ยับ
ตําแหน่งอ ้างอิงของง Top ทัง้ แนว row ที่ 2 ไปพร ้อมก
กัน เพราะ Top
T มิได ้หม ายถึงแค่พนที

ื้ ่
บางสว่ น
นของ หากค
ครอบคลุมพืนที
น้ ท ่ งั ้ row ที่ 2 ทัง้ หม
มด

ต ัวอย่า
าง

ในกรณีทีต ปลีย
่ ้องการเป ่ นส ี 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$
$2 ในสูตรนีว้ว่าเป็ นเซลล
ล์แรกบนหัวตารางด
ต บนซงึ่ อยูใ่ นแ
้านบ แนว
คูข
่ นานกับพืน
้ ที่ C3
3:G7 ทีเ่ ลือกไว
ก ้ และต องกํ ห ้ใสเ่ ครือ
้อ าหนดให ่ งหมาย $ ไว ้หน
น ้าเลข 2 แต่ไม่ได ้
ใส่ $ หน
น ้าตัว C เพือควบคุ
อ่ มให ้ Excel นํ าตํ าแหน่งเซล
ลล์ถด ้
ั ไปใน row ที่ 2 ม าใชในการค
คํานวณ
ซงึ่ ได ้แก่เซลล์ C2,, D2, E2, F2, และ G2 นั่นคือตัวเล
ลข 2, 3, 4, 5, 6 ตามลําาดับ ซงึ่ เมือนํ
อ่ ามา
ยเลข 2 แลว้ว หากเหลือเศษเท่ากับ 1 ย่อมแสด
หารด ้วย ดงว่าเลขในเเซลล์บนหัววตารางด ้านบ
บน
เซลล์นัน
นเป็
้ นเลขคี่ ทําให ้ Cond
ditional Fo
ormatting เป ่ นสเี ซล
ปลีย ่อยูใ่ ต ้เลข 3 และ 5
ลล์ผลคูณทีอ
ซงึ่ เป็ นเเลขคี่

ประโยช
ชน์ของวิธท
ี ําให C เป็ น Dyynamic Celll จะชว่ ยทําให
า ้เซลล์ C$2 ใ ้ใชคํ้ าสงั่ Conditiona
al
Formattting กําหนดเงือ
่ นไขให
ห ้กับทัง้ ตาราางได ้พร ้อมก ี
กันในทีเดียว โดยไม่จําาเป็ นต ้องเสยเวลา

ใชคํ้ าสงั่งนีก
้ บ
ั ทีละเซ
ซลล์หรือทีละ
ล column และยังสามารถนํ าหลักการนีไ กั้ บคําสงั่ Da
้ ปใชก ata
Validattion ทีก
่ ําหน m โดยใชสู้ ตรตรวจสอบ
นด Allow แบบ Custom ต การบันทึกค ่ กัน
ค่าได ้เชน

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
285 

วิธใี ช ้ Table กําหนดขอบเขตตารรางโดยอ


อ ัตโนม
ั ัติ

ตามปกติเมือ
่ สร ้างสู
สูตรอ ้างอิงกับ
ั ตําแหน่งเ ซลล์หรือตําแหน่
า งตารา
าง จากนัน
้ เมื
มือ่ มีการย ้าย
ยหรือ
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 

อ ้างอิง =$B$3:$E$3 สร ้างขึนโดยอั


น้ ตโนมั ื่ Tab
มัต ิ (ชอ ble2 นี้ จะมีเลขต่อท ้าย เพิม
่ ขึน
้ ทีละ 1 ตาม
ครัง้ ทีใ่ ชคํ้ าสงั่ Table)
จํานวนค

เมือ
่ บันท
ทึกข ้อมูลเพิ
พิม่ ขึน
้ จะพบ ื่ Rang
บว่าชอ ge Name ทัง้ หมดมีขอบเขตของตํ ําแหน่งอ ้างอิง
ขยายตาามให ้อย่างอ ว่
อัตโนมัต ิ ชวยทํ าให ้ตําแ
แหน่งอ ้างอิงที
ง ก ่ ําหนดไว ้ในสูตร, Foormat,
Conditiional Formatting, Datta Validatio
on, หรือแม ้แต่
้ ใน Pivott Table ปรับ
บขนาดตามให ้ทันที

แม ้คําสงั่ Table จะมีประโยชน์อย่างมาก แ


แต่ก็เหมาะกับ บ ้อมูลซงึ่ บั น
ั ตารางเก็บข ั ทึกไว ้เป็ น
ฐานข ้อม
มูลทีด
่ เี ท่านัน ง้
้ และผู ้ใชงานควรทรา ่ เติมอีกว่า คําสงั่ นีจ
าบเพิม ้ ะทําให ้เกิ
กิดตําแหน่งอ ้างอิง
แบบพิเศ
ศษทีเ่ รียกว่า Structure
ed Referen ้ ทนตําแหน่งอ ้างอิงแบบ ปกติ เชน
nce มาใชแท ่
=SUM((Table2[Co คาเป็ นยอดรรวมของ Cosst หาต่อมามีการสงั่ ยกเเลิก Table จะทํา
ost]) จะคืนค่
ทีเ่ คยใช ้ Strructured Reference
ให ้สูตรท R แ ชตํ้ าแหน่งอางอิ
แก ้กลับมาใช ้า งตามปก
กติให ้เอง ทําให ้
สูตร =S
SUM(Table
e2[Cost]) แก
แ ้กลับมาเป็ปน =SUM(S
Sheet1!$E$
$3:$E$7)

การยกเเลิก 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

กนีโ้ ปรดสงั เกตว่


นอกจาก เ า ในตัวอย่
ว างนีก
้ อ นการใชคํ้ าสง่ั Table มีข ้อมูลบันทึก
่ น กไว ้เพียงรายการ
ื่ Ran
เดียว จึงงจําเป็ นต ้องงตัง้ ชอ ื่ Id, Nam
nge Name ช อ me, และ Am
mount ให กั
้กั บเซลล์ B3:B4,
D4 ซงึ่ เผือ
C3:C4, และ D3:D ่ ไว ทีเ่ ป็ นเซลล์ว่วาง ทําใหสู้สูตรทีใ่ ชตํ้ าแ
ว ้ถึ้ ง row 4 ท แหน่งอ ้างอิงรวมถึ
ง ง
เซลล์วาางนี
่ อ ้ าจทํางานผิ
ง ดพลาด
ดก็ได ้ ดังนัน
นเพื
้ อ ่ ป้ องกันปั
น ญหานี้ ควรใช
ค คํ้ าสงั่ Table กับตารางที
ต ่
บันทึกข ้้อมูลไว ้ตัง้ แต่
แ 2 รายกา
ารขึน ื่ Ran
้ ไป และะตัง้ ชอ nge Name ให ้กําหนดข
ขอบเขตไว ้เท
ท่ากับ
ปริมาณ
ณข ้อมูลทีม
่ จ
ี ริงโดยไม่ตองเผื
้อ อ ่ เซลล์
ล์วา่ งไว ้ด ้วย

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

สมมติวา่ มีตารางฐาานข ้อมูลขอ


องลูกค ้าหลาายๆกลุม
่ ตาม ลูกค ้า ซงึ่ ลัก
มเกรดของลู กษณะของตาราง
ฐานข ้อม
มูลของแต่ละกลุ
ล ม ่ มีหนาตาตารางเห
้า หมือนๆกัน เพี
เ ยงแต่จัดเก็
เ บแยกตารรางไว ้ต่างพืนที
้ ่
ี กัน) แล
(หรือต่าางชท ื่ ตา
แ ้วตัง้ ชอ ารางว่า ClasssA, ClassB
B, และ ClassC

เมือ
่ ต ้องงการค ้นหาข
ข ้อมูล ให ้พิมพ์
ม ชอ ื่ 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)

สูตร VLLookup และะสูตร Index


x มีลก ้
ั ษณะ การใชงานเหมือนกันปรระการหนึง่ คือ ใชกั้ บพืนที
น้ ่
ซงึ่ กําหนดขอ
ตารางซ อบเขตไว ้ตา
ายตัวอยูแ
่ ล ว้ว แม ้จะนํ าสตร ข ้ ้ามาชว่ ยก็เป็ นเพียง
สู IF หรือ Choose เข
ชว่ ยทําใให ้สูตร VLo สูตร Index สามารถเลือกพื
ookup และส อ น ้ ทีต
่ ารางจากต่างพื
พืน้ ทีก
่ น ้
ั มาใใชงาน
แต่จะไม
ม่รับรู ้ขอบเข
ขตใหม่หากภ
ภายหลังมีกาารเพิม
่ ลดจํานวนรายกา
า ร

สว่ นการรใชคํ้ าสงั่ Ta


able เหมาะะสําหรับตารรางฐานข ้อมูลซงึ่ มีลก
ั ษณ และจะชว่ ยขยาย
ณะถูกต ้องแ
ตําแหน่งอ ้างอิงตาม
มจํานวนราย
ยการ แต่จะไไม่ลดขนาดเเว ้นแต่วา่ ผูใช ้ งั่ deleete row
้ใ จะส

สูตร Offfset เป็ นสูตรที


ต ช ่ ว่ ยกําหนดขอบเขต
ห ตตารางใหสามารถเพิ
้ส ม ่ ลดขนาดตาามจํานวนรายการ
มารถนํ าไปใใชกั้ บตารางทุกประเภท โดยไม่จํากัดว่าจะต ้องเป็ นตารางฐฐานข ้อมูลเท
และสาม ท่านัน

ี ้อจํากัดว่า หาากใชสู้ ตร Offset
แต่มข O ดึงข อมู
้อ ลข ้ามแฟ้ มมาใช
ม ้ จะต
ต ้องเปิ
้ ดแฟ้ ม
มต ้นทางขึน
้ มาใช
ม ้
ร่วมกับแ ทางทีใ่ ชสู้ ตรนี
แฟ้ มปลายท ร ด ้ ้วยเสมอ

จากภาพ
พนีเ้ มือ
่ ต ้องก
การขอบเขต ห ้ใชสู้ ตร =O
ตตารางตัง้ แ ต่ B3:D7 ให OFFSET($B
B$3,0,0,5,3
3)

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
292 

• $B$3 เป็ นตําแหน่งเซลล์อ ้างอิงเพือ


่ กําหนดเซลล์อ ้างอิงเริม
่ ต ้นของตาราง
• ้
เลข 0 ตัวแรกในสูตร เป็ นตําแหน่งจํานวน row ถัดไป สาเหตุทใี่ ชเลข ่ ชวี้ า่
0 เพือ
จุดเริม
่ ต ้นของตารางยังคงอยูใ่ น row เดียวกันกับเซลล์อ ้างอิงเริม
่ ต ้นของตาราง $B$3
• เลข 0 ตัวทีส ้
่ องในสูตร เป็ นตําแหน่งจํานวน column ถัดไป สาเหตุทใี่ ชเลข ่ ชวี้ า่
0 เพือ
จุดเริม
่ ต ้นของตารางยังคงอยูใ่ น column เดียวกันกับเซลล์อ ้างอิงเริม
่ ต ้นของตาราง
$B$3
• เลข 5 เป็ นสว่ นของความสูงของตาราง ในทีน
่ แ
ี้ สดงว่ามีความสูง 5 row
• เลข 3 เป็ นสว่ นของความกว ้างของตาราง ในทีน
่ แ
ี้ สดงว่ามีความกว ้าง 3 column

หากต ้องการให ้สูตรนีป ่ (Dynamic Range) โดยทัว่ ไปเฉพาะสว่ นของ


้ รับขนาดแบบยืดหยุน
ความสูงของตารางเท่านัน
้ ทีจ
่ ะเพิม
่ ลดตามจํานวนรายการทีบ
่ น
ั ทึกไว ้ เมือ
่ ต ้องการทําให ้สูตร
Offset ปรับขนาดความสูงตาม สามารถหาความสูงได ้หลายวิธ ี ดังนี้

1. สูตร CountA($B:$B)-1 เพือ


่ นับจํานวนเซลล์ใน column B ทีม
่ ข ี 1
ี ้อมูลแล ้วลบทิง้ เสย
เพราะไม่ต ้องการนับรวมหัวตารางเซลล์ B2 ซงึ่ มีคําว่า Id
2. ใชสู้ ตร CountA($B$3:$B$10000) เพือ
่ นับจํานวนเซลล์ทม
ี่ ข
ี ้อมูลตัง้ แต่รายการแรกลง
มา อาจเผือ
่ ขนาดไว ้ถึง row 10000

การใชสู้ ตร CountA ให ้เลือกใชกั้ บ column ทีม


่ น
ั่ ใจว่ามีข ้อมูลบันทึกไว ้ครบทุกรายการเสมอ
ห ้ามมีเซลล์เว ้นว่างแทรกอย่างเด็ดขาด ซงึ่ โดยทัว่ ไปในตารางหนึง่ ๆต ้องมี column หนึง่ ซงึ่ ต ้อง
บันทึกครบทุกรายการอยูแ
่ ล ้ว โดยเฉพาะ column ของรหัสหรือวันที่

หากเป็ นตารางซงึ่ มีชอ


่ งว่างแทรกไว ้ไม่แน่นอน สามารถคํานวณหาความสูงของตารางได ้ โดย
ใชสู้ ตร Array {=MAX(IF(B:D<>0,ROW(B:D)))-MIN(IF(B:D<>0,ROW(B:D)))}

• สูตร Array { =MAX(IF(B:D<>0,ROW(B:D)))} หาเลขที่ row สุดท ้ายของตาราง


• สูตร Array { =MIN(IF(B:D<>0,ROW(B:D)))} หาเลขที่ row แรกของตาราง

หมายเหตุ สูตร Array มีวงเล็บปี กกาปิ ดหัวท ้ายสูตร เกิดจากการกดปุ่ ม Ctrl+Shift+Enter


พร ้อมกันแทนการกดปุ่ ม Enter และอาจต ้องปรับเพิม
่ ลดตัวเลขให ้เท่ากับความสูงทีแ
่ ท ้จริงหาก
ตารางในชว่ ง column B:D มีข ้อมูลอืน
่ ซงึ่ ไม่เกีย
่ วข ้องบันทึกอยู่

Copyright of www.ExcelExpertTraining.com 
293 

เมือ
่ หาความสูงของตารางด ้วยสูตรได ้แล ้ว จากเดิมทีเ่ ป็ นสูตร =OFFSET($B$3,0,0,5,3) ให ้นํ า

สูตรคํานวณหาความสูงมาซอนกั
นกลายเป็ นสูตร
=OFFSET($B$3,0,0, CountA($B:$B)-1, 3)

่ ํานวณได ้มาใชก็้ ได ้ กลายเป็ นสูตร


หรือจะลิงค์เฉพาะผลลัพธ์ของความสูงทีค
=OFFSET($B$3,0,0, เซลล์หาความสูง, 3)

สูตร Offset ทีท


่ ําหน ้าทีเ่ ป็ น Dynamic Range นี้ หากสร ้างลงไปในเซลล์เดียวจะเกิด error
#VALUE! เสมอ เนือ
่ งจากสูตรนีห
้ าค่าหลายค่ามาให ้จึงไม่สามารถแสดงครบทุกค่าในเซลล์ใด
เซลล์หนึง่ ได ้ หากต ้องการตรวจสอบว่าสูตรทํางานได ้ถูกต ้องหรือไม่ ให ้กดปุ่ ม F2 ตามด ้วย F9
จะพบว่าสูตรคืนค่าเป็ นค่าทัง้ หมดในตารางนัน
้ ออกมาให ้เห็นแบบ Array

={"a001","a",10;"a002","b",20;"a003","c",30;"a004","d",40;"a005","e",50}

เมือ
่ เห็นค่าทีแ
่ ท ้จริงของสูตรแล ้ว ให ้กดปุ่ ม Esc เพือ
่ แก ้กลับคืนเป็ นสูตรตามเดิม

อีกวิธห ่ ง Formula Bar ลากเลือกสูตรทัง้ หมด


ี นึง่ ในการตรวจสอบสูตร ให ้คลิกลงไปในชอ
=OFFSET($B$3,0,0, CountA($B:$B)-1, 3) แล ้วกดปุ่ ม F5 แล ้วกดปุ่ ม Enter เพียงครัง้ เดียว
จะพบว่า Excel เปลีย
่ นสูตร Offset เป็ นตําแหน่งอ ้างอิง =B3:D7 พร ้อมกับแสดงตําแหน่งใน
ตารางให ้เห็น จากนัน
้ ให ้กดปุ่ ม Esc เพือ
่ แก ้กลับคืนเป็ นสูตรตามเดิม

เมือ ี้ ําแหน่งได ้ถูกต ้อง ให ้ตรวจสอบตําแหน่งอ ้างอิงทุก


่ พบว่าสูตร Offset แสดงค่าหรือชต
่ $B$3 และ $B:$B ก่อน จากนัน
ตําแหน่งในสูตรว่าเป็ น Absolute Reference เชน ้ จึงนํ าสูตรนี้
ื่ ให ้เป็ น Formula Name โดยใชคํ้ าสงั่ Formulas > Define Name ต่อมาเมือ
ไปตัง้ ชอ ่ ต ้องการ
ื่ Formula Name ทีต
สร ้างสูตร VLookup, Match, หรือ Index ให ้นํ าชอ ่ งั ้ ขึน
้ นีไ ้
้ ปใชแบบ
เดียวกับการใชช้ อ
ื่ Range Name โดยทัว่ ไป

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 หรือรรายการสุดท ้าย

กนี้ ผู ้ใชสู้ ตร Offset สา


นอกจาก ามารถกําหน
นดตําแหน่งเซลล์
เ อ ้างอิงเซลล์
ง แรกไไว ้ทีเ่ ซลล์ใดก็
ด ได ้
้ ซลล์ B3 ซงเป็
(ไม่จําเป็ป็ นต ้องใชเซ งึ่ นเซลล์แ
แรกของรายก
การแรก) แล ้
ละยังสามารรถใชหาค่
าใน
นทุก
ทิศทาง เพียงกําหน
นดจํานวน ro
ow ถัดไปห รืือเลข colu
umn ถัดไปใให ้เป็ นค่าลบ

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
295 

วิธใี ช ้ Text กําหนดขอบ


บเขตตารา
างแบบยืดหยุ
ด น ่ (D
Dynamic Range)

ชว่ ยกําหนดข
แม ้สูตร Offset จะช ขอบเขตตารรางให ้อัตโน
นมัตก
ิ ็ตาม แต่
แ ขอบเขตที
ทีไ่ ด ้ขึน
้ อยูก
่ บ

ปริมาณ
ณข ้อมูลหรือจํ
จานวนรายการทีบ ั ทึกไไว ้ ซงึ่ ในบาง
่ น ม่ตรงกับควาามต ้องการ บางครัง้
งกรณีอาจไม
้ นอาจต ้องกาารกําหนดขอ
ผู ้ใชงาน อบเขตตาราางให ้แปรเปล
ลีย
่ นไปตามเงือ
่ นไขพิเศ
ศษ

จากภาพ
พนีส
้ มมุตวิ า่ ต ้องการหาย
ยอดรวมของงตัวเลขในพื
พืน
้ ทีต จาก B2:F155 ซงึ่ ตามปก
่ ารางจ กติ
ถใชสู้ ตร =S
สามารถ SUM(B2:F15) ได ้อยูแ
่ ล ้ว เมือ
่ ต ้องก
การเพิม
่ ลดข
ขนาดตาราง B2:F15 ให
ห ้ต่างไป
จากเดิม
มก็ต ้องแก ้ไข ้า งในสูตร หรือสงั่ In
ขตําแหน่งอางอิ e Row หรือ Column ซงึ่ ย่อม
nsert/Delete
ทําให ้ตําาแหน่งอ ้างอ
อิงในสูตร Sum
S ปรับตาาม แต่ผลจากการ Inserrt/Delete R
Row หรือ Column
อาจกระะทบกับพืน
้ ทีต
่ ารางใกล ้เคี
้ ยงทีอ
่ ยูใ่ น
นแนวเดียวกั
กันและทําให
ห ้ต ้อง Copyy สูตรทีส
่ ร ้าง
งไว ้เดิม
มีลําดับเซลล์ทอ
ี่ ้างอิงไว ้ผิดเพียนไปจากที
้ ที่ควรก็ได ้

เริม จากใชสู้ ตรใน


่ ต ้นจ นเซลล์ I2 และ
แ I3 =Ceell(“Addresss”,cell) หา
าตําแหน่งอ างอิ
้า งของเซ
ซลล์หวั
้ บนสุด(Firstt)และเซลล์ห
มุมซาย ์ วั มุมขวาล่
ล่างสุด(Lastt) จะได ้ตําแหน่
แ งอ ้างอิง $B$2 และะ $F$15
ตามลําด
ดับ

นํ าตําแห
หน่งอ ้างอิงที ื่ มต่
ทไ่ ด ้มาเชอ ม อกันในเซ
ซลล์ 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))

เมือ ้ นสูตร INDE


่ ซอน EX(MyNum,FirstRow)) เข ้าไปในสู
สูตร Cell จะเเปลีย ทีจ
่ นหน ้าท ่ ากการหาค่าที่ 2
คือเลข 22 จากพืน
้ ทีต ื่ MyNum ม าเป็ นการบอ
่ ารางชอ อกตําแหน่งเซลล์ B3

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
297 

การจ ััดการค่าซํา้

ในหลักการบันทึกข ้อมู
้ ลทีด ี ้องควบคุมกาารบันทึกค่าซํ้าให ้เกิดขึนได
่ ต น้ ้เท่าทีจ
่ ําาเป็ นเท่านัน ่ ใน
้ เชน
งานบันท ิ ้าทีข
ทึกข ้อมูลสนค
น ่ าย จะมี
จ ตารางบัน ิ ้าเอาไว ้ จจากนัน
ั ทึกรายละเอียดของสนค
น ้ เมือ
่ ต ้องการ
ิ ้าไปใชที
รายละเอียดของสนค
น ้ เ่ ซลล์อน
ื่ ไม่
ม่จําเป็ นต ้องพ ิ ้านัน
พิมพ์รายละเอียดของสน
นค ํ้า ก
้ ๆซาอี
่ ําเเป็ นต ้องพิมพ์ซํ้ามีเพียงรหั
ค่าทีจ ง ส พอพิม
มพ์รหัสลงไป ส้ ตรดึงข ้อมูล
ปแล ้วให ้ใชสู ิ ค ้านัน
ลของรหัสสน ้
มาแสดงง โดยใชสู้ ตร
ต VLookup
p, Match, IIndex, หรือสูตรอืน
่ ๆดึงรายละเอียด
ดของรหัสมา
าแสดง

่ ู ้ใช ้ Excel อาจเเผลอพิมพ์คาซ


อย่างไรรก็ตามมีบางงงานทีผ ่ ํ้า โดยเฉ
ฉพาะงานทีต
่ ้องกระจายให ้
พนักงาน นชว่ ยกันบันทึ
นหลายๆคน ทกข ้อมูล เค ่ งมือทีใ่ ชช้ ว่ ยเตือนท
ครือ ทันทีทม
ี่ ก าํ้
ี ารรบันทึกค่าซาได ้แก่
คําสงั่ D
Data Valida
ation เพือ
่ ป้ องกั
อ นหรือเตื ทกซํ้าและ Conditiona
ตือนการบันทึ C l Formattin
ng เพือ

เปลีย สเี ซลล์ทม
่ นส ี า่ ซํ้า โดยใช
ี่ ค่
ค ้
ชงานร่
วมกับ
บสูตร CounttIF

หากต ้องการสงั่ ให ้ Excel เตือนเมื


น อ พิมพ์คา่ ซาํ้ ให ้เริม
่ มีการพิ ่ จากเลื
ลือกพืน
้ ทีต
่ ารรางตัง้ แต่ B3:B15
B
ซงึ่ เตรีย
ยมไว ้สําหรับบั ้ สงั่ Data > Data
บ นทึกข ้อมูล จากนัน D Valida
ation > Datta Validatio
on
เลือก A
Allow แบบ Custom
C แล
ล ้วพิ
้ มพ์สต
ู ร =COUNTIF($B$3:$B
B$15,B3)=11 ลงไปในช
ชอ่ ง
Formulla โดยไม่ตองใส
้อ เ่ ครือ นสว่ นของ B3
่ งหมาย $ ใน 3 ทีอ
่ ยูด
่ ้านท
ท ้ายในวงเล็
ล็บของสูตร เพือ
่ ทํา
ให ้ Excel ใชตํ้ าแหน่งถัดไปในการตรวจสอ
อบให ้เอง

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

สูตร VLLookup และะสูตร Match


h มีจด
ุ อ่อนต
ตรงทีส
่ ต
ู รเห
หล่านีจ
้ ะทํางานกั
ง ลทีไ่ ม่ซํ้าเท่านัน
บข ้อมูล ้
ไปใชกั้ บตารรางทีม
หากนํ าไ ี ้อมูลซํ้าจะให ้คํ าตอบของข
่ ข ่ ํ้ากั น สว่ นคําสงั่ Data
ข ้อมูลรายการแรกทีซ
> Adva
anced หรือ Filter จะทํางานต่
า ่อถูกสงั่ ใหม่เป็
อเมือ เ นครัง้ ๆไป ดังนัน
้ หาก ต ้องการแสด
ดง
รายละเอียดของขอมู ่ ํ้ากันในทันทีทม
้อ ลทีซ ี่ ก
การเปลี
ี ย ่ นแ
แปลง ต ้องหั
หันมารู ้จักกับ
บสูตรทีเ่ รียกกั
ก นว่า
สูตร Mu
ultiple Matcch

สูตร 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

e Item คือ ข ้อมูลทีไ่ ม่ซํ้ากับข ้อมูล อืน


Unique ่ ซงึ่ ในกรรณีทม
ี่ ก ั ทึกรายกาารซํ้ากันไวหลาย
ี ารบัน ้ห
รายการร รายการแรก ่ ํ้ากันก
กของแต่ละชุดทีซ ก็คอ ยใชสู้ ตรคล ้า้ายกับสูตร Multiple
ื Unique Item โดย M
Match เพียงมีขน
ั ้ ตอนเพิม ้ อีกหนึง่ ขัน
่ ขึน ้ ต อน

ในภาพน ้ ารางรหัส ID จาก C3:C20 มีรหัสบันทึกไวซ


นีต ้ซํ้ากัน รหัส ID ทีเ่ ป็ น U
Unique Item
m คือ
รหัสราย 7 10, และ 16 ซงึ่ หาตัวเลขตํ
ยการที่ 1, 2, 3, 4, 5, 7, ว าแหน
น่งรายการเห
หล่านีไ
้ ด ้จาก
กสูตร
Array ใในเซลล์ I3:I12 { =SM
MALL( IF(M
MATCH(ID&
&"",ID&"",0
0) = Num, Num), Num)}
โดยสูตรรนีต
้ ้องสร ้างงพร ้อมกันลง
งทีเดียวไปใในเซลล์ I3::I12 แล ้วกด
ดปุ่ ม Ctrl+SShift+Enter เพือ

ทําให ้มีเครือ
่ งหมาย
ยวงเล็บปี กกาปิ
ก ดหัวท ้าย
ยสูตรให ้เอง (ทัง้ นีใ้ ห ้เลื
ลือกจํานวนเซ
ซลล์ I3:I12
2 มาก
หรือน ้อยกว่านีก
้ ็ได ้แล
้ ้วแต่วา่ จะะมีจํานวน U
Unique Item
m ทัง้ หมดมากน ้อยเท่าใใด)

Step1 : สูตร MAT


TCH(ID&""",ID&"",0) ท
ทําหน ้าทีห
่ าเลขตํ
า าแหน
น่งรายการข อง ID แต่ละตั
ล ว
สาเหตุท
ทีต ห ้ใช ้ ID&"" เพือ
ี่ ้องปรับให ่ ทําให สู
้สูตรนีย ง้
้ งั ใชงานได ้หากมี ่ เซลล์ C20
มีเซลล์วา่ ง เเชน C

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 แบบมักง่ายอาจหาทางทีง่ า่ ย
ความสะดวกและง่ายในการหาคําตอบทีต
้ โดยปรับแต่งโครงสร ้างฐานข ้อมูลให ้กลายเป็ นหน ้ารายงาน ทําให ้ไม่สามารถใช ้
กว่านัน
ฐานข ้อมูลได ้เต็มทีอ
่ ก
ี ต่อไป ยิง่ กว่านัน
้ หากรายงานทีต
่ ้องจัดพิมพ์มรี ้อยหน ้า ก็มก
ั ออกแบบ
ตารางรายงานเลียนแบบหน ้ารายงานทัง้ ร ้อยหน ้า ทําให ้แฟ้ มมีขนาดใหญ่ขน
ึ้ อย่างมากเนือ
่ งจาก
ต ้องเตรียมพืน
้ ทีใ่ นชท ี หรือต่างแฟ้ ม รอไว ้สําหรับแสดงข ้อมูลทุกหน ้า
ี เดียวกัน ต่างชท

พึงระลึกไว ้เสมอว่าฐานข ้อมูลทีด


่ ต ่ เดิมไว ้ตลอด การเปลีย
ี ้องคงสภาพโครงสร ้างเชน ่ นแปลงที่
เกิดขึน
้ กับตารางฐานข ้อมูลจะมีเพียงการเพิม
่ รายการใหม่ตอ
่ ท ้ายรายการเดิมลงไปเรือ
่ ยๆ หากไม่
จําเป็ นจะไม่มก
ี าร insert row แทรก หรือ delete row ลบรายการทีบ
่ น
ั ทึกไว ้ทิง้ และหน ้า
รายงานต ้องหาทางสร ้างขึน
้ เพียงหน ้าเดียวหรือสูตรเดียว แล ้วหาทางเปลีย
่ นหน ้าเดียวหรือสูตร
เดียวนัน
้ ให ้แสดงคําตอบหน ้าอืน
่ ๆหรือเรือ
่ งอืน
่ ๆได ้โดยไม่ต ้องสร ้างหน ้าใหม่หรือสูตรใหม่ขน
ึ้ อีก

หลังจากฐานข ้อมูลมีโครงสร ้างทีแ ั เจนแล ้ว เมือ


่ น่นอนชด ่ ต ้องการหาคําตอบเกีย
่ วข ้องกับตัวเลข
ยอดรวม มีทางเลือกให ้ใชคํ้ าสงั่ หรือสูตรได ้ ดังนี้

• ใชสู้ ตร SubTotal ร่วมกับคําสงั่ Filter และ Custom Views


• ใชคํ้ าสงั่ Data > SubTotal เพือ
่ สร ้างยอดรวมรายการแต่ละประเภทขึน
้ ภายในตาราง
ฐานข ้อมูลนัน

• ใชคํ้ าสงั่ Data > Consolidate เพือ
่ รวมตัวเลขของหลายตารางตามตําแหน่งเรือ
่ ง
เดียวกันเข ้าด ้วยกัน
• ใชสู้ ตร Array SumIF หรือ DSum เพือ
่ หายอดรวมแยกประเภท แล ้วใชคํ้ าสงั่ Data >
What-if Analysis > Data Table เพือ
่ หายอดรายการอืน
่ ๆต่อ
• ใชคํ้ าสงั่ Insert > Pivot Table เพือ
่ สร ้างตารางเปรียบเทียบตัวเลขคําตอบ

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 ไปรวมเข
ข ้าไปอี
้ ก

แทนทีจ อกใชสู้ ตร Sum ตังแต่


จะเลื
่ ง้ แรก ถ ้า เปลีย
่ น =SU
UM(B2:B11
1) ไปสร ้างสู
สูตรบวกแต่ละเซลล์

เข ้าด ้วย
ยกันเป็ น =B
B2+B3+B4+
+B5+B6+B
B7+B8+B9
9+B10+B11 แล ้วหากภ
ภายหลังมีการแทรก
row แล ่ า่ ใหม่เพิม
ละใสค ่ ย
่ เข ้าไปใในเซลล์เชน
นที ่ กตัวอย่างข
า ้างต ้น ก็จะไม่เกิดปั ญ
ญหาทําใหสู้สตรบวก
คํานวณ
ณค่าผิดพลาด
ด เพราะสูตรบวกยั
ร งคงเ ลือกเฉพาะเซลล์ตามเดิ
ดิมทีก
่ ําหนด
ดไว ้ให ้เสมอ แต่สต
ู ร

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 

สงั เกตวว่าในเซลล์ B7 3 ใชสู้ ตร Su


B และ B13 ubTotal เพือหายอดรว
่ มของตัวเลข
ขจากเซลล์ B2:B6
และ B2
2:B12 ตามล 3 ใชสู้ ตร =SUBTOTAL
ลําดับ โดยในเซลล์ B13 L(109,B2:B
B12) แม ้ว่าได
ไ ้
กําหนดขอบเขตขอ
องตารางทีต
่ ้องการหายอ
้ อดรวมไว ้ตังแต่
ง้ เซลล์ B2:B12
B ซงึ่ รรวมถึงเซลล์์ B7 ทีม
่ ี
ยอดตัวเลขรวมจาก
กเซลล์ B2:B
B6 ไว ้ก็ตาม สูตร SubT
Total ในเซล
ลล์ B13 จะล
ละเลยไม่นําค่าใน
เซลล์ B ณซํ้าอีก ทําให
B7 มาคํานวณ า ้ยังคงได ้ ้คําตอบเท่ากับ 55

ถ ้านํ าสูต al ไปใชร่้ วมกั


ตร SubTota ม บตารางที
ที่ถก ่ น row
ู ซอ w/column hide หรือก รองจากคําสงั่ Data
> Filterr จะพบว่า สู
สตร SubTotal แสดงตัววเลขคําตอบ
บเฉพาะทีไ่ ด ้มาจากเซล
ลล์ทย
ี่ งั มองเเห็นตัว
เซลล์อย
ยูเ่ ท่านัน
้ (V
Visible Cellss Only) โดย
ยตัวสูตรเองไม่ได ้ต ้องเป
ปลีย
่ นแปลงงใหม่แต่อย่างใด

(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 > SubTotal ใชกั้ บตารางฐานข ้อมูล


ลซงึ่ จัดเรียงข
ข ้อมูลแยกตามกลุม
่ ทีต
่ องการไว
้อ ้ก่อนแล
อ ้ว
และต ้องงเป็ นตารางซงึ่ ไม่มส
ี ต
ู รใดๆสร
ร ่ ใชคํ้ าสง่ั นีจ
้างไวว ้ เมือ ้ ะเกิดสูตร SubTottal หายอดรรวมแยก
ตามกลุม
มให
่ ้ทันที พร
พ ้อมกับสราง
้า Outline เเพือ ้ กเลือกแสดงรรายละเอียด
่ ใชคลิ ดทีละขัน
้ ตาม

ต ้องการรให ้อีก และะเมือ ชงานร่
่ นํ ามาใช ้ วมกับ Custom Views
V ่ งมือใใชช้ ว่ ยงาน
จะเป็ นเครือ
ฐานข ้อม
มูลได ้อย่างไ ื่
ไม่น่าเชอ

เริม
่ จากจัดเรียงข ้อม
มูลเพือ
่ จัดกล
ลุม
่ ข ้อมูลทีต
่ ้องการหาย
ยอดรวม แยกเฉพาะแต่ล ่ ก่อน โดยสงั่
ละกลุม
Data > Sort จากนั
นัน้ คลิกลงใน
นตารางข ้อมู ก็ได ้ แล ้วสงั่ Data > Suubtotal
มูลเซลล์ใดก็

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
309 

• ่ ง At eacch change in: ให ้เลือก


ชอ ื่ Heade
กชอ er ทีต
่ ้องการหาผลรวมต
ตามกลุม
่ ขอ
อง
Header นันๆ


• ่ ง Use fu
ชอ unction: ให
ห ้เลือก Sum
m
• ่ ง Add subtotal
ชอ s ื่ Header ของ
to:: ให ้เลือกชอ ข Field ทีต
่ ้องการหาายอดรวม
• กดปุ่ ม OK จะพบว่
จ า มี Row ใหม่แ
แทรกขึน
้ เองและมีสต
ู ร Subtotal
S คําานวณยอดให
ห ้ทันที

หากต ้องการสร ้าง Subtotal


S ้ น Subtotal ระดับแรก ให
ระะดับรองซอน ใ ้สงั่ Data > Subtota
al ซํ้าอีก
ครัง้ แลวเปลี
้ว ย ่ น He ่ ง At eaach change in: แล ้วให
eader ใหม่ในชอ ห ้ตัดกาเครือ
่ องหมายถูกในช
ใ อ ่ ง
Replace
e current subtotals
s ออก
อ แล ้วกด
ด OK

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 เท่านัน

ข ้อดีของการใชคํ้ าสงั่ นี้ นอกจา


าก Excel จะะสร ้างสูตร SubTotal
S ให หากต ้องการสงั่
ห ้เองแล ้ว ห
ย ้อนกลับ
ั ไปเป็ นตารางฐานข ้อม
มูลตามแบบ
บเดิม ให ้กดป
ปุ่ ม Remove
e All

หมายเห
หตุ หากตองการสร
้อ ้าง 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 นํ าข ้อมูลมาทั
ม ง้ ตาราง นํ ามาแสดงงไว ้บนกราฟ
ฟได ้เลย
ทัง้ ตาราาง เริม
่ ต ้นโด
ดย

1. เลือกตารางงข ้อมูลซงึ่ ต ้องการนํ


้ าไป
ปแสดงบนกราฟ
2. กด Shift พร
พ ้อมกับคลิกเมนู
ก คําสงั่ E
Edit > Cop
py Picture แล
แ ้วกดปุ่ ม O
OK

ฟ แล ้วสงั่ Paaste แล ้วยายรู


3. คลิกลงไปใในหน ้ากราฟ ้า ปตารางไ
ไปยังตําแหน
น่งว่างๆบนก
กราฟ จะ
ั เจนไม
ได ้เห็นตาราางชด ม่ทับกับรูปสว่วนอืน
่ ๆ
4. คลิกลงไปใใน formula bar แล ้วพิม
มพ์เครือ
่ งหม
มายเท่ากับ =
5. คลิกกลับไป
ปยังพืน ่ ารางข ้อมูลซ งึ ่ สงั่ copy picture มาจ
้ ทีต จะได ้สูตร linnk มาทีร่ ป

6. กด Enter

Cop
pyright of ww
ww.ExcelExp
pertTraining.ccom 
313 

วิธส
ี ร้า
างสูตรเพือดึ
่ งรูปภา
าพ

ถใช ้ link รูปภาพมาแสด


สูตร Exxcel สามารถ ่
ดงผลได ้เชนเดี
น ยวกับการสร ้างสูตร link เพือ
่ นําค่
า าใน
เซลล์อน
นมาแสดง
ื่ โ
โดยเริ
ม ่ ต ้นจาก

1. สร ้างตารางงเก็บรูปภาพ เซลล์ละรูป แล ้วกําหน ื่ ตารางเก็บรูปนีว้ า่ PicTable หรื


นดชอ ื่
ห อชอ
อืน
่ ก็ได ้
้ คําสงั่ Formulass > Define Name สราง
2. ใชเมนู ื่ วว่า ChoosePic
้า Formula Name ชอ
กําหนดให ้ Refers to: สูตร =IND
DEX(PicTable,1,Sheet1!$A$1)

3. เลือกเซลล์ว่ ใ ได ้ แล ้ว สงั่ Home > Copy as Picture


วางๆเซลล์ใดก็
งึ่ ป แล ้วสงั่ Paste จะได ้รูปเซลล์
4. เลือกตําแหน่งเซลล์ซงจะแสดงรู ป วา่ งๆๆทีเ่ รา copy มา
5. คลิกลงไปใใน Formula
a Bar พิมพ์ส
สูตร =Choo
osePic

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 ทํางานเร็วเหมือนเดิม ซงึ่ ถ ้าผมเป็ นหัวหน ้าของคุณล่ะก ้อ ... แทนที่
ใหม่เพือ
จะเปลีย
่ นคอมพิวเตอร์เครือ
่ งใหม่ ขอเปลีย ่ จะดีกว่า !!! เพราะแม ้จะได ้ใช ้
่ นตัวพนักงานเป็ นคนอืน
่ งใหม่แล ้วก็ตาม ต่อมาพอแฟ้ มเริม
คอมพิวเตอร์เครือ ่ ใหญ่ขน ้
ึ้ อีก คอมพิวเตอร์ก็จะชาลงไปอี

ื้ เครือ
แล ้วเราก็ต ้องซอ ่ งใหม่ทเี่ ร็วขึน
้ กว่าอีกหรืออย่างไรกัน

่ ะสายเกินไป ผู ้ใช ้ Excel ควรเข ้าใจก่อนว่า ทีว่ า่ แฟ้ ม Excel ใหญ่ขน


ก่อนทีจ ึ้ นัน
้ อะไรบ ้างทีเ่ ป็ น
เหตุให ้แฟ้ มมีขนาดใหญ่ขน ้
ึ้ แล ้วอย่านึกต่อไปว่า แฟ้ มใหญ่ต ้องใชเวลาคํ านวณนานกว่าแฟ้ มที่
เล็กกว่าเสมอไป ซงึ่ เมือ
่ เข ้าใจประเด็นเหล่านีแ
้ ล ้วเราต ้องหาทางออกแบบแฟ้ มให ้ใหญ่พอดีๆ ไม่

ใหญ่ ไม่เล็กเกินไป และไม่ใชเวลาคํ ้
านวณชาจนรอไม่
ไหว

สงิ่ ทีม
่ ผ
ี ลต่อขนาดของแฟ้ ม

1. จํานวนเซลล์ทใี่ ช ้
2. จํานวนเซลล์ทถ
ี่ ก
ู อ ้าง
3. รูปแบบหรือ Format ทีใ่ ช ้

จํานวนเซลล์ทใี่ ช ้

แฟ้ ม Excel ในยุคแรก มีขนาดแฟ้ มใหญ่มากเพราะกําหนดว่า พืน


้ ทีต
่ ารางทุกเซลล์ตงั ้ แต่เซลล์
A1 ไปจนถึงเซลล์หวั มุมขวาล่างสุดทีม
่ ข
ี ้อมูลอยูถ
่ อ
ื เป็ นพืน ่ งึ่ ถูกใชงาน
้ ทีซ ้ ต่อมา Excel ได ้
พัฒนาให ้ขนาดของแฟ้ มไม่ต ้องนับจากเซลล์ A1 แต่ให ้นับเฉพาะเซลล์ทถ
ี่ ก ้
ู ใชงานเท่ ้ สว่ น
านัน
่ ะไรลงไป ไม่มส
เซลล์ทเี่ ราไม่ได ้เข ้าไปแตะต ้องแก ้ไขใสอ ี ว่ นกระทบต่อขนาดของแฟ้ มแต่อย่าง
ใด ซงึ่ ชว่ ยให ้เราสามารถใชพื
้ น้ ทีต ิ ติดกันเป็ นพืด
่ ารางได ้สะดวก ไม่ต ้องออกแบบตารางให ้ชด
เพือ
่ หาทางลดขนาดแฟ้ มอย่างแต่กอ
่ น

ขอให ้สงั เกตว่า ขนาดของแฟ้ ม ไม่ได ้ขึน


้ อยูก
่ บ
ั จํานวนอักขระทีม
่ อ
ี ยูใ่ นเซลล์ ไม่วา่ จะพิมพ์เลข 1
ลงไปในเซลล์ 100 เซลล์ หรือพิมพ์เลข 123 ลงไปในเซลล์ 100 เซลล์ แฟ้ มก็ยงั คงมีขนาด

Copyright of www.ExcelExpertTraining.com 
316 

ใหญ่เท่ากันเพราะใชจํ้ านวนเซลล์ 100 เซลล์เท่ากัน แต่อย่างไรก็ตามในเซลล์จํานวน 100


เซลล์ทส
ี่ มมติวา่ ถูกพิมพ์คา่ ลงไปนัน
้ หากพิมพ์ตวั อักษรหรือสร ้างสูตรลงไปก็จะทําให ้แฟ้ มมี
ขนาดใหญ่ขน
ึ้ ตามลักษณะของข ้อมูลทีพ ิ พ์ลงไป ซงึ่ ลําดับขนาดแฟ้ มจากเล็กไปใหญ่ขน
่ ม ึ้ กับ
ประเภทของข ้อมูล ดังนี้

1. ถ ้าเป็ นตัวเลข แฟ้ มจะเล็กทีส


่ ด
ุ ไม่วา่ จะเป็ นเลข 1 หรือเลข 123 แฟ้ มยังคงมีขนาด
เท่ากัน
2. ถ ้าเป็ นตัวอักษร แฟ้ มจะใหญ่ขน
ึ้ ไม่วา่ จะเป็ นตัวอักษร A หรือ ABC แฟ้ มยังคงมีขนาด
เท่ากัน (ใน Excel 2010 พบว่า ข ้อ 1 และ 2 นีไ
้ ม่ได ้มีขนาดแฟ้ มต่างกัน)
3. ถ ้าเป็ นสูตรและคืนค่าเป็ นตัวเลข แฟ้ มจะใหญ่ขน
ึ้
4. ถ ้าเป็ นสูตรและคืนค่าเป็ นตัวอักษร แฟ้ มจะใหญ่มากทีส
่ ด

จํานวนเซลล์ทถ
ี่ ก
ู อ้าง

ในกรณีทส
ี่ ร ้างสูตร link ข ้อมูลข ้ามแฟ้ ม จะพบว่าแฟ้ มปลายทางมีขนาดใหญ่ขน
ึ้ มาก หรือ
ี อีก ทัง้ ๆทีใ่ นแฟ้ มปลายทางมีเซลล์ทใี่ ชงานเพี
บางครัง้ จะมีขนาดใหญ่กว่าแฟ้ มต ้นทางเสย ้ ยง
เซลล์เดียวก็ตาม เนือ ่ ร ้างไว ้ในเซลล์ได ้นํ าข ้อมูลจากแฟ้ มต ้นทาง
่ งจากในสูตร link ข ้ามแฟ้ มทีส
มาเก็บไว ้ในแฟ้ มปลายทาง เรียกว่า Cache Data

่ สูตร =VLOOKUP(A1,[Input.xls]Sheet1!$B$2:$H$200,2) ทีห


ยกตัวอย่างเชน ่ าค่าจากแฟ้ ม
ี Sheet1 ตัง้ แต่เซลล์ B2:H200 นี้ จะทําให ้ Excel แอบสร ้างตารางทีเ่ รามองไม่
Input.xls ในชท
เห็นเก็บข ้อมูลจากแฟ้ มต ้นทางทัง้ หมดไว ้ในแฟ้ มปลายทางทีม
่ ส
ี ต ้ ยู่ ซงึ่ ตารางทีม
ู รนีอ ่ องไม่เห็นนี้
แหละเป็ น Cache Data

Cache Data ชว่ ยทําให ้เมือ


่ เปิ ดแฟ้ มปลายทางขึน ้ ยงแฟ้ มเดียว เราก็สามารถใชสู้ ตร
้ มาใชเพี
VLookup ค ้นหาข ้อมูลจากแฟ้ มต ้นทางได ้โดยไม่จําเป็ นต ้องเปิ ดแฟ้ มต ้นทางขึน ้ ้อมกับ
้ มาใชพร
แฟ้ มปลายทางแต่อย่างใด แต่ก็ทําให ้แฟ้ มปลายทางมีขนาดใหญ่ขน
ึ้

รูปแบบหรือ Format ทีใ่ ช ้

ี ทัง้ ชท
การกําหนดรูปแบบให ้กับชท ี พร ้อมกันทีเดียวทุกเซลล์ จะทําให ้แฟ้ มมีขนาดเล็กกว่าการ
กําหนดรูปแบบเพียงบางสว่ นของตาราง เพราะ Excel จะใชวิ้ ธรี ับรู ้ทีเดียวว่าชท
ี นัน
้ ๆใชรู้ ปแบบใด

Copyright of www.ExcelExpertTraining.com 
317 

แต่ถ ้าในตารางมีการกําหนดรูปแบบต่างกันไปในแต่ละสว่ น จะทําให ้ Excel ต ้องรับรู ้ละเอียดมาก


ขึน
้ ว่า พืน ่ ารางสว่ นใดใชรู้ ปแบบใด จึงทําให ้แฟ้ มมีขนาดใหญ่ขน
้ ทีต ึ้

ตามปกติ Excel ได ้กําหนดไว ้ในคําสงั่ Excel Options ให ้กาชอ


่ ง Extend data range formats
่ ชว่ ยให ้เซลล์ข ้อมูลตัวเลขทีใ่ ชงานติ
and formulas ไว ้แล ้วตัง้ แต่ต ้น เพือ ้ ดต่อกันไว ้ตามแนวตัง้
ึ้ ไป สง่ รูปแบบทีก
ตัง้ แต่ 3 เซลล์ขน ่ ําหนดไว ้ใน 3 เซลล์นัน
้ ต่อไปยังเซลล์ท ี่ 4 และเซลล์ตอ
่ ๆไป
ให ้ทันที แล ้วหากมีเซลล์ทส ่ ล ้ว คําสงั่ นีจ
ี่ ร ้างสูตรไว ้ติดต่อกันตามแนวตัง้ 4 เซลล์อยูแ ้ ะชว่ ย
copy สูตรและรูปแบบจากเซลล์ท ี่ 4 ไปยังเซลล์ท ี่ 5 ต่อไปเรือ ่ กัน (ขอให ้ท่องไว ้ว่า
่ ยๆให ้เชน
ครบ 3 ได ้ 4 ครบ 5 ได ้สูตร หมายความว่า เดิมครบ 3 เซลล์ จะได ้รูปแบบต่อในเซลล์ท ี่ 4 แล ้ว
่ ครบ 5 เซลล์ จะได ้ทัง้ สูตรและรูปแบบตามต่อไปให ้เอง) อย่างไรก็ตามคําสงั่ นีจ
พอเริม ้ ะทํางาน
ต่อเมือ
่ ข ้อมูลตามแนวตัง้ ทีบ
่ น ่ ถ ้าบันทึกตัวเลขเอาไว ้ ก็
ั ทึกต่อกันไปเป็ นตัวเลขทุกเซลล์ เชน
ต ้องบันทึกตัวเลขในเซลล์ตอ
่ ไปเท่านัน
้ หากเมือ
่ ใดทีบ
่ น
ั ทึกค่าเป็ นตัวอักษรลงไปในเซลล์ทค
ี่ วร
้ ทิง้ ไปก่อน จึงจะกระตุ ้นให ้คําสงั่ นีท
เป็ นตัวเลข ต ้องลบค่านัน ้ ํางานดังเดิม

สงิ่ ทีผ
่ ลต่อความเร็ว

ในเรือ
่ งความเร็วนีไ
้ ม่ได ้เกีย
่ วข ้องกับความเร็วในการคํานวณของโปรแกรม Excel เท่านัน
้ แต่ยงั
สง่ ผลกระทบต่อความเร็วของมนุษย์ในการใช ้ Excel อีกด ้วย นับตัง้ แต่จะชาหรื
้ อเร็วในการสร ้าง
งาน สร ้างเสร็จแล ้วเมือ ี เวลาแก ้ไขชาหรื
่ นํ ามาแก ้ไขจะต ้องเสย ้ อเร็วเพียงใดกว่าจะแก ้ไขเสร็จ

บางคนใชเวลาสร ี เวลาแก ้ไขนาน
้างแฟ้ มนิดเดียวแต่พอย ้อนกลับมาแก ้ไขแฟ้ มเดิมกลับต ้องเสย
ขึน
้ มาก

สําหรับผู ้สนใจการทําให ้ Excel คํานวณได ้เร็วทีส


่ ด ิ ติดตามไปอ่านบทความทีผ
ุ ขอเชญ ่ มเขียนไว ้
ในหัวข ้อ Excel @ The Maximum Speed ได ้ที่
http://www.excelexperttraining.com/extra/tactic/maxspeed.html สว่ นในบทความนีจ
้ ะ
่ งทีแ
ได ้อธิบายเรือ ่ ปลกไปจากเดิม

ี่ หละต้นเหตุของความชา้ อุย
มนุษย์นแ ้ อ้าย

้ อ
แม ้ยุคนีเ้ ราใชเครื ่ งคอมพิวเตอร์แทนเครือ
่ งคิดเลขกันมากขึน
้ แต่แทนทีเ่ ครือ
่ งคอมพิวเตอร์จะ
ชว่ ยให ้ทํางานได ้เร็วขึน ้
้ หลายๆคนกลับทํางานเสร็จชาลง จนแทบอยากจะย ้อนไปกดปุ่ มบน
เครือ
่ งคิดเลขทีต ้ ้เร็วกว่า ทัง้ นีเ้ นือ
่ นใชได ่ นแปลง ชอบทําอะไรใช ้
่ งจากคนเราไม่ชอบการเปลีย

Copyright of www.ExcelExpertTraining.com 
318 

อะไรทีต ้
่ วั คุ ้นเคยมาก่อน พอจะใชคอมพิ
วเตอร์ก็คด ้
ิ ไม่ออกว่าจะใชโปรแกรมอะไร ฟั งเขามาว่า
ถ ้าเรือ ้
่ งของตัวเลขต ้องใชโปรแกรม ่ งเก็บข ้อมูลต ้องใช ้ Access แล ้วถ ้าข ้อมูลมี
Excel แต่ถ ้าเรือ

ทัง้ ตัวเลขและตัวอักษรล่ะ จะใชโปรแกรมอะไรดี บางคนอาจคิดง่ายๆว่า ถ ้าข ้อมูลมีเลขมากกว่า
ก็ให ้ใช ้ Excel หรือถ ้าข ้อมูลมีตวั อักษรมากกว่าตัวเลข ก็ให ้ใช ้ Access แล ้วกัน


ในประเด็นของการเลือกใชโปรแกรม ้ งต ้นสําหรับคนทีเ่ พิง่ จับ
Excel หรือ Access นี้ ในเบือ
คอมพิวเตอร์ ขอแนะนํ าให ้เลือกใช ้ Excel กับงานทีต
่ ้องการความยืดหยุน ่ ู ้ใชยั้ งไม่
่ หรืองานทีผ
มัน ่ ้องการเก็บไว ้อย่างไร เพราะ Excel มีคําสงั่
่ ใจว่าจะจัดโครงสร ้างหน ้าตาของตารางข ้อมูลทีต
ชว่ ยสําหรับการโยกย ้ายข ้อมูลเตรียมไว ้พร ้อม และเราอยากจะย ้ายตารางไปเก็บไว ้ทีช ี อืน
่ ท ่ แฟ้ ม
่ ก็จะเห็นผลทันทีบนหน ้าจอกับตา แถม Excel ยังชว่ ยแก ้ไขสูตรทีเ่ กีย
อืน ่ วข ้องกับตารางซงึ่ ถูก
ย ้ายให ้เสร็จ แล ้วต่อมาภายหลังพอมีข ้อมูลปริมาณมากขึน
้ เริม
่ มีมาตรฐานของโครงสร ้างตาราง
แน่นอนตายตัวแล ้ว จึงคิดถึง Access

้ เลือกใช ้ Excel สร ้างตารางเก็บข ้อมูลต่อไปสก


ครัน ั พัก คอมพิวเตอร์แสนเร็วของเรากับผู ้ทีใ่ ช ้

Excel ก็จะพร ้อมใจกันกอดคอทํางานชาลงไปเรื
อ ่ ยๆ โดยมีสาเหตุยอดนิยมดังต่อไปนี้

1. ออกแบบตารางเก็บข ้อมูลไม่เป็ น พอเปิ ดแฟ้ มขึน


้ ดู แล ้วงงไปหมดว่าข ้อมูลอะไรอยู่
ตรงไหน
2. เก็บข ้อมูลทีเ่ กีย
่ วข ้องกับวันที่ แต่วน ่ งึ่ เก็บบันทึกไว ้ ไม่สามารถนํ ามาใชคํ้ านวณต่อได ้
ั ทีซ
3. เก็บข ้อมูลซํ้าซอนกั
้ ี เวลาหาตําแหน่งเซลล์ให ้พบ
น พอจะแก ้ไขเป็ นข ้อมูลใหม่ต ้องเสย
ก่อนว่าอยูท
่ ช ี ใดแฟ้ มใด
ี่ ท
4. แยกข ้อมูลทีเ่ ก็บไว ้ในตารางเดียวกันออกจากกันไม่ได ้ ต ้องฝื นบันทึกข ้อมูลต่อไปเรือ
่ ยๆ
นับพันนับหมืน
่ บรรทัด
5. สร ้างสูตรยากๆยาวๆแบบฉันเองคนสร ้างคนเดียวเท่านัน
้ ทีจ
่ ะแกะออก
6. เลือกใชสู้ ตรไม่เป็ น ชอบใชสู้ ตรสน
ั ้ ๆทีค
่ นชอบ แต่ Excel ไม่ชอบเพราะโปรแกรมจะ

ทํางานชาลง
ี เวลารอ
7. แยกตารางสูตรทีไ่ ม่จําเป็ นต ้องคํานวณพร ้อมกันออกจากกันไม่ได ้ ทําให ้ต ้องเสย
การคํานวณสูตรซํ้าโดยไม่จําเป็ น
8. ไม่รู ้จักแยกค่าตัวแปรทีอ
่ าจเปลีย
่ นแปลงภายหลังไว ้นอกสูตร
ี ทีใ่ ชคํ้ านวณเรือ
9. สร ้างชท ่ งเดียวกันซํ้ากันเต็มไปหมด แต่ละชท
ี มีตารางหน ้าตาเดียวกัน
่ ํ ามาใชคํ้ านวณ
ต่างกันแต่คา่ ทีน
10. เลือกใช ้ VBA กับงานทีย
่ ังไม่ควรใช ้ VBA แม ้ VBA จะชว่ ยให ้เสร็จงานเร็วขึน
้ แต่ก็ไม่ใช ่
เร็วขึน
้ ได ้เต็มทีอ
่ ย่างทีค
่ วร

Copyright of www.ExcelExpertTraining.com 
319 

สาเหตุยอดนิยมเหล่านีแ
้ หละทีท ้
่ ําให ้เราได ้ผลลัพธ์จาก Excel ชาลง แต่โดยทัว่ ไปผู ้ใช ้ Excel ที่
ไม่เคยนํ าผลงานไปเปรียบเทียบกับผู ้อืน
่ มักจะหลงภาคภูมใิ จในผลงานของตน และเข ้าใจผิดไป
ว่าตนได ้ใช ้ Excel ชว่ ยสร ้างผลงานทีเ่ ร็วขึน
้ ดังนัน
้ การให ้พืน ่ งแนวทางการใช ้ Excel
้ ฐานในเรือ
ทีด
่ แ
ี ละถูกต ้องจึงเป็ นเรือ ่ ําคัญมาก
่ งทีส

แนวทางการใช ้ Excel ทีด


่ แ
ี ละถูกต้อง

• ่ ะใช ้ Excel ให ้ได ้ผลงานมากขึน


เราต ้องมุง่ หวังทีจ ้ และเร็วขึน
้ แบบคอมพิวเตอร์ นั่นคือ
ต ้องสามารถนํ าแฟ้ มทีส ้ ํ้าแล ้วซํ้าอีก โดยไม่จําเป็ นต ้องแก ้ไขสูตร
่ ร ้างไว ้แล ้วกลับมาใชซ
หรือโครงสร ้างตารางทีส
่ ร ้างไว ้แล ้วอีกเลย
• ้ บข ้อมูล(ตัวเลขและหรือตัวอักษร)
แยกโครงสร ้างตารางเป็ น 3 ประเภท คือ ตารางทีใ่ ชเก็
ตารางสําหรับสร ้างสูตรคํานวณ และตารางสําหรับแสดงเป็ นรายงาน
• ั วันหนึง่ ข ้อมูลในแฟ้ มจะถูกเก็บไว ้จนทําให ้แฟ้ มใหญ่และ Excel
พึงระลึกไว ้เสมอว่า สก

ทํางานชาลง ดังนัน
้ ต ้องเตรียมโครงสร ้างตารางทีพ
่ ร ้อมต่อการโยกย ้ายไปเก็บไว ้ทีแ
่ ฟ้ ม
อืน

• ้ บข ้อมูลต ้องจัดเก็บไว ้ในลักษณะโครงสร ้างฐานข ้อมูลที่
ข ้อมูลทีเ่ ก็บไว ้ในตารางทีใ่ ชเก็
สามารถนํ าไปใชกั้ บเมนู Data หรือใชกั้ บสูตรพวก Lookup ได ้ทันที
• ข ้อมูลทีเ่ ป็ นตัวเลข ต ้องมีคา่ เป็ นตัวเลขอย่างแท ้จริง ซงึ่ มีลก
ั ษณะทีต ิ ขวาของ
่ ้องชด
เซลล์โดยไม่จําเป็ นต ้องใช ้ Format
• ห ้ามพิมพ์ข ้อมูลใดๆซํ้าโดยไม่จําเป็ น แต่ให ้ใชสู้ ตรนํ าค่าสง่ ต่อไปใชเมื
้ อ่ ต ้องการใช ้
้ ซํ้า
ข ้อมูลนัน
• ี หนึง่ ๆ พยายามสร ้างสูตรเดียวซงึ่ สามารถนํ าไปใชได
ในชท ้ ้กับทุกตําแหน่งเซลล์ในชท

นัน
้ ๆ ไม่วา่ จะมีการแก ้ไขทีท
่ ําให ้ตําแหน่งโครงสร ้างตารางเปลีย
่ นไปอย่างไรก็ตาม
• สูตรทีส
่ ร ้างขึน ้ กการคํานวณทีง่ า่ ยต่อการทําความเข ้าใจของตนเองและผู ้อืน
้ ต ้องใชหลั ่
และเมือ
่ ทีเงือ
่ นไขเปลีย
่ นแปลงไปจากเดิมก็ไม่จําเป็ นต ้องแก ้ไขโครงสร ้างสูตรให ้ต่างไป
จากเดิมมากนัก
• ต ้องใชสู้ ตรปรับค่าในเซลล์ให ้ได ้ค่าถูกต ้องตามทีต
่ ้องการก่อนแล ้วจึงใชคํ้ าสงั่ Format
ปรับการแสดงผลของค่านัน
้ ในภายหลัง
• ่ า่ คงทีใ่ ดๆไว ้อย่างเด็ดขาด
ในโครงสร ้างสูตร ห ้ามใสค

Copyright of www.ExcelExpertTraining.com 
320 

• แทนทีจ
่ ะสร ้างสูตรยากๆยาวๆทีม ี ว่ นการคํานวณทีซ
่ ส ่ ํ้ากันลงไปในตารางนับพันนับหมืน

เซลล์ ซงึ่ ทําให ้แฟ้ มใหญ่และคํานวณชาลง
้ ควรหาทางกระจายโครงสร ้างสูตรออกเป็ น
ั ้ ๆหลายๆเซลล์แต่ใชการคํ
สูตรสน ้ านวณครัง้ เดียว เพือ
่ ทําให ้แฟ้ มเล็กลงและคํานวณเร็ว
ขึน

• อย่าลืมว่า ตารางทีเ่ ป็ นสูตร จะมีขนาดแฟ้ มใหญ่กว่าตารางทีเ่ ป็ นตัวเลขหรือตัวอักษร
ดังนัน ่ ะใชสู้ ตรคํานวณค่าใดๆทีเ่ ป็ นค่าคงที่ เชน
้ แทนทีจ ่ เลขลําดับ แนะนํ าให ้ใชตารางที
้ ่
เป็ นตัวเลขผลจากการคํานวณแทนไปเลยดีกว่า
• ในกรณีทต
ี่ ้องสร ้างสูตรทีอ
่ ้างอิงกับตารางแนวนอนแนวตัง้ แนะนํ าให ้เลือกตารางตาม
แนวนอนก่อนตารางแนวตัง้ เพือ
่ สร ้างมาตรฐานวิธส
ี ร ้างสูตรของตนเอง และนอกจากนัน

่ Index หรือ Offset จะใชตํ้ าแหน่งอ ้างอิง
ยังสอดคล ้องกับโครงสร ้างของสูตร Excel เชน
ตามแนวนอนก่อนแนวตัง้ เสมอ
• หากสร ้างสูตรทีต ้ ํ้าแล ้วซํ้าอีก ควรตัง้ ชอ
่ ้องนํ ามาใชซ ื่ ตําแหน่งเซลล์ (Range name) ที่
ื่ ถึงทีไ่ ปทีม
สอ ่ าของสูตร แทนการอ ้างอิงกับตําแหน่งอ ้างอิงโดยตรง
• ควรแยกสูตรทีไ่ ม่จําเป็ นต ้องคํานวณพร ้อมกันออกเป็ นแฟ้ มแยกจากกัน (หรืออีกนัยหนึง่
ให ้เก็บเฉพาะสูตรทีต
่ ้องคํานวณพร ้อมกันเท่านัน
้ ไว ้ในแฟ้ มเดียวกัน) เพือ
่ ทําให ้เรา
สามารถเลือกเปิ ดแฟ้ มตามขอบเขตการคํานวณทีช ั เจน และทําให ้แฟ้ มมีขนาดเล็กลง
่ ด
• ให ้เลือกใช ้ VBA เฉพาะเมือ
่ ต ้องการใช ้ Excel ทีเ่ หนือกว่าปกติจากสูตรและเมนูคําสงั่ ที่
้ ้ต่อเนือ
ทําได ้ และรหัส VBA ทีใ่ ชต้ ้องสามารถใชได ่ งไปตลอดแม ้โครงสร ้างตารางจะ
เปลีย
่ นแปลงต่างไปจากเดิมก็ตาม
• ี ได ้อย่างก็ต ้องเสย
ทุกอย่างมีได ้ก็ต ้องมีเสย ี อย่าง ขอให ้พิจารณาเปรียบเทียบข ้อดี
ี ก่อนทีจ
ข ้อเสย ่ ะสร ้างงาน เพือ
่ ให ้เหมาะสมกับเงือ
่ นไขและสภาพแวดล ้อมของการ
ทํางาน

แนวทางการลดความอ้วน

ี เต็มทัง้ หมดทุก row แล ้ว จะนํ าข ้อมูลรายการ


ลองคิดดูวา่ ถ ้าเราเก็บรายการข ้อมูลลงไปในชท
ใหม่ไปเก็บไว ้ทีไ่ หน จะเริม ี ใหม่ในแฟ้ มเดิมหรือจะเปิ ดแฟ้ มใหม่?
่ ต ้นเก็บไว ้ในชท

ผู ้ใช ้ Excel สว่ นมากชอบเก็บข ้อมูลไว ้เรือ ี เดิมแฟ้ มเดิมเพราะสะดวกในการค ้นหา


่ ยๆในชท
เรียกใช ้ ซงึ่ หากใชคอมพิ
้ วเตอร์รน
ุ่ ใหม่มค
ี วามเร็วสูงก็ไม่ต ้องรอนานนัก แต่ถ ้าเก็บข ้อมูลไว ้ใน
แฟ้ มเดิมต่อไปเรือ
่ ยๆ สุดท ้ายเจ ้าเครือ ้
่ งคอมพิวเตอร์ทวี่ า่ ทํางานเร็วก็จะทํางานชาลงช ้
าลง นีเ่ ป็ น

Copyright of www.ExcelExpertTraining.com 
321 

เพราะเราชอบเก็บข ้อมูลไว ้ในแฟ้ มเดิมต่อกันไป และก็ไม่เคยมีความจําเป็ นต ้องใชข้ ้อมูลทัง้ หมด


ั ครัง้ เดียว
ทีเ่ ก็บไว ้พร ้อมกันสก

แล ้วสูตรคํานวณทีส
่ ร ้างไว ้ มันต ้องถูกนํ ามาคํานวณใหม่พร ้อมกันทุกครัง้ ทีม
่ ข
ี ้อมูลเปลีย
่ นแปลง
ไปแค่เซลล์เดียวหรือไม่ สูตรทีค ิ ค ้าหรือค่าใชจ่้ ายซงึ่ มีคา่ คงที่ ซงึ่ นานๆจึงจะ
่ ํานวณหาต ้นทุนสน
มีคา่ เปลีย ั ที จําเป็ นหรือทีร่ วมตารางคํานวณค่าคงทีเ่ หล่านัน
่ นแปลงไปสก ้ ไว ้ในแฟ้ มซงึ่ มีสต
ู ร
คํานวณยอดกําไรจากการขาย

จากนัน
้ เมือ
่ ถึงคราวต ้องนํ าข ้อมูลนับพันนับหมืน
่ บรรทัด หรือตารางรายงานทีต
่ ้องพิมพ์นับร ้อยนับ
พันหน ้ามาแสดงให ้ดูนัน ้
้ เราใชสายตาดู
ตารางทัง้ หมดหรือกระดาษทุกแผ่นทีพ
่ ม
ิ พ์ออกมาพร ้อม
กันทุกหน ้าหรือไม่?

ผู ้สร ้างงานต ้องพิจารณาถึงประเด็นดังกล่าวข ้างต ้นไว ้เสมอ ต ้องพร ้อมทีจ


่ ะแยกข ้อมูลทีเ่ ก็บไว ้ใน
แฟ้ มไปเก็บไว ้ในแฟ้ มอืน ่ ําเป็ นต ้องเก็บไว ้ใช ้ เพือ
่ ข ้อมูลใดทีจ ่ หาผลลัพธ์ทต
ี่ ้องการจากการ
คํานวณร่วมกันทุกครัง้ ก็ควรจัดเก็บไว ้ในแฟ้ มเดียวกับตารางทีเ่ ป็ นสูตรคํานวณ แต่ถ ้าไม่
จําเป็ นต ้องใชคํ้ านวณพร ้อมกันก็ควรแยกออกเป็ นแฟ้ มต่างหากทําให ้แฟ้ มมีขนาดเล็กลง แล ้วจึง
ใชสู้ ตร link ข ้อมูลข ้ามแฟ้ มมาใชคํ้ านวณต่อตามแต่วา่ เราจะเลือกเอาข ้อมูลมาใชจากแฟ้
้ มไหน
ซงึ่ จะชว่ ยให ้ใชตารางสู
้ ตรหน ้าเดียวตารางเดียวแต่สามารถคํานวณผลลัพธ์ได ้ตามแต่ข ้อมูลที่
link มาใชอี้ กต่อหนึง่

ี ให ้ใชสู้ ตร Indirect เลือกนํ าข ้อมูลจากชอ


ในกรณีท ี่ link ข ้อมูลข ้ามชท ื่ ชท
ี ทีต ้
่ ้องการมาใชใน
ี คํานวณ สว่ นกรณีท ี่ link ข ้ามแฟ้ ม ให ้ใชคํ้ าสงั่ Change Source เพือ
ชท ื่ แฟ้ มทีต
่ เลือกชอ ่ ้องการ

มาใชในแฟ้ มคํานวณ

Copyright of www.ExcelExpertTraining.com 
322 

ผลจากสูตรทีม
่ ต
ี อ
่ ขนาดแฟ้มและความเร็วในการคํานวณ

ขอนํ าผลการทดสอบจากการใชสู้ ตรคํานวณหลายหลายประเภทมาเล่าสูก


่ น
ั ฟั ง และขอให ้ลอง
หาข ้อสรุปกันเองว่า สูตรแบบไหนดีกว่ากันและเพราะเหตุใด (โดยการทดสอบนีไ
้ ด ้จากการสร ้าง
สูตรลงไปในตารางขนาดใหญ่ตงั ้ แต่เซลล์ D1:D55,000 และใช ้ Excel 2003 กับ Pentium D
3.0 GHz)

้ ต
กรณีใชส ู ร 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 

• สูตร SumProduct แบบใสเ่ ครือ ้


่ งหมายคูณทุกตัว ใชเวลา 2 นาที 42 วินาที / ขนาด

แฟ้ ม 5,166 KB เชน
=SumProduct((IDRange=ID)*(KeyRange=Key)*NumRange)
• สูตร SumProduct แบบใสเ่ ครือ ้
่ งหมายคูณ 1 ใชเวลา 2 นาที 50 วินาที / ขนาดแฟ้ ม
่ =SumProduct((IDRange=ID)*1,(KeyRange=Key)*1,NumRange)
5,171 KB เชน

้ ต
กรณีใชส ู ร 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 ทีข
่ าดความรู ้พืน
้ ฐาน และขาดวินัยในการสร ้างงาน สร ้างแฟ้ มงานทีจ
่ ะย ้อนกลับมาทํา
ร ้ายตัวเองในทีส
่ ด

แต่ถ ้าต ้องเลือกระหว่างขนาดแฟ้ มหรือความเร็วในการคํานวณ ในความคิดเห็นสว่ นตัวขอเลือก


ความเร็วในการคํานวณว่ามีความสําคัญมากกว่าเรือ
่ งของขนาด เพราะปั ญหาเรือ
่ งขนาดแฟ้ มเป็ น
ปั ญหาทีแ ้
่ ก ้ไขได ้ไม่ยาก แค่หาทางแยกตารางทีไ่ ม่จําเป็ นต ้องถูกเรียกใชงานพร ้อมกันออกไป
เก็บเป็ นแฟ้ มต่างหากก็ทําให ้แฟ้ มเล็กลงเรียบร ้อยแล ้ว และแม ้จะแยกตารางออกเป็ นแฟ้ มเล็กๆ
ื่ ได ้หลายชนิด ไม่วา่ จะเป็ น USB Drive, CD, DVD,
ไม่ได ้ เรายังสามารถจัดเก็บแฟ้ มลงไปในสอ
หรือฮาร์ดดิสก์ ซงึ่ ปั จจุบน
ั มีความจุมากขึน
้ กว่าแต่กอ
่ นมากในขณะทีม
่ รี าคาลดลง

สว่ นประเด็นในเรือ ้ แม ้ถือว่าสําคัญกว่าเรือ


่ งความเร็วของการคํานวณนัน ่ งขนาดแฟ้ ม แต่ความเร็ว
เป็ นเรือ ึ เป็ นเรือ
่ งของความรู ้สก ่ ะหาเกณฑ์มาวัดว่าอย่างนีเ้ ร็วหรือชา้ มักใชความรู
่ งยากทีจ ้ ึ
้สก
่ ้องนั่งรอคอยคําตอบเป็ นตัวชวี้ ด
ของคนทีต ั ถ ้ายังรอกันได ้ ก็ยงั ไม่เดือดร ้อนหาทางอืน
่ ทีจ
่ ะทําให ้
แฟ้ มคํานวณเร็วขึน
้ ดังนัน
้ ประเด็นเรือ
่ งความเร็วในการคํานวณ จึงต ้องถือเป็ นภาระหน ้าทีข
่ อง
ี่ นเพิง่ สร ้างใหม่ลงไปในตาราง สง่ ผลให ้แฟ้ ม
ี ต
ผู ้สร ้างงาน ต ้องคอยติดตามเสมอว่าสูตรหรือวิธท
งานนัน ้ าเดิมอย่างผิดสงั เกตหรือไม่ และต ้องลองสร ้างสูตรหลายๆแบบที่
้ คํานวณชาลงไปกว่

สามารถให ้คําตอบเดียวกัน แต่ใชเวลาคํ านวณเร็วทีส ุ ซงึ่ ควรพิจารณาผลในระยะยาวทีม
่ ด ่ ต
ี อ

ตัวเองหรือผู ้อืน ้ มงานเดียวกันด ้วยว่า ทุกคนสามารถใชแฟ้
่ ทีร่ ว่ มใชแฟ้ ้ มงานได ้สะดวก เมือ

ต ้องการย ้อนกลับมาปรับปรุงแก ้ไข ต ้องสามารถทําได ้ง่ายในระยะเวลารวดเร็ว แม ้จะทําให ้แฟ้ มมี
ขนาดใหญ่ขน ้
ึ้ และคํานวณชาลงก็ ตาม

Copyright of www.ExcelExpertTraining.com 
325 

การออกแบบโครงสร้างตารางคํานวณ

ในโปรแกรม Microsoft Excel มีองค์ประกอบอยูส


่ องอย่างแทบไม่เปลีย
่ นแปลงเลยในหลายยุค
หลายสมัยทีผ ่ ใดก็ตามยังคงมีสงิ่ นีใ้ ชกั้ นเรือ
่ า่ นไป ไม่วา่ จะเป็ น Excel รุน ่ ยมา สงิ่ ทีว่ า่ นีก
้ ็คอ

ตารางทีป ี ลาย row หลาย column และสูตรสําเร็จรูปอีกหลายร ้อยสูตรติด
่ ระกอบด ้วยเซลล์มห
มาพร ้อมกับตัวโปรแกรม ซงึ่ ผู ้ใดสามารถนํ าตารางและสูตรมาใชร่้ วมกันได ้เป็ นอย่างดี จะทําให ้

ใชโปรแกรม Excel ทีม
่ รี าคาไม่กห
ี่ มืน ่ กว่าโปรแกรมสําเร็จรูปราคาแพง
่ บาททํางานได ้ยืดหยุน
เป็ นแสนเป็ นล ้านบาททีเดียว

บทความนีจ ้
้ ะแนะนํ าคุณให ้หาทางใชตาราง ่ ใชคํ้ านวณหาผลลัพธ์ใน
Excel อย่างสร ้างสรรค์ เพือ
ปั ญหาต่างๆได ้สารพัด เพียงแค่นําตารางและสูตรสําเร็จรูปของ Excel มาใชร่้ วมกันอย่างมี
้ เป็ นตอน และอย่างมีเหตุผล จะชว่ ยให ้คุณได ้รับประโยชน์มากขึน
หลักการ อย่างเป็ นขัน ้ กว่าแต่

ก่อน เชน

1. สามารถคํานวณหาคําตอบในปั ญหาทีไ่ ม่เคยคิดว่า Excel จะทําได ้มาก่อน

ั ้ ลง และสามารถแก ้ไขสูตรได ้ง่ายและรวดเร็ว


2. สูตรสน

3. สามารถตรวจสอบความถูกต ้องของการคํานวณในทุกขัน
้ ตอน

4. สามารถขยายขนาดหรือเคลือ ่ นย ้ายตําแหน่งเซลล์ เพือ ้ ํ้าใน


่ นํ าตารางไปใชซ
เซลล์อน ี อืน
ื่ ชท ่ หรือแฟ้ มอืน
่ ได ้ทันที


5. สามารถนํ าตารางไปใชในงานคํ านวณอืน ้ กการเดียวกันได ้ทันที หรือ
่ ทีใ่ ชหลั
หลังจากผ่านการปรับปรุงเพียงเล็กน ้อย


6. สามารถนํ าตารางไปใชงานร่วมกับเมนูคําสงั่ ของ Excel ได ้ทุกเมือ
่ แม ้แต่การนํ า
ข ้อมูลไปแสดงผลต่อในรูปกราฟ

7. แฟ้ มคํานวณเร็วและมีขนาดแฟ้ มเล็กลง แม ้จะมีตารางขนาดใหญ่ก็ตาม

ตารางคํานวณคืออะไร

เพือ
่ ทําให ้เข ้าใจตรงกัน จึงขอให ้คําจํากัดความในความหมายของตารางคํานวณก่อนว่า ตาราง
คํานวณในบทความนีม
้ ไิ ด ้หมายถึงพืน
้ ทีต
่ ารางว่างๆทีค
่ ณ
ุ จะเห็นทันทีบนจอเมือ
่ เปิ ดโปรแกรม
Excel ขึน ้
้ มาใชงาน แต่ตารางคํานวณในทีน
่ ม ี วามหมายถึงตารางซงึ่ คุณสร ้างขึน
ี้ ค ้ มาเองโดยมี
ข ้อมูลบันทึกไว ้แล ้ว อาจเป็ นข ้อมูลตัวเลข ตัวอักษร หรือสูตรใดๆก็ได ้ ทัง้ นีม
้ เี จตนาเพือ ้ น
่ ใชพื ้ ที่

Copyright of www.ExcelExpertTraining.com 
326 

เซลล์หรือตารางนัน
้ ในการคํานวณหาคําตอบทีค
่ ณ ่ ตารางคํานวณค่าแรง
ุ ต ้องการโดยเฉพาะ เชน
ทีต
่ ้องจ่ายให ้ลูกจ ้างทํางานในแต่ละกะ ตารางคํานวณยอดต ้นทุนขายแบบ Fist-in First-
ิ ค ้าทีต
out ตารางคํานวณหาจํานวนสน ่ ้องวางแผนสงั่ ผลิต (Material Requirements Planning)
หรือตารางคํานวณเพือ
่ วางแผนการลงทุน (Feasibility Study) เป็ นต ้น

ื ว่าเป็ นตารางคํานวณในบทความนี้ ได ้แก่ ตารางฐานข ้อมูลซงึ่ ใชบั้ นทึกข ้อมูลดิบ


ตารางทีไ่ ม่ถอ
(ไม่มส
ี ต
ู ร) ตารางรายงานทีจ
่ ัดโครงสร ้างเพือ
่ พิมพ์ในกระดาษหรือแสดงผลให ้เห็นบนจอ หรือ
ิ ากการใชคํ้ าสงั่ บนเมนู SubTotals หรือ Pivot
ตารางที่ Excel จัดโครงสร ้างให ้เองอัตโนมัตจ
Table

ตารางคํานวณโดยทัว่ ไปประกอบด ้วยพืน ่ ารางย่อย 2 สว่ น สว่ นแรกเป็ นพืน


้ ทีต ่ ารางสําหรับ
้ ทีต

เก็บค่าตัวแปรทีใ่ ชในการคํ านวณ และพืน ่ ารางอีกสว่ นหนึง่ ใชส้ ําหรับสร ้างสูตรคํานวณซงึ่ รับ
้ ทีต
ค่ามาจากค่าตัวแปรในพืน ่ ว่ นแรกนั่นเอง โดยผู ้ใชงานจะใช
้ ทีส ้ ้ น
พื ่ ว่ นแรกในการพิมพ์คา่ ตัว
้ ทีส
้ จะแสดงคําตอบจากการคํานวณให ้เห็นในตารางสว่ นทีเ่ ป็ นสูตรคํานวณ
แปรตัวใหม่ลงไป จากนัน

ข้อควรพิจารณาก่อนเริม
่ สร้างตารางคํานวณ

สมมติวา่ คุณกําลังหาทางคํานวณค่าแรงทีต
่ ้องจ่ายให ้ลูกจ ้างทํางานในแต่ละกะ จะต ้องคิด
พิจารณาอะไรบ ้าง

1. กําหนดขอบเขตของความต ้องการของคุณทีเ่ ป็ นไปได ้ว่ามีอะไรบ ้าง


เชน ่ ต ้องการใชตารางในช
้ ี หนึง่ เพือ
ท ่ คํานวณค่าแรงของพนักงานคนหนึง่ ซงึ่
ทํางานในวันหนึง่ หรือต ้องการใชตารางในช ้ ี หนึง่ เพือ
ท ่ คํานวณค่าแรงของ
พนักงานคนหนึง่ ซงึ่ ทํางานในเดือนหนึง่ โดยแสดงเป็ นรายวันต่อเนือ ่ งกันไป หรือ
ต ้องการคํานวณค่าแรงของพนักงานทุกคนในวันหนึง่ ๆ หรือต ้องการคํานวณ
ค่าแรงให ้กับพนักงานทุกคนในเดือนหนึง่ โดยแสดงเป็ นรายวันต่อเนือ ่ งกันไป
หรือมีความต ้องการอืน ่ ๆอีกบ ้างไหม ทัง้ นีเ้ พือ
่ หาทางสร ้างตารางคํานวณเพียง
ตารางเดียวแต่ต ้องมีความยืดหยุน ่ สามารถนํ าไปใชคํ้ านวณได ้ทุกกรณีตามทีค ่ ณ

ต ้องการ(ทัง้ ทีเ่ คยต ้องการในอดีตและอาจจะมีมากขึน ้ ในอนาคต)

2. ค ้นหาเงือ ่ วข ้องในการคํานวณ ซงึ่ โดยทัว่ ไปผู ้ทีค


่ นไขทัง้ หมดทีเ่ กีย ่ ลุกคลีกบ ั การ
บริหารการจ ้างแรงงานย่อมต ้องมีเงือ ่ นไขทีต ้
่ นนํ าไปใชในงานอยู แ
่ ล ้ว เชน ่
เงือ
่ นไขเกีย ่ วกับชว่ งเวลาหรือกะทีก ่ ําหนดให ้ทํางานในแต่ละวันแบ่งเป็ นกีช ่ ว่ ง แต่
ละชว่ งใชเวลาทํ
้ างานมากน ้อยเพียงไร แบ่งเป็ นชว่ งเวลาหยุดพักกีค ่ รัง้ แต่ละครัง้
ให ้หยุดพักได ้นานเท่าใด ลูกจ ้างต ้องตอกบัตรหรือบันทึกการเข ้าทํางานไว ้
อย่างไร บริษัทมีเงือ ่ นไขในการจ่ายค่าจ ้างแรงงานเป็ นอย่างไร ซงึ่ เงือ ่ นไขเหล่านี้
จะต ้องหาทางนํ ามาใชในการคํ้ านวณ

Copyright of www.ExcelExpertTraining.com 
327 

3. ในอดีตจนถึงปั จจุบน ั ใชวิ้ ธก


ี ารคํานวณค่าแรงอย่างไร มีขน ั ้ ตอนการคํานวณที่
ชดั เจนเป็ นมาตรฐานทีใ่ ชกั้ นได ้ตลอดมาหรือไม่ หรือมีกรณีพเิ ศษใดบ ้างทีท ่ ําให ้
ต ้องคํานวณวิธอี น
ื่ ต่างจากทีเ่ ป็ นมาตรฐานนัน ้
้ ให ้เก็บรวบรวมตัวเลขทีใ่ ชในแต่ ละ
ชว่ งแต่ละกรณีเอาไว ้เพือ่ นํ ามาใชเป็้ นตัวอย่างสร ้างตารางคํานวณใน Excel และ
เพือ ้ ยบเทียบผลคํานวณทีเ่ กิดขึน
่ ใชเปรี ้ ว่าตรงกันหรือไม่

4. ค ้นหาความเป็ นไปได ้ทุกทางทีล ู จ ้างคนหนึง่ จะเข ้างานในชว่ งเวลาทีก


่ ก ่ ําหนด ซงึ่
ในกรณีปัญหาการเข ้างานนีพ ้ บว่ามีโอกาสความเป็ นไปได ้ทีจ ่ ะมีชว่ งเวลาทํางาน
ซงึ่ สม
ั พันธ์กบ
ั ชว่ งเวลาทีก่ ําหนดหรือกะหนึง่ ๆถึง 7 กรณี เชน ่ ถ ้าสมมติวา่
กําหนดให ้กะทํางานจาก 8:00 ถึง 10:00 น. ลูกจ ้างสามารถมีชว่ งทํางานตรงกับ
กะ(8:00-10:00) อยูภ ่ ายในกะ(8:30-9:00) คร่อมกะทัง้ ก่อนและหลัง(7:00-
12:00) คร่อมกะเพียงชว่ งเริม ่ งาน(7:00-9:00) คร่อมกะเพียงชว่ งเลิกงาน(9:00-
12:00) นอกกะชว่ งก่อนกะ(6:00-7:00) และนอกกะชว่ งหลังกะ(11:00-12:00)
ซงึ่ คุณจะต ้องหาทางคิดสูตรเพียงสูตรเดียวให ้สามารถคํานวณได ้ครบทัง้ 7 กรณี

5. ขอให ้ยึดหลักว่า อย่าพยายามคิดหาสูตรลัดเพือ ่ คํานวณหาคําตอบให ้แล ้วเสร็จ



โดยใชเซลล์ สต
ู รเพียงเซลล์เดียว เพราะนอกจากสูตรจะต ้องยาวเหยียดซอนสู ้ ตร
กันหลายชน ั ้ จนแกะแทบไม่ออกแล ้ว ยังอาจเป็ นไปไม่ได ้เลยทีจ
่ ะคิดหาสูตร
ขึน
้ มาใชได้ ้ และคุณอาจป่ วยเป็ นโรคกระเพาะเพราะมัวแต่คด ิ สูตรอยูท
่ งั ้ วันทัง้ คืน

6. แทนทีจ ่ ะคิดสูตรลัดสูตรเดียวเซลล์เดียว ขอให ้แบ่งการคํานวณออกเป็ นขัน ้ ๆ แล ้ว


หาทางใชสู้ ตรสําเร็จรูปที่ Excel มีอยูใ่ ห ้ได ้ก่อน แต่หากไม่มส ี ต ู รสําเร็จรูปทีห่ า
คําตอบได ้โดยตรง คุณต ้องหาทางนํ าสูตรสําเร็จรูปทีม ี าใชร่้ วมกันโดยอาจนํ ามา
่ ม

ซอนสู ้
ตรกันในเซลล์เดียว หรือใชเซลล์ แยกคํานวณทีละขัน ้ แล ้วจึงนํ าผลลัพธ์ท ี่
ได ้จากเซลล์หนึง่ สง่ ไปคํานวณต่อในสูตรของอีกเซลล์หนึง่ กลายเป็ นทีม ่ าของ
ตารางคํานวณนั่นเอง

7. ลองค ้นหาวิธก ี ารคํานวณจากอินเตอร์เน็ ต เชน ่ ค ้นหาจาก Google เพือ ่ เรียนรู ้จาก


ตัวอย่างของคนอืน ่ คุณอาจโชคดีได ้ตัวอย่างทีต ่ รงตามทีค
่ ณุ ต ้องการ สามารถ
นํ าไปใชต่้ อได ้เลย หรือแค่นําไปดัดแปลงเพียงเล็กน ้อยก่อนก็ใชกั้ บงานของคุณ
ได ้แล ้ว ซงึ่ แม ้ว่าจะได ้ตัวอย่างไม่ตรงกับสงิ่ ทีต
่ ้องการก็ตาม แต่ตวั อย่างเหล่านัน ้
น่าจะเป็ นแนวทางให ้คุณได ้คิดพิจารณาและเกิดมุมมองทีก ่ ว ้างขวางและชด ั เจน
กว่าเดิม

ขนตอนการสร้
ั้ างตารางคํานวณ

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


่ นอืน
้ ็ถงึ ประเด็นสําคัญว่าพอเปิ ดโปรแกรม Excel ขึน
ก่อนแล ้วบ ้าง คราวนีก ้ มาแล ้ว คุณจะเริม
่ ต ้น
ออกแบบตารางกันอย่างไรดี ซงึ่ ลักษณะของตารางคํานวณนีเ่ องทีจ
่ ะชใี้ ห ้เห็นฝี ไม ้ลายมือว่าใคร
เยีย ั หลังหนึง่ แล ้ว ข ้อพิจารณาทีผ
่ มยุทธ์กว่ากัน ถ ้าเทียบกับการสร ้างบ ้านสก ่ า่ นไปเป็ นเพียงแค่

Copyright of www.ExcelExpertTraining.com 
328 

ื้ อุปกรณ์กอ
การออกแบบคร่าวๆและเตรียมซอ ่ สร ้าง หิน ทราย ปูนซเิ มนต์ เตรียมไว ้ไม่ให ้ขาด
ไม่ให ้เกินกว่าความจําเป็ น ขัน
้ จากนีเ้ ป็ นหน ้าทีข
่ องสถาปนิกและวิศวกรทีจ
่ ะต ้องลงมือก่อสร ้าง
บ ้านของจริงให ้สวยหรู ดูด ี อยูส
่ บาย อากาศถ่ายเทสะดวก และสามารถตกแต่งต่อเติมให ้น่าอยู่
ไปชวั่ ลูกชวั่ หลาน

ก่อนอืน ่ ู ้ใช ้ Excel ทัว่ ไปมักคิดออกแบบตาราง


่ ผมจําเป็ นต ้องขอเตือนให ้ทราบข ้อผิดพลาดทีผ
้ มพ์ออกไปเป็ น
อย่างรวบรัดเกินไป โดยการพยายามนําตารางคํานวณไปรวมกับตารางทีใ่ ชพิ
ี่ ้องการบนหน ้าจอคอมพิวเตอร์ไว ้เป็ นตารางเดียวกัน ซงึ่ ความคิด
รายงานหรือแสดงผลลัพธ์ทต
่ นีจ
เชน ้ ะกลายเป็ นอุปสรรคสําคัญทําให ้ไม่สามารถใชเซลล์
้ ตอ่ เนือ
่ งกันเพือ
่ จัดการคํานวณทีละ
ลําดับ จึงขอแนะนํ าให ้คิดแยกตารางคํานวณออกเป็ นพืน
้ ทีต ้ มพ์
่ า่ งหากแยกจากตารางทีใ่ ชพิ
ี พืน
รายงาน แม ้ต ้องทําให ้เสย ้ ทีเ่ ซลล์มากขึน ี หลายๆชท
้ โดยอาจต ้องแยกออกเป็ นชท ี แต่จะชว่ ย
ทําให ้สามารถออกแบบโครงสร ้างตารางคํานวณได ้อย่างอิสระ แล ้วต่อเมือ
่ ตารางคํานวณนี้
สามารถคํานวณหาคําตอบได ้ตามทีต
่ ้องการแล ้ว จึงค่อยนํ าผลลัพธ์ทไี่ ด ้ link ไปประกอบกันเป็ น
ตารางรายงานในทีส
่ ด

้ ฐานของตารางคํานวณ ประกอบด ้วยสว่ นทีเ่ ป็ นพืน


โครงสร ้างพืน ่ ารางสําหรับรับค่าตัวแปร
้ ทีต
และพืน ่ ารางสําหรับสร ้างสูตรคํานวณ โดยให ้ยึดหลักว่าสูตรทีส
้ ทีต ่ ร ้างขึน
้ ในตารางคํานวณนัน

หากเป็ นไปได ้ขอให ้คิดสร ้างสูตรลงไปในเซลล์แรกเซลล์เดียวทีห ้
่ วั มุมซายบนสุ
ดของตาราง
จากนัน
้ เมือ ้ เ่ ซลล์สว่ นอืน
่ copy สูตรนีไ้ ปใชที ่ ในตารางต ้องสามารถใชสู้ ตรเดิมนัน
้ ได ้โดยไม่
จําเป็ นต ้องแก ้ไขสูตรให ้แตกต่างกันไปจากเดิมแต่อย่างใด หรืออีกนัยหนึง่ ให ้ใชสู้ ตรเดียวกับทุก
เซลล์ในตารางคํานวณให ้ได ้ แต่ถ ้าไม่สามารถสร ้างสูตรเดียวทีเ่ ซลล์หวั มุม ก็ขอให ้พยายาม
สร ้างสูตรเดียวในแต่ละแนว row หรือ column

เพือ
่ ทําให ้เห็นโครงสร ้างตารางคํานวณแบบง่ายๆ ขอยกตัวอย่างการสร ้างตารางคํานวณสูตรคูณ
มาพิจารณากันตามรูปต่อไปนี้

Copyright of www.ExcelExpertTraining.com 
329 

รูปตารางนีเ้ ป็ นตัวอย่างการคํานวณสูตรคูณแม่ 2 ถึง 5 โดยกําหนดให ้นํ าไปคูณเลข 1 ถึง 5

• ให ้แยกเซลล์รับตัวแปรวางไว ้ตามแนวคูข ่ นานกับพืน


้ ทีค
่ ํานวณโดยอาจวางไว ้เป็ น
แนวหัวตารางด ้านบน (C2:F2) หรือหัวตารางด ้านข ้าง (B3:B7) ซงึ่ ตัวแปรทีว่ า่ นี้
เป็ นเซลล์รับตัวเลขทีค
่ ณ
ุ อาจมีความต ้องการเปลีย
่ นแปลงเป็ นค่าอืน
่ ในอนาคต

• C3:F7 เป็ นพืน


้ ทีเ่ ซลล์ทคี่ ณ
ุ ต ้องหาทางสร ้างสูตรลงไปทุกเซลล์ โดยให ้สร ้าง
สูตรลงไปทีเ่ ซลล์ C3 ซงึ่ เป็ นตําแหน่งเซลล์หวั มุมซายบนเพี
้ ยงเซลล์เดียว ให ้มี
สูตร =C$2*$B3 จากนัน ้ ให ้ copy ไป paste ทุกเซลล์ในพืน้ ที่ C3:F7

โปรดสงั เกตว่าตัวอย่างสูตรคูณนีเ้ ป็ นตัวอย่างการนํ าค่าไปคํานวณแบบ 1 ต่อ 1 หมายถึง เซลล์


้ ซงึ่ ใน
สูตรหนึง่ ๆจะรับค่าจากเซลล์ตวั แปรตามแนวนอนหรือแนวตัง้ เพียงข ้างละ 1 เซลล์เท่านัน
ปั ญหาอืน ้
่ อาจจําเป็ นต ้องใชการคํ านวณทีซ ั ซอนมากขึ
่ บ ้ น ้ โดยเซลล์สต ้
ู รหนึง่ จะใชเซลล์
ตวั แปร
มากกว่าเซลล์เดียวก็เป็ นได ้โดยใชสู้ ตรพวก Lookup ชว่ ยในการเลือกข ้อมูลมาใชคํ้ านวณ

นอกจากเซลล์สต
ู รจะรับค่ามาจากเซลล์ตวั แปรแล ้ว เซลล์สต
ู รยังอาจรับค่าต่อมาเซลล์สต
ู ร
้ ก่อนได ้อีก ซงึ่ จะเห็นได ้ชด
คํานวณในขัน ั จากตารางคํานวณงบการเงินหรือวางแผนการผลิตทีม
่ ี
ยอดคงเหลือปลายงวดสง่ ต่อไปตัง้ เป็ นยอดคงเหลือต ้นงวดของชว่ งเวลาถัดไป

ตารางคํานวณทีด
่ ต
ี ้องมีความยืดหยุน
่ สามารถคํานวณให ้ผลลัพธ์ได ้ตามต ้องการตลอดไปไม่วา่ จะ
มีการโยกย ้ายหรือแยกตารางตัวแปรไปวางไว ้ทีช ี อืน
่ ท ่ เหนือแฟ้ มอืน
่ ดังนัน
้ พอสร ้างตาราง
คํานวณเสร็จ ขอให ้ทดลอง cut ตารางไปวางไว ้ทีต
่ ําแหน่งอืน
่ หรือโยกย ้ายเซลล์ตวั แปรแยก
ออกจากกัน เพือ
่ พิสจ
ู น์วา่ ตารางคํานวณยังคงสามารถให ้ผลลัพธ์ถก
ู ต ้องตามเดิมหรือไม่

ต ัวอย่างตารางคํานวณหาระยะเวลาทีใ่ ชใ้ นกะ

สมมติวา่ ลูกจ ้างคนหนึง่ เข ้างานตัง้ แต่เวลา 7:00-9:00 น. ให ้สร ้างตารางคํานวณหาระยะเวลาที่


่ ําหนดซงึ่ เริม
เขาทํางานในกะทีก ่ ตัง้ แต่เวลา 8:00-10:00 น.

จากคําถามข ้างต ้นนี้ คุณคงคิดคําตอบในใจได ้ว่าต ้องทํางานในกะเป็ นเวลา 1 ชวั่ โมงใชไ่ หม


เพราะลูกจ ้างคนนีอ
้ อกจากงานเวลา 9:00 น. จึงนับระยะเวลาตัง้ แต่เริม
่ กะตอน 8:00 น. ไป
จนถึงเวลาทีเ่ ขาออกจากงาน ได ้เป็ นระยะเวลา 1 ชวั่ โมง (8:00-9:00) ซงึ่ คงหาทางสร ้างสูตร
คํานวณได ้ไม่ยาก แต่ถ ้าเขามีชว่ งทีเ่ ข ้าทํางานหลากหลายกรณีจะใชสู้ ตรอย่างไร

1. ตรงกับกะ (8:00-10:00)

2. อยูภ
่ ายในกะ (8:30-9:00)

Copyright of www.ExcelExpertTraining.com 
330 

3. คร่อมกะ ทัง้ ก่อนและหลัง (7:00-12:00)

4. คร่อมกะ เพียงชว่ งเริม


่ งาน (7:00-9:00)

5. คร่อมกะเพียงชว่ งเลิกงาน (9:00-12:00)

6. นอกกะ ชว่ งก่อนกะ (6:00-7:00)

7. นอกกะ ชว่ งหลังกะ (11:00-12:00)


สูตรคํานวณหาระยะเวลาทํางานทีใ่ ชในกะ ในเซลล์ H4 = MAX( 0, MIN(F4,D4) -
MAX(E4,C4) ) โดยแยกอธิบายแต่ละสว่ นในสูตรได ้ ดังนี้

• MIN(F4,D4) เป็ นการนํ าเวลาปลายกะมาเทียบกับเวลาปลาย job (เวลาออก


จากงาน) เพือ
่ หาเวลาสุดท ้ายทีเ่ ป็ นไปได ้ทีเ่ กิดขึน
้ ก่อน

• MAX(E4,C4) เป็ นการนํ าเวลาต ้นกะมาเทียบกับเวลาต ้น job (เวลาเริม


่ เข ้างาน)
เพือ
่ หาเวลาสุดท ้ายทีเ่ ป็ นไปได ้ทีเ่ กิดขึน
้ หลังสุด

• ้
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 ได ้ไม่ยาก หลายๆครัง้ ทีเดียวทีจ
่ ะได ้รับ

คําตอบเป็ นสูตรซอนกั
นยาวเหยียดเป็ นหน ้า จนอดทึง่ ในความสามารถของคนทีส
่ ร ้างสูตร
เหล่านัน
้ ไม่ได ้ว่าเขาคิดสูตรกันมาได ้อย่างไร

่ วกับการใช ้ Excel แล ้ว การทีเ่ ก่งมีความสามารถสร ้างสูตร


หากจะไล่เรียงลําดับความเก่งเกีย
ยากๆยาวๆได ้ ถือว่าเป็ นความเก่งขัน
้ สูงทีม
่ ก
ั เป็ นความสามารถเฉพาะตัว ยากทีค
่ นอืน
่ จะ
เลียนแบบหรือเข ้าใจทีไ่ ปทีม
่ าของสูตรทีน ้ น เพราะคนเก่งแต่ละคนมักเลือกใชสู้ ตรที่
่ ํ ามาซอนกั
ตนถนัดแตกต่างกันไป แต่อย่างไรก็ตาม ในเรือ
่ งสูตรทีต
่ วั ผมเองคิดขึน
้ นัน
้ หลายๆครัง้ ทีเดียวที่
่ วั เองเป็ นคนต ้นคิด จึงเป็ นสงิ่ ทีน
พบว่าไม่สามารถแกะสูตรยาวๆทีต ่ ่าเป็ นห่วงอย่างยิง่ ว่า ในเมือ

แม ้แต่ตวั ผู ้ทีค
่ ด
ิ สูตรขึน ่ าของแต่ละสว่ นในสูตรยาวๆได ้เลย แล ้ว
้ เองยังไม่สามารถเข ้าใจทีไ่ ปทีม
ไฉนผู ้อืน
่ จะเข ้าใจสูตรทีต ้
่ นไม่ได ้สร ้างเองหรือสามารถนํ าสูตรไปดัดแปลงใชงานได ้เล่า ดังนัน

่ ใช ้ จึงเป็ นการสร ้างปั ญหาระยะยาวให ้เกิดขึน
การสร ้างสูตรยากๆยาวๆให ้แก่ผู ้อืน ้ กับผู ้ใชสู้ ตรที่
ตนเองไม่ได ้เป็ นคนสร ้าง เพราะว่าเมือ
่ ใดทีเ่ งือ
่ นไขในการคํานวณแตกต่างไปจากเดิม เมือ
่ นัน
้ ก็
่ ชว่ ยสร ้างสูตรใหม่ให ้อีก
จําต ้องย ้อนกลับมาตัง้ คําถามให ้คนอืน

่ ะใชสู้ ตรลัดซงึ่ เป็ นสูตรซอนกั


แทนทีจ ้ นยาวเหยียด แนะนํ าให ้กระจายการคํานวณออกเป็ นหลาย
เซลล์เพือ
่ แยกคํานวณแต่ละอย่างก่อน แล ้วจึงนํ าผลลัพธ์ทไี่ ด ้ไปคํานวณหาผลลัพธ์สด
ุ ท ้าย จะ
ี ว่ ยสร ้างความเข ้าใจให ้เกิดขึน
เป็ นวิธช ้ ถึงทีไ่ ปทีม
่ าของสูตรว่าคิดกันมาได ้อย่างไร

ื่ แฟ้ ม ซงึ่ ดูแล ้วยากทีจ


ยกตัวอย่างสูตรคํานวณหาชอ ่ ะจํา และไม่มท
ี างรู ้ว่ามีหลักการคิดมาได ้
อย่างไร

=MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filenam
e"))-FIND("[",CELL("filename"))-1)

สูตรนีม
้ ท
ี ม
ี่ าจากสูตร

=MID(ข ้อความทีม
่ ช ื่ แฟ้ ม, เลขตําแหน่งเครือ
ี อ ื่
่ งหมาย [, เลขจํานวนตัวอักษรของชอ
แฟ้ ม)

แยกคํานวณแต่ละสว่ นได ้ตามรูปต่อไปนี้

Copyright of www.ExcelExpertTraining.com 
332 

่ ะใชสู้ ตรยาวจนจําแทบไม่ไหวในเซลล์ B7 ให ้เริม


แทนทีจ ่ จากการใชสู้ ตรหาค่าทีเ่ กีย
่ วข ้องกับ
การแยกคําทีละขัน
้ ดังนี้

1. เซลล์ A1 ใชสู้ ตร =CELL("filename") เพือ ื่ แฟ้ ม โดยคําตอบทีไ่ ด ้จะแสดง


่ หาชอ
ื่ drive ชอ
ทัง้ ชอ ื่ โฟลเดอร์ ชอ
ื่ แฟ้ ม และชอ
ื่ ชที

2. เซลล์ B3 และ B4 ใชสู้ ตร =FIND("[",$A$1) และ =FIND("]",$A$1) เพือ



คํานวณหาตําแหน่งของเครือ ่ งหมายวงเล็บ [ ] ตามลําดับ

3. เซลล์ B5 ใชสู้ ตร =MID(A1,B3+1,B4-B3-1) เพือ


่ แยกเฉพาะสว่ นทีเ่ ป็ นชอ
ื่ แฟ้ ม

ออกมาใชงาน

Copyright of www.ExcelExpertTraining.com 
333 

การออกแบบโครงสร้างตารางคํานวณร่วมก ับสูตรล ัด

จากสูตร = MAX(0,MIN(F4,D4)-MAX(E4,C4)) ซงึ่ ใชคํ้ านวณหาระยะเวลาทีใ่ ชในกะซ


้ งึ่ ได ้
่ าของแต่ละสว่ นในสูตรแล ้วว่าเป็ นอย่างไร จากนีข
อธิบายทีไ่ ปทีม ้ อให ้คุณคิดต่อไปอีกว่าจะนํ า
สูตรนีไ ้
้ ปใชในการวางแผนโดยจํ ้ ปใชร่้ วมกับตัวแปรอืน
าเป็ นต ้องนํ าสูตรนีไ ่ ชว่ งเวลาของกะ
่ ๆ เชน
่ ๆ ชว่ งเวลาเข ้างานในวันอืน
อืน ่ ๆหรือเวลาเข ้างานของลูกจ ้างคนอืน
่ ตลอดจนหาทางคํานวณ
ค่าแรงทีต
่ ้องจ่ายออกเป็ นตัวเงินนัน
้ ต ้องออกแบบตารางคํานวณให ้มีหน ้าตาอย่างไรดี

ตัวอย่างนีข
้ อสมมติวา่ ในกําหนดเวลาทํางานแต่ละวัน ตัง้ แต่ 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 เพือ

เพือ ่ ํานวณได ้ ไม่ให ้แสดงตัวเลขเวลาทีเ่ ท่ากับ 0 จึงเลือกใช ้


่ แสดงให ้เห็นเฉพาะตัวเลขเวลาทีค
Format แบบ hh:mm;; และใชส้ พ
ี น
ื้ แยกแต่ละกะทีใ่ ชอั้ ตราค่าแรงปกติออกจากพืน
้ ตารางสว่ นที่
ใชอั้ ตราค่าแรงพิเศษ (OT)

จากนัน ่ ํางานในชว่ งอัตราปกติและชว่ งอัตรา OT ไว ้ในตาราง


้ สร ้างสูตรรวมหายอดระยะเวลาทีท
ด ้านขวาตัง้ แต่เซลล์ N6:O10 ซงึ่ เมือ
่ นํ าไปคูณกับเลขอัตราในเซลล์ Q4 และ R4 แล ้ว ทําให ้
คํานวณหาค่าแรงแยกประเภทของอัตราแต่ละตัวแสดงให ้เห็นในตาราง Q6:R10

วิเคราะห์ล ักษณะโครงสร้างตารางคํานวณทีใ่ ช ้

1. พืน
้ ทีต ่ ารางทีใ่ ชรั้ บตัวแปร เชน
่ B6:B10, C6:C10, D6:D10, และ E5:L5 ถูกวาง
ไว ้เป็ นแนวคูข
่ นานกับแนวตารางสูตรคํานวณ E6:L10

2. สูตรคํานวณในพืน ้ ทีต่ าราง E6:L10 เกิดจากสูตรในเซลล์ E6 เพียงเซลล์เดียวที่


นํ าไป paste ต่อให ้เซลล์อน ื่ ๆ ทําให ้สะดวกในการแก ้ไขสูตรไม่ต ้องค ้นหาและ
แก ้ไขสูตรในเซลล์แต่ละเซลล์

3. ตารางกําหนดเวลาแต่ละชว่ งกะ E2:L3 ชว่ ยชช ี้ ด


ั ว่าแต่ละกะมีเวลาใด ชว่ ยให ้
สร ้างสูตรคํานวณได ้ง่ายขึน ้ และยังทําให ้มีความเข ้าใจชด ั เจนมากขึน ้ สําหรับ

ผู ้ใชงานทั ว่ ไป ซงึ่ ในอนาคตหากไม่ต ้องการแสดงพืน ้ ทีส่ ว่ นนีก
้ ็สามารถโยกย ้าย
ไปซอ ่ นทีอ
่ น ื่

Copyright of www.ExcelExpertTraining.com 
335 

4. จุดเด่นของโครงสร ้างตารางซงึ่ ชว่ ยให ้สามารถคํานวณค่าแรงในแต่ละอัตราได ้



คือ การใชตารางแบ่ งออกเป็ นแต่ละกะเพือ ้
่ แยกคํานวณหาระยะเวลาทีใ่ ชในกะ
นัน้ ๆก่อน และยังชว่ ยให ้สามารถตรวจสอบความถูกต ้องของการคํานวณได ้ง่าย
ชดั เจนกว่าการคิดสูตรยากๆยาวๆเพียงเพือ ่ คํานวณแยกแต่ละกะให ้แล ้วเสร็จใน
เซลล์เดียว

5. ในแง่ของเลขตัวเงินค่าแรงทีโ่ ดยทัว่ ไปถือเป็ นเรือ ่ งปกปิ ด ได ้ถูกแยกคํานวณใน


ตาราง Q6:R10 ชว่ ยให ้สามารถใชตารางส
้ ว่ นนีใ้ นการบริหารค่าแรงได ้โดยตรง
และสามารถโยกย ้ายตารางไปแยกเก็บไว ้เป็ นเรือ ่ งลับในชท ี อืน
่ หรือแฟ้ มอืน

6. เลขที่ Job ในตาราง B6:B10 นัน ้ ในอนาคตสามารถบันทึกรหัสหรือชอ ื่ ลงไป


แทน จากนัน ้ จึงนํ าสูตร Vlookup หาเวลาทํางานมาแสดงโดยอัตโนมัตใิ นตาราง
C6:D10 ได ้ด ้วย หรืออาจใชคํ้ าสงั่ Data > Table เพือ
่ สง่ ตัวแปรลงไปแทน
เลขที่ Job เพือ
่ คํานวณลัดหายอดค่าแรงได ้ทันทีโดยไม่จําเป็ นต ้องย ้อนกลับมา
เพิม
่ รายการใหม่

7. สามารถใชกั้ บการคํานวณหาค่าแรงได ้หลายกรณี เชน ่ ค่าแรงของลูกจ ้างคนหนึง่


ในวันหนึง่ หรือค่าแรงของลูกจ ้างคนหนึง่ รายวัน หรือค่าแรงของลูกจ ้างเรียงตัว
ไปทุกคนในแต่ละวัน ซงึ่ คุณอาจใชช้ ท
ี เดิมชท ี เดียวคํานวณ หรือ copy เป็ นชที
ใหม่เพือ
่ คํานวณแยกตามรายบุคคล

หมายเหตุ :


1. การไล่ลําดับงานในตัวอย่างนีเ้ ป็ นการไล่จากบนมาล่างหรือจากซายไปขวา ซงึ่ ใน
แง่การวางแผนกําหนดการณ์แล ้ว เรียกว่า แบบ Push เพือ ่ หากําหนดเวลาทีง่ าน
เสร็จ

้ จะกลายเป็ นแบบ Pull เพือ


2. ถ ้าไล่ลําดับงานจากล่างไปบนหรือจากขวามาซาย ่ หา
กําหนดเวลาทีต ่ ้องเริม
่ งาน

3. หากต ้องการแทรกระยะเวลาหยุดพักของแต่ละ Job ซงึ่ ย่อมมีผลทําให ้


กําหนดเวลาเริม ้
่ ต ้นของ Job ถัดไปชาลง สามารถปรับเพิม ่ ได ้ง่ายๆโดยสร ้างสูตร
หากําหนดเวลาเริม่ งานใน Job ถัดไปให ้มีคา่ เท่ากับ เวลาออกจากงานของ Job
ก่อนบวกด ้วยระยะเวลาทีห ่ ยุดพัก


4. ผู ้สนใจตารางคํานวณหาระยะเวลาทีใ่ ชในกะ สามารถเรียนรู ้ได ้จากการอบรม
หลักสูตรประยุกต์ใช ้ Excel เพือ
่ วางแผนความต ้องการวัสดุ(MRP)และจัดตาราง
การผลิต หรือหลักสูตรฉลาดใชสารพั ้ ดสูตร Excel อย่างมืออาชพ ี
หรือ download ตัวอย่างได ้ฟรีจาก
http://www.excelexperttraining.com/extreme/files/timeplan/timeconsu
me.xls

Copyright of www.ExcelExpertTraining.com 
336 

การออกแบบโครงสร้างตารางคํานวณ ภาค 2

ตารางคํานวณในภาคแรกเกิดจากการใชสู้ ตรทีม
่ โี ครงสร ้างเดียวกันซํ้าในทุกเซลล์ของตาราง
คํานวณ โดยกําหนดให ้หาทางสร ้างสูตรขึน ้
้ เพียงสูตรเดียวในเซลล์แรกตรงหัวมุมซายบนสุ
ดของ
้ ง้ ตาราง และจากการทีใ่ ชสู้ ตรทีม
ตาราง แล ้วจัดการ Copy สูตรไปใชทั ่ โี ครงสร ้างเดียวกันไป
ตลอดนีย
้ อ
่ มแสดงว่าเป็ นสูตรทีค
่ ํานวณหาคําตอบในเรือ
่ งเดียวกัน จากนัน ้
้ เราจึงใชโครงสร ้างของ
ตารางเป็ นตัวชว่ ยในการเลือกใชคํ้ าตอบจากตําแหน่งของเซลล์ทเี่ กีย
่ วข ้องกับคําตอบ ซงึ่ ตาราง
คํานวณแบบแรกนีไ
้ ม่เหมาะกับการคํานวณทีม
่ ค ั ซอนมากนั
ี วามสลับซบ ้ ก

ในบทความภาคที่ 2 จะนํ าโครงสร ้างตารางคํานวณทีม


่ ค ั ซอนมากขึ
ี วามซบ ้ น ึ ษากันโดย
้ มาให ้ศก
ขอเรียกตารางคํานวณแบบนีว้ า่ ตารางคํานวณแบบ Module ซงึ่ สามารถนํ าไปใชงานกั
้ นได ้ 2
แบบ คือ แบบ Module เดีย
่ ว (Single Module) และแบบ Module รวม (Compound Module)

ความหมายของ Module

ผู ้ทีเ่ คยใช ้ Excel สร ้างตารางคํานวณงบการเงินมาก่อน ต ้องทราบดีวา่ กว่าจะคํานวณหายอด


กําไรขาดทุนมาได ้ต ้องคํานวณผ่านยอดรายรับหักต ้นทุนขายเป็ นกําไรขัน
้ ต ้น จากนัน
้ จึงนํ ายอด
้ ต ้นไปหักด ้วยค่าใชจ่้ ายต่างๆและภาษี เพือ
ตัวเลขกําไรขัน ่ เป็ นยอดกําไรขาดทุน ซงึ่ ลักษณะของ
การคํานวณงบการเงินนีแ
่ หละคือลักษณะของตารางคํานวณแบบ Module

ั ษณะการใช ้ Excel แบบ Module เชน


ในงานด ้านวางแผนการผลิตมีลก ่ กัน นับตัง้ แต่รับคําสงั่ ซอ
ื้
ิ ค ้าคงคลังเพือ
แล ้วต ้องนํ ายอดไปเปรียบเทียบกับสน ่ คํานวณหายอดวัตถุดบ
ิ ทีต ้
่ ้องใชตามกํ าลัง
การผลิตทีม ี ยู่ อีกทัง้ ต ้องกําหนดเวลาให ้กับตัวเลขการสงั่ ผลิตหรือจัดหาวัตถุดบ
่ อ ิ ตามโครงสร ้าง

ผลิตภัณฑ์ให ้ได ้อีกว่า ต ้องการใชในปริ ่ สงั่ ของเมือ
มาณเท่าใดและต ้องเริม ่ ใดเพือ
่ ให ้สามารถ
ดําเนินการตามขัน ิ ค ้าสําเร็จรูปตามเวลาทีก
้ ตอนการผลิตแล ้วได ้สน ่ ําหนด

Module คือ ตารางทีป ู รคํานวณหลายๆเซลล์ซงึ่


่ ระกอบด ้วยเซลล์สต
คํานวณต่อเนือ
่ งกันไปทีละขัน
้ โดยผลการคํานวณทีไ่ ด ้ในแต่ละขัน
้ ไม่
จําเป็ นต ้องมีความหมายใดเลยก็ได ้ แต่เมือ
่ นํ ามาคํานวณร่วมกันหรือ
คํานวณต่อเนือ
่ งกันแล ้วต ้องทําให ้ได ้ผลลัพธ์ตามต ้องการ

Copyright of www.ExcelExpertTraining.com 
337 

จากคําจํากัดความของ Module ข ้างต ้น อาจทําให ้คุณหลงภูมใิ จว่าตนเองเคยสร ้างตาราง


คํานวณแบบ Module นีม
้ านานแล ้ว บทความนีไ
้ ม่เห็นมีอะไรทีแ
่ ปลกใหม่ตา่ งจากทีค
่ ณ
ุ รู ้ดีอยู่
แล ้ว จึงขอให ้ลองนึกดูวา่ หากคุณสามารถใช ้ Excel อย่างคอมพิวเตอร์ได ้สมบูรณ์จริง คุณต ้อง
หาทางนํ า Module ทีส
่ ร ้างไว ้นัน ้ ํ้าแล ้วซํ้าอีกโดยไม่จําเป็ นต ้องสร ้าง Module ขึน
้ มาใชซ ้ ใหม่
และด ้วยตารางคํานวณแบบ Module ทีค
่ ณ
ุ มีเพียง Module เดียว จะทําอย่างไรทีจ
่ ะนํ าตารางนัน

้ ํ้าแล ้วซํ้าอีก เพือ
มาใชซ ่ หาทางใช ้ Module เดียว ชท
ี เพียงชท
ี เดียว หรือแฟ้ มเพียงแฟ้ มเดียวกับ
งานคํานวณทีค ุ คิดไม่ถงึ ว่าจะใช ้ Excel ทําได ้โดยไม่ต ้องพึง่ การเขียนโปรแกรม Visual Basic
่ ณ
มาชว่ ยแม ้แต่น ้อย

จุดประสงค์ของการสร้างตารางคํานวณแบบ Module

1. เพือ
่ ลดความซบ ั ซอนของสู
้ ตรคํานวณ จากเดิมทีต ่ ้องสร ้างสูตรยากๆยาวๆลงไปในเซลล์
เพียงเซลล์เดียว เปลีย ่ นไปเป็ นการกระจายสูตรแยกให ้ใชเซลล์ ้ แต่ละเซลล์มสี ต
ู รคํานวณ
ทีละขัน ้ สง่ ผลการคํานวณต่อเนือ ่ งกันไป ทําให ้สูตรสน ั ้ ลง และทําให ้คุณเข ้าใจลําดับการ
คํานวณได ้ง่ายขึน ้
2. เพือ่ ทําให ้คุณสามารถใช ้ Excel กับการคํานวณงานทีม ่ ห
ี ลายขัน ้ ตอนหรือเกีย
่ วข ้องกับ
การทํางานทีม ่ ล
ี กั ษณะต่อเนือ
่ งกัน
3. เพือ ่ ชว่ ยให ้คุณสามารถลดขนาดแฟ้ มและจํานวนตารางทีม ่ อ ี ยู่

ล ักษณะโครงสร้างตารางคํานวณแบบ Single Module

ตารางคํานวณแบบ Single Module มีลก


ั ษณะตรงกับความหมายของคําว่า Single นั่นคือเป็ น
ตารางคํานวณแบบตารางเดียวหรือตารางเดีย
่ ว ทีส
่ ามารถคํานวณให ้ผลลัพธ์ทต
ี่ ้องการได ้
ครบถ ้วนภายในตารางคํานวณตารางเดียว

ผู ้ใช ้ Excel ทัว่ ไปมักใช ้ Excel กันแบบผิดๆ จากความง่ายของการใชตารางของ


้ ่ ถ ้า
Excel เชน
รายงานทีต
่ ้องการมีร ้อยหน ้า เราก็มก
ั จะออกแบบตาราง Excel ให ้มีความยาวเหยียดเลียนแบบ
ตามหน ้ากระดาษทีต
่ ้องการพิมพ์ หรือเมือ
่ ใดทีต
่ ้องการรายงานตามรายเดือน ก็มก ี
ั จะสร ้างชท
ี แยกเป็ นชท
หลายๆชท ี ละเดือนหรือสร ้างตารางแบ่งเป็ นแฟ้ มคํานวณตามรายเดือน ซงึ่ ยังดีทใี่ นปี
ี หรือแฟ้ มเพียง 12 ชท
หนึง่ มีแค่ 12 เดือน จึงทําให ้มีจํานวนชท ี หรือ 12 แฟ้ ม แต่ถ ้าเป็ นงานที่
ต ้องใชติ้ ดต่อกันไปหลายปี หรือแบ่งรายงานตามวัตถุดบ
ิ นับร ้อยนับพันชนิด เห็นทียอ
่ มทําให ้มี
ี หรือจํานวนแฟ้ มทีม
จํานวนชท ี ารคํานวณแบบเดียวกันซํ้ามากจนจดจํากันไม่ไหว
่ ก

Copyright of www.ExcelExpertTraining.com 
338 

ตารางคํานวณแบบ Single Module เป็ นตารางคํานวณเพียงตารางเดียวทีค


่ ณ
ุ สามารถกําหนดให ้
ตารางคํานวณนัน ้
้ เลือกรับตัวแปรต่างไปจากเดิมได ้ตามต ้องการ ทําให ้สามารถใชตารางคํ านวณ
เพียงตารางเดียวหรือหน ้าเดียวเพือ
่ แสดงผลการคํานวณเปลีย
่ นไปเป็ นตารางคํานวณรายละเอียด
ของเดือนทีต
่ ้องการหรือวัตถุดบ
ิ ทีต ้
่ ้องการ โดยใชโครงสร ้างตารางแบ่งออกเป็ น 3 สว่ น ดังนี้
1. สว ่ นของตาราง Input ใชส้ ําหรับเก็บตัวแปรทีต ่ ้องการตามรายเดือนหรือแต่ละชุด ซงึ่
ตาราง Input นีใ้ ชจั้ ดเก็บข ้อมูลรายเดือนหรือแต่ละชุดไว ้เป็ นแนวนอนหรือแนวตัง้ ติดกัน
ก็ได ้
2. สว ่ นของตารางสูตรต ัวกลางใชด ้ งึ ข้อมูล เพือ
่ เลือก Input ตามเลขเดือนหรือเลขที่
ของชุด ซงึ่ มักใชสู้ ตร Index เพือ ่ เลือกดึงข ้อมูลจากตาราง Input ในชท ี เดียวกัน หรือ
ใชสู้ ตร Indirect เพือ่ เลือกดึง Input จากตารางทีแ ่ ยกชที กัน
3. สว่ นของตารางคํานวณ เพือ ่ คํานวณตามค่าทีร่ ับมาจากตารางสูตรตัวกลาง

Copyright of www.ExcelExpertTraining.com 
339 

ี เดียว
ต ัวอย่างโครงสร้างตารางคํานวณแบบ Single Module ในชท

(Download ตัวอย่างได ้จาก


www.ExcelExpertTraining.com/extreme/files/database/singlemodule.xls)

ตัวอย่างนีเ้ ป็ นการคํานวณงบกําไรขาดทุนจากตัวอย่างประกอบการอบรมหลักสูตรสุดยอดเคล็ด
ลับและลัดของ Excel ซงึ่ กําหนดให ้มีตารางทีต
่ ้องการคํานวณตามยอดขายและต ้นทุนทีต
่ า่ งกัน
ไปอยู่ 3 case แต่ละ case กําหนดให ้แปรเปลีย
่ นยอดขายและต ้นทุนต่างกันไป ดังนัน
้ แทนที่
จะต ้องสร ้างตารางคํานวณขึน
้ 3 ตารางเพือ ี
่ แยกคํานวณแต่ละ case ขอให ้ออกแบบตารางในชท
เดียวกันแบ่งเป็ น 3 สว่ น

สว่ นแรกใชส้ ําหรับบันทึกตัวแปรแต่ละ case ซงึ่ ในภาพใชตารางด


้ ้านขวาสุดตัง้ แต่
ื่ Range Name ตารางสว่ นนีว้ า่ MyData) แบ่งแยกให ้แต่ละ column
เซลล์ I3:K6 (ตัง้ ชอ
่ case1 เป็ นพืน
บันทึกตัวแปรของแต่ละ case เชน ้ ทีต
่ งั ้ แต่เซลล์ I3:I6 โดยกําหนดให ้เรียงลําดับ
ตัวแปรของยอดขายและต ้นทุนต่อกันไปใน column เดียวกัน แล ้วใช ้ column ถัดไปบันทึกตัว
แปรของ case ต่อไปในทํานองเดียวกัน

สาเหตุทต
ี่ ้องจัดให ้บันทึกตัวแปรของแต่ละ case ไว ้ในแนวตัง้ เดียวกันนัน ่ ทําให ้สามารถใช ้
้ เพือ
สูตร Index ดึงข ้อมูลตัวแปรทีเ่ ก็บไว ้ในแนวตัง้ เดียวกันไปพร ้อมกัน โดยสร ้างสูตร Index
ต่อไปนีไ
้ ว ้ในเซลล์ F3:F6 แบบ Array (โดยเลือกเซลล์ F3:F6 แล ้วสร ้างสูตร จากนัน
้ กดปุ่ ม
Ctrl+Shift+Enter พร ้อมกันเพือ
่ บันทึกสูตรลงไปทีเดียวทุกเซลล์ จะพบเครือ
่ งหมายวงเล็บปี ก
กาปิ ดหัวท ้ายสูตรให ้เอง)

Copyright of www.ExcelExpertTraining.com 
340 

=INDEX( MyData, 0, CaseNum )

• MyData เป็ นตารางบันทึกตัวแปรตัง้ แต่เซลล์ I3:K6


• เลข 0 เพือ ่ กําหนดให ้สูตร Index ดึงข ้อมูลทุก Row
• CaseNum คือเซลล์ F2 ใชส้ ําหรับใสต ่ วั เลข 1, 2, หรือ 3 ลงไป เพือ
่ ทําให ้สูตร Index
ดึงข ้อมูล Input จาก Case1, Case2, หรือ Case3 ตามลําดับ

เมือ
่ ดึงตัวแปรตามตัวเลขของ 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 

แปร 1, 2, 3 บนหัวตารางด ้านบนไปทีเ่ ซลล์ F2 หรือ CaseNum ทีละค่า จากนัน


้ สูตร Index จะ
่ งึ ตัวแปรแต่ละตัวตามเลข case สง่ ไปคํานวณในงบกําไรขาดทุนด ้านซายสุ
ทําหน ้าทีด ้ ด แล ้วจึง
สง่ ผลลัพธ์กลับมาแสดงในพืน
้ ทีต
่ าราง I12:K18 ตาม case บนหัวตารางด ้านบนของพืน ่ งึ่ สงั่
้ ทีซ
Data > Table นั่นเอง (การใช ้ Data > Table ร่วมกับสูตร Index นีจ
้ ะทําให ้ Data > Table
สามารถสง่ ตัวแปรไปใชคํ้ านวณได ้ไม่จํากัดจํานวนตัวแปร ถือเป็ นเคล็ดการใช ้ Excel ทีน
่ ้อยคน
้ น)
นักจะใชเป็

Copyright of www.ExcelExpertTraining.com 
342 

ต ัวอย่างโครงสร้างตารางคํานวณแบบ Single Module แบบแยก Input


ี อืน
ไว้ในชท ่

ในกรณีทก ั ซอนมากขึ
ี่ ารคํานวณมีความสลับซบ ้ น ้ หรือมีจํานวนตัวแปรมากขึน
้ คุณสามารถแยก
ตารางสว่ นของการคํานวณผลลัพธ์ไปไว ้ในชท
ี อืน
่ ต่างหาก เพือ
่ ทําให ้สามารถจัดโครงสร ้าง
ตารางได ้ยืดหยุน ี เก็บข ้อมูลให ้แยกเป็ นสว่ นๆได ้ชด
่ และแยกชท ั เจนยิง่ ขึน

ในตัวอย่างต่อไปเป็ นการคํานวณทางสถิตข
ิ องการวัด (Calibration) ก่อนอืน
่ ขอเล่าทีไ่ ปทีม
่ า
ของตัวอย่างต่อไปนีก
้ อ
่ นว่า แต่เดิมทีนัน ี นับร ้อยชท
้ แฟ้ มมีขนาดใหญ่มากเพราะมีชท ี แต่ละชท
ี มี
สูตรคํานวณทางสถิตย
ิ ากๆยาวเหยียดหลายๆเซลล์

ทุกครัง้ ทีม
่ ก ่ สน
ี ารผลิต ทางโรงงานต ้องสุม ิ ค ้าทีผ
่ ลิตได ้สง่ มาตรวจสอบคุณภาพก่อน โดยวัดผล
่ ยูใ่ นชว่ งทีย
ออกมาเป็ นตัวเลขแล ้วนํ าไปคํานวณทางสถิตวิ า่ เป็ นตัวเลขทีอ ่ อมรับได ้หรือไม่ ทุก
ครัง้ ทีจ ี ใหม่แล ้ว copy ตารางคํานวณจากชท
่ ะคํานวณ ก็ต ้องเปิ ดชท ี เก่ามาแก ้ตัวเลขตามการวัด
ทีเ่ กิดขึน
้ ใหม่ ดังนัน ี ใหม่เกิดขึน
้ ถ ้าต ้องคํานวณกันทุกวัน วันละหลายๆครัง้ ย่อมทําให ้มีชท ้ ทุก
ครัง้

ี หลายๆชท
นอกจากแฟ้ มจะมีขนาดใหญ่เพราะมีชท ี แล ้ว สงิ่ ทีน
่ ่าห่วงคือทุกครัง้ ทีต
่ ้องสร ้างตาราง
ี ใหม่นัน
คํานวณในชท ้ อาจสร ้างตารางทีม
่ ส
ี ต
ู รคํานวณผิดเพีย
้ นไปจากสูตรทีส ี เดิม
่ ร ้างไว ้ในชท
ี ให ้ต่าง
หรือแม ้คํานวณได ้ถูกต ้อง แต่นานไปอาจพลัง้ เผลอย ้อนกลับไปแก ้ไขบางเซลล์ในบางชท
ไปจากทีเ่ คยเป็ น และเนือ ี หลายชท
่ งจากมีชท ี จึงเป็ นไปได ้ว่าเมือ
่ ทําการแก ้ไขไปแล ้ว อาจ
ี ชอ
หลงลืมจําไม่ได ้ว่าแก ้ไขชท ื่ ใด และแก ้ไขอะไรทีเ่ ซลล์ใดไปบ ้าง ยิง่ กว่านัน
้ เมือ
่ ใดทีต
่ ้องการ
แก ้ไขโครงสร ้างตารางคํานวณตามหน ้าตาใหม่ทผ ี แรงเสย
ี่ ู ้บริหารกําหนด ก็ต ้องเสย ี เวลา
ี เก่าทัง้ หมดทีอ
ย ้อนกลับไปแก ้ไขชท ี เข ้าไปแล ้วทีเดียว
่ าจมีถงึ นับร ้อยนับพันชท

แทนทีจ ี ใหม่ ขอให ้ใชหลั


่ ะต ้องเปิ ดชท ้ กการสร ้างตารางคํานวณแบบ Single Module โดยใช ้
โครงสร ้างตารางแบ่งออกเป็ น 3 สว่ น ดังนี้
1. สว่ นของตาราง Input ใชส้ ําหรับเก็บตัวแปรทีต ่ ้องการตามการวัดคุณภาพสน ิ ค ้าแต่ละ
ครัง้ ซงึ่ ตาราง Input นีใ้ ชจั้ ดเก็บข ้อมูลการวัดแต่ละครัง้ ไว ้เป็ นแนวตัง้ ติดกัน
2. สว ่ นของตารางสูตรต ัวกลางใชด ้ งึ ข้อมูล เพือ
่ เลือก Input ตามเลขทีข ่ องเลขครัง้ ใน
การวัด โดยใชสู้ ตร Index เพือ ่ เลือกดึงข ้อมูลจากตาราง Input ในชท ี เดียวกัน
3. สว ่ นของตารางคํานวณ เพือ ่ คํานวณตามค่าทีร่ ับมาจากตารางสูตรตัวกลาง แต่
เนือ ่ งจากมีการคํานวณทีซ ั ซอนและเป็
่ บ ้ นรายงานทีต ้
่ ้องใชตารางขนาดใหญ่ จึงให ้ใชช้ ท

อีกชท ี หนึง่ เป็ นสว่ นของการคํานวณโดยเฉพาะ

Copyright of www.ExcelExpertTraining.com 
343 

จากเดิมซงึ่ ต ้องมีหลายชท
ี จึงกลายเป็ นแฟ้ มใหม่ซงึ่ มีชท
ี เพียง 2 ชท
ี ชท
ี หนึง่ เป็ นชท
ี ทีใ่ ชบั้ นทึก
ผลการวัดคุณภาพแต่ละครัง้ แล ้วใชอี้ กชท
ี หนึง่ เป็ นชท
ี แสดงการคํานวณทางสถิต ิ ( Download
ตัวอย่างได ้จาก www.ExcelExpertTraining.com/extreme/files/analysis/uncerdbf.xls)

ี สําหร ับบ ันทึกต ัวเลขจากการว ัด


โครงสร้างภายในชท

ตารางตัง้ แต่เซลล์ E2:E21 ใชส้ ําหรับบันทึกข ้อมูลจากการวัดครัง้ แรกแล ้วใช ้ column ถัดไป
บันทึกข ้อมูลจากการวัดในครัง้ ถัดไปติดต่อกันไปตามแนว column โดยในตัวอย่างนีต ื่ พืน
้ งั ้ ชอ ้ ที่
ตารางสว่ นทีใ่ ชบั้ นทึกข ้อมูลจากการวัดนีว้ า่ DataRange

้ ง้ แต่เซลล์ C2:C21 เป็ นสูตร Index ใชส้ ําหรับดึงข ้อมูลทีบ


ตารางด ้านซายตั ่ น
ั ทึกไว ้ตามเลขที่
ของการวัด ซงึ่ ใชตั้ วเลข 1-20 ใน Column D ชว่ ยในการชต
ี้ ําแหน่งเลขที่ row

=INDEX( DataRange, D2, CaseNo )

• DataRange คือพืน ่ าราง E2:N21 ใชส้ ําหรับบันทึกข ้อมูลจากการวัด


้ ทีต
• D2 เป็ นเลขที่ row เนือ่ งจากเป็ นค่าแรกจึงใชดึ้ งค่าจาก row ที่ 1
• CaseNo เป็ นเซลล์รับเลขทีค ่ รัง้ ของการวัด ซงึ่ link มาจากชท
ี ตารางคํานวณทางสถิต ิ

Copyright of www.ExcelExpertTraining.com 
344 

ี สําหร ับคํานวณทางสถิตข
โครงสร้างภายในชท ิ องการว ัด

ี นี้ เมือ
เซลล์ B4 ถือเป็ นหัวใจของชท ่ คุณพิมพ์เลขที่ CaseNo ลงไป จะทําให ้สูตร Index ใน
ี หนึง่ ตามภาพก่อนหน ้านี้ ดึงข ้อมูลสง่ ต่อมาใชแสดงหรื
column C ของอีกชท ้ อคํานวณในตาราง

คํานวณ Uncertainty Budget อีกทัง้ ยังใชเซลล์ B4 ร่วมกับคําสงั่ Data > Table เพือ
่ สรุป
ผลเปรียบเทียบการวัด หรือใชร่้ วมกับคําสงั่ พิมพ์อต
ั โนมัตท
ิ เี่ ขียนด ้วย VBA ตามนีไ
้ ด ้อีกด ้วย

For i = StartNum To StopNum


Range("CaseNo") = i
Calculate
ActiveWindow.SelectedSheets.PrintPreview
Next i

• StartNum เป็ นตัวแปรกําหนดตัวเลขเริม ่ ของเลขที่ Case ทีต่ ้องการพิมพ์เป็ นรายการ


แรก
• StopNum เป็ นตัวแปรกําหนดตัวเลขสุดท ้ายของเลขที่ Case ทีต ่ ้องการพิมพ์เป็ นรายการ
สุดท ้าย
• For Next Loop จะสง่ ค่า i ไปยังเซลล์ชอ ื่ CaseNo เพือ
่ ดูผลก่อนพิมพ์บนจอ (Print
Preview) ซงึ่ ถ ้าเปลีย
่ นเป็ นคําสงั่ Print ก็จะพิมพ์รายงานตามรายการทีต ่ ้องการโดย
อัตโนมัต ิ

Copyright of www.ExcelExpertTraining.com 
345 

การออกแบบโครงสร้างตารางคํานวณ ภาค 3

ตารางคํานวณแบบ Single Module ในภาคนีเ้ ป็ นตารางคํานวณในกรณีทแ ี หรือแยกแฟ้ ม


ี่ ยกชท
่ ใชกั้ บงานทีม
เพือ ่ ก ั ซอนมากกว่
ี ารคํานวณสลับซบ ้ าเดิม แทนทีจ
่ ะมีตารางคํานวณเพียงตาราง
เดียวแล ้วใชข้ ้อมูลตัวแปรสง่ ค่าใหม่ไปคํานวณในตารางนัน ี เดียวกัน คราวนีผ
้ ๆในชท ้ มจะนํ าเสนอ
วิธก ี หรือหลายแฟ้ ม จากนัน
ี ารสร ้างตารางคํานวณพร ้อมกันในหลายชท ้ จึงเลือกนํ าผลการคํานวณ
ี หรือแฟ้ มทีต
จากชท ่ ้องการไปนํ าเสนอผลงานต่อไป

ผู ้ใช ้ Excel ต ้องคิดไว ้เสมอว่า แม ้วันนีข


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


แฟ้ มมีขนาดใหญ่มากแล ้วใชเวลาคํ ้
านวณชาลง ก็ต ้องหาทางโยกย ้ายข ้อมูลแยกออกไปเก็บไว ้
ในแฟ้ มใหม่ในทีส
่ ด ่ นีถ
ุ พฤติกรรมเชน ้ อ ั นาการของการใช ้ Excel ทีเ่ ราทุกคนหลีกหนีไป
ื เป็ นวิวฒ
ไม่พ ้น

ดังนัน ่ ี จึงต ้องหาทางออกแบบตารางตัง้ แต่แรกให ้ใช ้


้ การออกแบบโครงสร ้างตารางคํานวณทีด
พืน ่ ารางแยกเป็ นสว่ นๆ เพือ
้ ทีต ี เดียว ไปแยกเก็บ
่ สามารถโยกย ้ายตารางจากเดิมทีเ่ ก็บอยูใ่ นชท
ี ใหม่หรือแฟ้ มใหม่ได ้ทันทีทต
ในชท ี่ ้องการ

หมายเหตุ บทความในภาคนีเ้ ป็ นเรือ


่ งต่อเนือ
่ งกับเรือ
่ งเดิมทีไ่ ด ้เขียนอธิบายไปก่อนแล ้ว จึงขอ
แนะนํ าให ้ผู ้อ่านเริม ึ ษาจากบทความภาคแรกเป็ นลําดับไปจาก
่ ต ้นศก
www.ExcelExpertTraining.com/blogs/ หรือนิตยสาร EWorld ฉบับเดือนกันยายน 2551 เป็ น
ต ้นมา

ี หรือแยกแฟ้ม
ล ักษณะของตารางคํานวณ Single Module แบบแยกชท

1. ตารางคํานวณทีแ ่ ยกชท ี นี้ มิได ้หมายความว่าให ้แยกแต่ละลําดับของการคํานวณให ้ใช ้


พืน้ ทีต
่ า่ งชท ี แล ้วสง่ ผลการคํานวณไปคํานวณต่อในชท ี อืน
่ ต่อกันไป แต่เป็ นการรวมลําดับ
การคํานวณทัง้ หมดไว ้ในชท ี เดียวกัน จากนัน้ จึงสร ้างชที ใหม่ให ้มีตารางคํานวณซํ้ากับ
ตารางคํานวณทีม ่ อ
ี ยูใ่ นชที เดิม เพียงแต่วา่ การคํานวณทีเ่ กิดขึน ้ ในแต่ละชท ี จะเกิดจากตัว
แปรทีต ่ า่ งกัน เชน ่ ชที เดิมใชคํ้ านวณตัวเลขในอดีต สว่ นชท ี ใหม่ให ้ใชคํ้ านวณตัวเลขใน
ปั จจุบน ั จากนัน ้ จึงนํ าผลทีค ่ ํานวณได ้นํ ามาเปรียบเทียบหาความแตกต่างระหว่างอดีต
และปั จจุบน ั
่ ใดทีใ่ ชช้ ท
2. เมือ ี หลายๆชท ี แยกตารางคํานวณ ย่อมแสดงว่าชท ี ทัง้ หมดยังคงอยูใ่ นแฟ้ ม
เดียวกัน เมือ ่ นัน ึ้ ซงึ่ หากในการใชงานไม่
้ ย่อมทําให ้แฟ้ ม Excel มีขนาดใหญ่ขน ้ ได ้

Copyright of www.ExcelExpertTraining.com 
346 

ต ้องการให ้ทุกตารางทําการคํานวณพร ้อมกัน ก็ไม่จําเป็ นต ้องเก็บชท ี ทัง้ หมดไว ้ในแฟ้ ม


เดียวกัน ก็หาทางแยกชท ี ไปแยกเก็บเป็ นแฟ้ มได ้ทันที จากนัน ้ เมือ
่ ใดทีต ่ ้องการให ้แฟ้ ม
ใดคํานวณก็จัดการเลือกเปิ ดเฉพาะแฟ้ มทีต่ ้องการขึน ้ มาสงั่ คํานวณ
3. แต่ละชท ี หรือแฟ้ มล ้วนมีตารางคํานวณทีม ่ โี ครงสร ้างและลําดับคํานวณเดียวกัน ซงึ่ ไม่ใช ่
เรือ
่ งยากทีจ ี หรือแฟ้ มขึน
่ ะสร ้างชท ้ ใหม่ให ้มีตารางคํานวณแบบเดิมเพราะเพียงแค่ copy
ตารางทัง้ ตารางไปทับก็ใชงานได้ ้แล ้ว แต่ถ ้ามีการแก ้ไขสูตรคํานวณหรือย ้ายตําแหน่ง
เซลล์ในชท ี ใด จึงเป็ นข ้อควรระวังว่าต ้องติดตามไปแก ้ไขทุกชท ี และทุกแฟ้ มให ้มีสต
ู ร
คํานวณและตําแหน่งเซลล์ตรงกันด ้วยในแต่ละชท ี หรือแต่ละแฟ้ ม
4. แทนทีจ ่ ะสร ้างตารางคํานวณแยกชท ี หรือแยกแฟ้ มซงึ่ ทําให ้เกิดข ้อควรระวังในการ
ติดตามไปแก ้ไขสูตรในแต่ละตารางคํานวณดังกล่าวข ้างต ้นแล ้ว ยังมีวธิ ท ี ด
ี่ ก
ี ว่าโดยการ
ใชช้ ที เดียวเป็ นตารางคํานวณ สว่ นชท ี อืน
่ ๆให ้ใชส้ ําหรับเก็บค่าตัวแปร จากนัน ้ จึงใชสู้ ตร
ดึงข ้อมูลตัวแปรจากชท ี ทีต
่ ้องการมาคํานวณในชท ี เดียว และเมือ ่ ใดทีต
่ ้องการ
เปรียบเทียบผลของการคํานวณก็สามารถใช ้ Data Table สรุปผลในลักษณะ
เชน่ เดียวกับโครงสร ้างตารางคํานวณ Single Module ในชท ี เดียวตามทีไ่ ด ้แนะนํ าไว ้ใน
ภาคก่อน

ต ัวอย่างโครงสร้างตารางคํานวณ Single Module


ี (อย่างง่าย)
แบบแยกชท

(Download ตัวอย่างได ้จาก


www.ExcelExpertTraining.com/extreme/files/database/singlemodule.xls)

ตัวอย่างนีด
้ ด ้
ั แปลงมาจากตัวอย่างทีใ่ ชในการอบรมหลั
กสูตรสุดยอดเคล็ดลับและลัดของ Excel
จากเดิมซงึ่ รวมตัวแปรของงบการเงินทัง้ สาม case ไว ้ติดกันในตารางเดียวกันในชท
ี เดียวกัน
เปลีย ี ต่างหากของมันเอง
่ นมาเป็ นการแยกตัวแปรของแต่ละ case ไว ้ในชท

โปรดสงั เกตว่านอกเหนือจากตําแหน่งของตารางในชท
ี Case1, Case2, และ Case3 ต ้องใช ้
ี คือใชเซลล์
ตําแหน่งเซลล์ตรงกันทัง้ สามชท ้ F3:F6 เก็บตัวเลขของยอดขายและต ้นทุนแล ้ว การ
ื่ ชท
ตัง้ ชอ ี ให ้มีคํานํ าหน ้าว่า Case เหมือนกันแล ้วตามด ้วยตัวเลข 1, 2, หรือ 3 ถือเป็ นสว่ นสําคัญ

Copyright of www.ExcelExpertTraining.com 
347 

่ ะชว่ ยให ้สูตรทีใ่ ชดึ้ งข ้อมูลจากชท


ทีจ ี ทีต
่ ้องการสามารถทําได ้ง่ายขึน ้ งึ่ เป็ น
้ ด ้วย ดังรูปต่อไปนีซ
ี ชอ
ชท ื่ SheetModule เป็ นตารางคํานวณทีเ่ ลือกดึงข ้อมูลจากชท
ี ชอ
ื่ ทีต
่ ้องการมาคํานวณ

1. ประเด็นสําคัญคือตําแหน่งเซลล์ F3:F6 เป็ นตําแหน่งเดียวกับข ้อมูลทีแ ี


่ ยกเก็บไว ้ในชท
Case1, Case2, และ Case3
2. เซลล์ F2 เป็ นเซลล์เดียวเท่านัน
้ ทีม
่ ก
ี ารแก ้ไขตัวเลข คุณสามารถบันทึกตัวเลข 1, 2, หรือ 3
ลงไปเพือ่ แสดงถึงเลขทีข ่ อง CaseNum ตาม case ทีถ ่ ก ี อืน
ู แยกไว ้ในชท ่ ดังนัน
้ เมือ
่ นํ า
ตัวเลขในเซลล์ F2 ไปต่อท ้ายกับคําว่า Case โดยใชสู้ ตร =”Case”&$F$2 ย่อมได ้ชอ ื่ ชที ที่
ต ้องการ (ตามภาพนี้ F2 มีเลข 2 บันทึกอยู่ ดังนัน ้ สูตร =”Case”&$F$2 จึงคืนค่าเป็ นคําว่า
Case2)
3. สูตรในเซลล์ F3:F6 คือ
=INDIRECT("Case"&$F$2&"!"&ADDRESS(ROW(),COLUMN()))
3.1. สูตรสว่ นตัง้ แต่ "Case"&$F$2&"!" จะคืนค่าออกมาเป็ นคําว่า Case2!
3.2. สูตรสว่ นของ ADDRESS(ROW(),COLUMN()) คืนค่าออกมาเป็ นตําแหน่งเซลล์ของ
เลขที่ row และเลขที่ column ของตําแหน่งเซลล์ทม ี่ ส
ี ต
ู รนีอ ่ ในเซลล์ F3 สง่ ผล
้ ยู่ เชน
ให ้สูตร Row() มีคา่ เป็ น 3 และสูตร Column() มีคา่ เป็ น 6 เพราะ Column F เป็ น
Column ที่ 6 จึงสง่ ค่าไปยังสูตร ADDRESS(3,6) ให ้คืนค่าเป็ น $F$3
3.3. เมือ ื่ มกับคําว่า $F$3 ด ้วยสูตร
่ นํ าผลลัพธ์คําว่า Case2! มาเชอ
"Case"&$F$2&"!"&ADDRESS(ROW(),COLUMN()) จึงได ้ชอ ื่ ชท
ี กับตําแหน่งเซลล์ท ี่
ต ้องการออกมาเป็ นคําว่า "Case2!$F$3"
ื่ ชท
3.4. สูตร Indirect จึงหาค่าจากชอ ี และตําแหน่งเซลล์ "Case2!$F$3" ได ้ตัวเลข 200
ตามต ้องการ
่ หาค่าด ้วยสูตร Indirect ในเซลล์ F3:F6 ได ้แล ้ว จึงสง่ ค่าต่อไปคํานวณในตารางคํานวณ
4. เมือ
งบการเงินในพืน ้ ทีต ้ ด D3:D6 เพือ
่ ารางด ้านซายสุ ่ ใชคํ้ านวณหา Margin

เคล็ดล ับทีใ่ ชร้ ว ี


่ มก ับโครงสร้างตารางคํานวณ Single Module แบบแยกชท

1. กรณีต ้องการสร ้างชที หลายชท ี ให ้มีหน ้าตาแบบเดียวกันโดยการสร ้างงานพร ้อมกันเพียงครัง้


เดียว ให ้เริม
่ จากกดปุ่ ม Ctrl พร ้อมกับคลิกที่ Sheet Tab เพือ ี ทีต
่ เลือกชท ่ ้องการ หรือหาก

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 จากแบบแยกชท
แยกแฟ้ม

1. แก ้สูตร Indirect ในเซลล์ F3:F6 เป็ นสูตร =Case1!F3, =Case1!F4, =Case1!F5,


และ =Case1!F6 ตามลําดับเพือ ี ชอ
่ link ข ้อมูลมาจากชท ื่ Case1 ในตําแหน่งเซลล์
เดียวกัน

(Download ตัวอย่างได ้จาก


www.ExcelExpertTraining.com/extreme/files/database/singlemodulelink.zip)
2. Move ชที ชอื่ Case1, Case2, Case3 ไปเป็ นแฟ้ มใหม่ โดยใชวิ้ ธค ี ลิกขวาทีช ื่ ชท
่ อ ี
Case1 แล ้วเลือก Move or Copy จากนัน ้ คลิกเลือก (new book) แล ้วกด OK จะพบว่า
ี Case1 ถูกย ้ายทัง้ ชท
ชท ี ไปเป็ นแฟ้ มใหม่ทม
ี่ ช ี เพียงชท
ี ท ี เดียว แล ้วให ้ทําซํ้ากับชท ี
Case2 และ Case3 ให ้เป็ นแฟ้ มใหม่แยกจากกันโดยใชวิ้ ธเี ดียวกันนีอ ้ ก

3. จัดเก็บแฟ้ มทีเ่ กิดขึน ี Case1, Case2, และ Case3 โดยตัง้ ชอ


้ ใหม่จากการย ้ายชท ื่ แฟ้ ม
เป็ น SingleModuleLinkFilesCase1.xls, SingleModuleLinkFilesCase2.xls, และ
SingleModuleLinkFilesCase3.xls ตามลําดับ แล ้วเมือ ่ กลับไปคลิกดูสต ู รในเซลล์
F3:F6 ในชท ี SheetModule จะพบว่าสูตรเดิมทีเ่ คยเป็ นสูตร link ข ้ามชท ี ถูกแก ้ไขเอง
เป็ นสูตร link ข ้ามแฟ้ ม =[SingleModuleLinkFilesCase1.xls]Case1!F3, =
[SingleModuleLinkFilesCase1.xls]Case1!F4, =

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

5. ให ้คลิกเลือกชอ ื่ แฟ้ มต ้นทางเดิม แล ้วกดปุ่ ม Change Source จากนัน ้ ไล่คลิกหาแฟ้ มต ้น


ทางใหม่ทต ี่ ้องการ ซงึ่ เมือ่ เลือกแฟ้ มต ้นทางใหม่ได ้เรียบร ้อยและกดปุ่ ม OK > Close
กลับมาแฟ้ มปลายทาง จะพบว่าสูตรเก่าถูกแก ้ไขให ้ดึงข ้อมูลมาจากแฟ้ มต ้นทางใหม่ให ้

Copyright of www.ExcelExpertTraining.com 
351 

เองทันที

้ อ
ข้อควรระว ังในการใชข ้ มูลที่ link ข้ามแฟ้ม

1. โครงสร ้างภายในของแฟ้ มต ้นทางต ้องเหมือนกันทุกแฟ้ ม โดยตําแหน่งเซลล์ใดเป็ น


ข ้อมูลอะไรก็ต ้องกําหนดให ้ทุกแฟ้ มใชตํ้ าแหน่งเซลล์เดียวกันทัง้ หมด
2. หากแฟ้ มต ้นทางมีชท ี เดียวแต่ใชช้ อ ื่ ชที ต่างกันเชน่ ในตัวอย่างนีใ้ ชช้ อ ื่ ชท
ี ว่า Case1,
Case2, และ Case3 เมือ ่ สงั่ Change Source จะพบว่า Excel สามารถปรับสูตร link
ข ้ามแฟ้ มให ้ถูกต ้อง แต่ถ ้าแฟ้ มต ้นทางมีหลายชท ี ต ้องตัง้ ชอื่ ชท
ี ให ้ตรงกันทุกแฟ้ มด ้วย
มิฉะนัน
้ Excel จะมีขน ั ้ ตอนเปิ ดจอขึน ้ มาถามว่าให ้จับชอื่ ชที ใดแทนด ้วยชอ ื่ ชท
ี ใด
3. ถ ้าต ้องการแก ้ไขโครงสร ้างตารางโดยเฉพาะตําแหน่งเซลล์ในแฟ้ มต ้นทาง ก่อนจะแก ้ไข
ใดๆให ้เปิ ดทุกแฟ้ มที่ link กัน ทัง้ แฟ้ มต ้นทาง แฟ้ มปลายทาง รวมทัง้ แฟ้ มต ้นทางใหม่ท ี่
ยังไม่ได ้ link ขึน
้ มาบนจอให ้ครบทัง้ หมดก่อน จากนัน ้ จึงค่อยทําการแก ้ไข เพือ ่ ทําให ้
Excel ไล่แก ้ตําแหน่งอ ้างอิงในสูตรทีอ ่ ้างถึงแฟ้ มทีเ่ กีย
่ วข ้องให ้เอง (ถ ้าไม่ได ้เปิ ดแฟ้ ม
Excel จะละเลยไม่สนใจตามไปแก ้ไขให ้แม ้แต่น ้อย)
4. ถ ้าต ้องการ Save เพือ ื่ แฟ้ มใหม่หรือย ้าย Folder ทีเ่ ก็บแฟ้ ม ให ้สงั่ Save แฟ้ มต ้น
่ ตัง้ ชอ
ทางก่อนแล ้วจึง Save แฟ้ มปลายทางทีหลัง (แต่ถ ้าไม่ได ้แก ้ไขชอ ื่ แฟ้ มหรือย ้าย Folder
จะ Save แฟ้ มใดก่อนก็ได ้ แต่ต ้อง Save ให ้ครบทุกแฟ้ ม)

Copyright of www.ExcelExpertTraining.com 
352 

การออกแบบโครงสร้างตารางคํานวณ
แบบ Compound Module

เคยมีคํากล่าวว่า Excel ไม่สามารถนํ ามาใชกั้ บการวางแผนความต ้องการวัสดุได ้หรอก เราต ้อง


ื้ โปรแกรมสําเร็จรูปราคาแพงเป็ นแสนเป็ นล ้านบาทมาใชในการวางแผนการผลิ
หันไปซอ ้ ต ซงึ่
ิ ค ้าหลายๆแห่งอาจคิดว่าไม่แพง เพราะเมือ
โรงงานผลิตสน ่ นํ าราคาโปรแกรมสําเร็จรูปไปเทียบ
ิ ค ้าทีผ
กับมูลค่าของโรงงานและสน ั สว่ นทีน
่ ลิตแล ้วถือว่าเป็ นสด ่ ้อยมาก แล ้วเมือ
่ นํ าโปรแกรม
สําเร็จรูปเหล่านีม
้ าใช ้ กลับพบว่าไม่สามารถนํ ามาใชกั้ บการวางแผนการผลิตได ้อย่างสมบูรณ์
ี อีก ครัน
เสย ้ จะขอให ้ผู ้ขายโปรแกรมสําเร็จรูปชว่ ยแก ้ไขดัดแปลงโปรแกรมให ้ใหม่ก็ถก
ู คิด
ค่าใชจ่้ ายเป็ นเงินอีกมากมาย ทีแ
่ ย่ทส
ี่ ด
ุ ก็คอ ื้ โปรแกรมมาใชได
ื พอซอ ้ ้สก
ั พัก เจ ้าตัวบริษัททีข
่ าย
โปรแกรมให ้กลับปิ ดตัวเลิกกิจการไปแล ้ว เป็ นเหตุให ้โปรแกรมสําเร็จรูปทีไ่ ด ้มาถูกนํ ามาใชงาน


แค่ครึง่ ๆกลางๆหรือถึงกับเลิกใชไปเลยก็ มี

คนทีเ่ ก่งคอมพิวเตอร์ไม่วา่ จะเป็ นโปรแกรมเมอร์หรือผู ้ทีค


่ ลุกคลีอยูใ่ นแวดวง IT มักเข ้าใจว่า
ื้ โปรแกรมสําเร็จรูปทีถ
ปั ญหาการคํานวณยากๆ ต ้องหาทางเขียนโปรแกรมหรือหาซอ ่ ก
ู สร ้าง
ขึน
้ มาเพือ ้ ้ปั ญหายากๆเหล่านัน
่ ใชแก ้ โดยเฉพาะ แม ้แต่คนทีเ่ ก่ง Excel ก็ตาม มักชอบคิดว่าต ้อง

ใชโปรแกรม ่ ไม่สามารถใชสู้ ตร
VBA (Visual Basic for Applications) เป็ นทางออกสุดท ้ายเมือ
หรือคําสงั่ บนเมนูของ Excel ชว่ ยในการแก ้ปั ญหาทีว่ า่ ยากนัน
้ ได ้ ซงึ่ ถ ้าว่าไปแล ้วก็ไม่ใชก
่ ารคิด
่ การวางแผนการผลิต มีสงิ่ ทีต
ทีไ่ ม่มเี หตุผล เพราะปั ญหาการคํานวณยากๆ ยกตัวอย่างเชน ่ ้อง
คํานึงถึงหลายอย่างทีเ่ กีย ่ เงือ
่ วข ้องกับการวางแผน เชน ่ นไขทีเ่ กีย ิ ค ้าคงเหลือ
่ วข ้องกับยอดสน
ต ้นงวดปลายงวด ยอดวัตถุดบ ่ ้องสงั่ ซอ
ิ ทีต ื้ ซงึ่ ยังสม
ั พันธ์กบ
ั โครงสร ้างผลิตภัณฑ์หรืออัตรา
สว่ นผสม หากวัตถุดบ
ิ ขาดมือก็ต ้องสงั่ ซอ
ื้ มาสํารองไว ้ให ้เพียงพอซงึ่ เกีย
่ วข ้องกับเงือ
่ นไขการ
ขายของผู ้ขายเข ้าไปอีก และทัง้ หมดนีย ่ ะต ้องสงั่ ผลิตเพือ
้ งั ต ้องหาทางกําหนดเวลาทีจ ่ ให ้ได ้
ิ ค ้าตามต ้องการ ณ กําหนดเวลาทีต
จํานวนสน ่ ้องการ .... แค่เห็นปั ญหาทีเ่ กีย
่ วข ้องเหล่านีก
้ ็แทบ
ไม่อยากจะคิดด ้วยสมองแล ้วใชไ่ หม หลายต่อหลายคนจึงพากันตอบว่า หันไปซอ
ื้ โปรแกรม
สําเร็จรูปมาใชกั้ นดีกว่า

จากประสบการณ์ทผ
ี่ มคลุกคลีอยูก
่ บ
ั Excel มานานกว่ายีส ิ ปี พบว่า คนทีเ่ ก่ง Excel มากๆมัก
่ บ
่ งการวางแผนการผลิต สว่ นคนทีเ่ ก่งในการวางแผนการผลิตก็มก
ขาดความรู ้เรือ ั จะไม่เก่ง Excel
จึงทําให ้ไม่มใี ครทีส ้
่ ามารถนํ าความรู ้ทัง้ Excel และการวางแผนการผลิตมาใชงานร่ ี ที
วมกันเสย
ทางสมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น) ุ่ ได ้กรุณาให ้ผมเข ้าอบรมหลักสูตรการวางแผนการ

Copyright of www.ExcelExpertTraining.com 
353 

ผลิตทีส ้ ทําให ้เกิดแนวทางใช ้ Excel โดยออกแบบตารางคํานวณแบบ Compound


่ มาคมจัดขึน
Module นีข
้ น ้
ึ้ มา จึงใคร่ขอใชโอกาสนี ้ ขอบคุณสมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น) ุ่ เป็ น
อย่างยิง่ ซงึ่ คงไม่เป็ นการกล่าวทีเ่ กินไปว่า ในโลกนีม
้ แ
ี ต่ประเทศไทยของเราเท่านัน
้ ทีม
่ ี
เทคโนโลยีการออกแบบตารางคํานวณแบบ Compound Module หรือหากประเทศอืน
่ ทําได ้ก็
น่าจะเรียนรู ้มาจากเราอีกต่อหนึง่

ล ักษณะโครงสร้างตารางคํานวณแบบ Compound Module

โครงสร ้างตารางคํานวณแบบ Compound Module เกิดจากแนวความคิดทีจ ้


่ ะใชตาราง Excel
่ กันสําหรับการคํานวณทีต
หลายๆเซลล์ตอ ่ อ
่ เนือ
่ งกันหลายๆขัน
้ พอเซลล์หนึง่ คํานวณขัน
้ หนึง่
เสร็จ ก็ให ้สง่ ค่าไปคํานวณต่อในอีกเซลล์หนึง่ แล ้วสง่ ค่าต่อๆกันไปยังเซลล์ทอ
ี่ ยูใ่ นพืน
้ ทีต
่ าราง
คํานวณชุดเดียวกัน ซงึ่ ในตารางคํานวณชุดเดียวกันนีอ
้ าจต ้องใชจํ้ านวนเซลล์ตงั ้ แต่ 2 เซลล์ขน
ึ้
ไปจนถึงนับร ้อยนับพันเซลล์ก็เป็ นได ้เพือ
่ ให ้ไล่คํานวณตัง้ แต่ต ้นจนจบ

แนวความคิดดังกล่าวนีฟ ่ งแปลกใชไ่ หม คุณเองก็ใชตาราง


้ ั งดูแล ้วก็ไม่เห็นเป็ นเรือ ้ Excel ใน
แบบทีก
่ ล่าวนีเ้ ป็ นกันอยูแ
่ ล ้ว เพียงแต่วา่ แทนทีจ ้
่ ะใชตารางคํ านวณเพียงชุดเดียวเพือ
่ คํานวณให ้
ผลลัพธ์ทต ้
ี่ ้องการแล ้วเสร็จ เรายังต ้องหาทางใชตารางคํ านวณชุดถัดไป ทีม
่ ห
ี น ้าตาตาราง
เหมือนกับตารางคํานวณชุดแรก เพือ ้
่ ใชในการคํ านวณซํ้าแบบเดียวกับการคํานวณในตาราง
คํานวณชุดแรกซํ้าต่อไปอีกให ้ได ้ โดยหาทางสร ้างสูตรในตารางคํานวณชุดถัดไปให ้สามารถรับ
ค่าจากตารางคํานวณชุดก่อน (Simple Compound Module) หรือเลือกรับค่าตารางคํานวณชุด
ใดๆก็ได ้มาใชคํ้ านวณซํ้าอีก (Dynamic Compound Module)

องค์ประกอบสําคัญทีเ่ ป็ นสว่ นชว่ ยให ้เราสามารถสร ้างตารางคํานวณขึน


้ เพียงชุดเดียว จากนัน

สามารถสงั่ Copy แล ้วนํ าไป Paste ให ้เกิดตารางคํานวณชุดต่อไปซงึ่ มีสต
ู รซํ้ากับตารางคํานวณ
ชุดแรกทุกเซลล์ก็คอ
ื ขอให ้หลีกเลีย
่ งการกําหนดตําแหน่งอ ้างอิงใดๆในสูตรแบบ Absolute
่ $A$1) แต่ให ้ใชการกํ
(เชน ้ ่ A1) แทน หรือถ ้า
าหนดตําแหน่งอ ้างอิงแบบ Relative (เชน
่ งไม่ได ้ ก็ขอให ้ใชตํ้ าแหน่งอ ้างอิงแบบ Mixed ในแบบควบคุมตําแหน่ง Column ให ้
หลีกเลีย
่ $A1) โดยให ้ใชให
คงที่ (เชน ้ ้น ้อยทีส
่ ด
ุ เพราะถ ้ากําหนดตําแหน่งอ ้างอิง $A1 ไว ้ จะต ้อง Paste
ตารางคํานวณชุดถัดไปในแนว Column เดิมเสมอ มิฉะนัน
้ การอ ้างอิงจะผิดเพีย
้ นจากตําแหน่งที่
ต ้องการ

่ ุ ้นเคยกับการสร ้างตารางคํานวณต ้องทราบถึงประโยชน์ของการใสเ่ ครือ


ผู ้ทีค ่ ชว่ ย
่ งหมาย $ เพือ
ควบคุมตําแหน่งอ ้างอิงในสูตรว่ามีความสําคัญเพียงใด แม ้เครือ
่ งหมาย $ จะชว่ ยให ้เราสร ้างสูตร

Copyright of www.ExcelExpertTraining.com 
354 

้ เ่ ซลล์อน
แล ้ว Copy ไปใชที ื่ ได ้ทันที แต่ในโครงสร ้างตารางคํานวณแบบ Compound Module นี้
่ งหมาย $ กลับเป็ นสงิ่ ต ้องห ้าม ดังนัน
เครือ ้ แม ้ในระหว่างการสร ้าง Module แรกขึน ้
้ มาใชงาน ซงึ่
ั เครือ
เราจําเป็ นต ้องอาศย ่ งหมาย $ แต่เมือ
่ สร ้างงานเสร็จแล ้วก็ต ้องลบเฉพาะเครือ
่ งหมาย $ ที่
้ ทงิ้ ไป โดยใน Excel 2007 ใชคํ้ าสงั่ Home > Find & Select > Replace หรือใน
ใชในเซลล์
Excel 2003 ใชคํ้ าสงั่ Edit > Replace เพือ
่ สงั่ เปลีย
่ นเครือ
่ งหมาย $ ให ้หายไป

ต ัวอย่างตารางคํานวณ Compound Module อย่างง่าย

Download ตัวอย่างได ้จาก


www.ExcelExpertTraining.com/extreme/files/database/CompoundModule.xls

ตัวอย่างนีอ ี ชอ
้ ยูใ่ นชท ื่ SimpleCompound เป็ นตารางคํานวณหาระยะเวลาทีใ่ ชในการผลิ
้ ต
ิ ค ้า A, B, C, D (ProductName เซลล์ B4:B7) โดยสน
กําหนดให ้ผลิตสน ิ ค ้าแต่ละชนิดต ้องใช ้
่ ในการผลิตสน
เวลาในการผลิตต่างกันไป เชน ิ ค ้า A เมือ
่ ผ่านขัน
้ ตอนการผลิต 4 ขัน
้ ตอน (เซลล์

C4:F4) ต ้องใชเวลา 20 นาทีในการผลิตขัน
้ ตอนที่ 1 จากนัน ้
้ ต ้องใชเวลา 10 นาที ตามด ้วย 30
นาที และตามด ้วย 20 นาที ในขัน
้ ตอนที่ 2, 3, 4 ตามลําดับจึงจะแล ้วเสร็จ

ิ ค ้า A, B, C, และ D นี้ หากกําหนดให ้เริม


ในกระบวนการผลิตสน ิ จะ
่ ต ้นผลิตในเวลา 8 นาฬกา
ผลิตเสร็จในเวลาใด ทัง้ นีก ิ ค ้า A, D, C, B ก่อนหลังตามลําดับ (หรือใน
้ ําหนดให ้เลือกผลิตสน

อนาคตอาจจัดลําดับการผลิตก่อนหลังต่างไปก็ได ้) โดยหาทางให ้ใชระยะเวลาผลิ
ตทีน
่ ้อยทีส
่ ด

เมือ ิ ค ้าใดเสร็จให ้ผลิตสน
่ ผลิตสน ิ ค ้าชนิดต่อไปได ้ทันที

ตารางด ้านขวาทีเ่ ซลล์ L4:L6 ของรูปข ้างต ้นเป็ นคําตอบทีไ่ ด ้จากการคํานวณ กล่าวคือ เมือ
่ เริม

ิ จะผลิตสน
ผลิตในเวลา 8 นาฬกา ิ ถือเป็ นระยะเวลาผลิต
ิ ค ้าทัง้ หมดเสร็จในเวลา 11 นาฬกา
ิ้ 3 ชวั่ โมง
ทัง้ สน

ปั ญหาทีต
่ ้องคํานึงถึงในการกําหนดขัน
้ ตอนการผลิตในตัวอย่างนีก
้ ็คอ
ื เราต ้องหาทางสร ้าง
ตารางคํานวณทีส
่ ามารถจัดลําดับการผลิตก่อนหลังแบบใดก็ได ้ อีกทัง้ ต ้องหาทางสร ้างสูตรให ้

Copyright of www.ExcelExpertTraining.com 
355 

กําหนดเวลาเริม
่ ผลิตในแต่ละขัน ิ ค ้าแต่ละตัว ต่อเนือ
้ ตอนของสน ่ งกับเวลาผลิตเสร็จในขัน
้ ตอน
ก่อนหน ้า หรืออีกนัยหนึง่ ห ้ามสงั่ ผลิตสน
ิ ค ้าชนิดถัดไป หากสน
ิ ค ้าชนิดแรกยังอยูใ่ นกระบวนการ
ผลิตขัน
้ ตอนนัน
้ ๆ ดังรูปต่อไปนี้

ขอให ้พิจารณาภาพ Gantt Chart ในลําดับการผลิตของ Process 2 จะพบว่าเมือ ิ ค ้า A ผลิต


่ สน
ิ แต่ยงั ไม่สามารถนํ าสน
เสร็จในเวลา 8:30 นาฬกา ิ ค ้า D มาผลิตต่อใน Process 2 ได ้ทันที
เพราะในขณะนัน ิ ค ้า D ยังอยูใ่ นกระบวนการผลิตของ Process 1 อยู่ ต ้องรอจนถึงเวลา 8:40
้ สน
ิ จึงเริม
นาฬกา ิ ค ้า D ใน Process 2 ต่อไปได ้ แล ้วต่อเมือ
่ ผลิตสน ิ ค ้า D ผลิตเสร็จใน Process
่ สน
ิ ค ้า C และ B มาผลิตต่อใน Process 2 ได ้ต่อเนือ
2 ก็สามารถนํ าสน ่ งทันที

Compound Module ในตัวอย่างนีค


้ อ
ื พืน
้ ทีต ้
่ ารางตัง้ แต่เซลล์ B12:Z15 โดยกําหนดให ้ใชเซลล์
้ ดสําหรับบันทึกชอ
B12 ตรงหัวมุมซายบนสุ ื่ สน
ิ ค ้าทีต
่ ้องการลงไป จากนัน
้ เซลล์ C13:F13 จะดึง

ระยะเวลาทีใ่ ชในการผลิ
ต (Time Consumed) จากตาราง Time Consumed Table ด ้านบน
ี ลงมาใชงาน
ของชท ้ โดยใชสู้ ตร =VLOOKUP($B12,TimeConsumedTbl,C12+1,0) จากนัน

เมือ
่ นํ าเวลาเริม
่ ผลิต 8:00 ในเซลล์ C10 มาบวกเพิม ้
่ ด ้วยระยะเวลาทีใ่ ชในการผลิ
ต ทําให ้
คํานวณหา Start Time และ Stop Time ในพืน
้ ทีเ่ ซลล์ C14:F15

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 แรกในเซลล์ B12:Z15 เสร็จแล ้ว เมือ


่ ต ้องการคํานวณหากําหนดการ
ิ ค ้าในลําดับถัดไป ก็เพียงแค่ Copy เซลล์ B12:Z15 ไป Paste ต่อกันลงไปแล ้ว
ผลิตของสน
เปลีย ื่ สน
่ นชอ ิ ค ้าทีเ่ ซลล์หวั มุมซายของแต่
้ ื่ สน
ละ Module ตามชอ ิ ค ้าทีผ
่ ลิตในแต่ละลําดับ ก็จะ
พบว่า Module ทุกชุดคํานวณร่วมกันได ้ระยะเวลาและกําหนดการผลิตแต่ละขัน
้ ตอนตาม
ต ้องการในทันที

โปรดสงั เกตว่า แต่ละ Module ถูกวางห่างกันโดยเว ้นระยะ 1 row ระหว่างกันเสมอ ทัง้ นีเ้ พือ
่ ทํา
ให ้สูตร =MAX(D10,C15) จาก Module แรกเป็ นสูตรดึงค่าจาก Stop Time ซงึ่ เป็ น row
ล่างสุดของ Module ด ้านบนมาใชต่้ อไปนั่นเอง

Copyright of www.ExcelExpertTraining.com 
357 

ต ัวอย่างตารางคํานวณ Compound Module


แบบ Dynamic

ตัวอย่างทีผ ื่ มค่าจาก Module ทีว่ างไว ้ด ้านบนติดกัน


่ า่ นมาเป็ นการกําหนดตําแหน่งอ ้างอิงทีเ่ ชอ
เหมาะกับการคํานวณทีม
่ ข
ี น
ั ้ ตอนต่อเนือ ้
่ งกันไปแบบเสนตรง แต่หากการวางแผนการผลิตต ้อง
เกีย
่ วข ้องกับโครงสร ้างผลิตภัณฑ์ (Bill of Materials : BOM) ในโครงสร ้างทีซ ั ซอนตามภาพ
่ บ ้
ต่อไปนี้ ก็ต ้องหาทางพัฒนาโครงสร ้างตารางคํานวณแบบ Dynamic

ิ ค ้า A ซงึ่ หากผลิตเพียง 1 หน่วย ( Unit = 1 ) ต ้องอาศย


จากภาพแสดงถึงการผลิตสน ั วัสดุ B
จํานวน 2 หน่วยและ C จํานวน 3 หน่วย โดยในการผลิตวัสดุ B ต ้องใชวั้ สดุ D จํานวน 2 หน่วย
และวัสดุ E จํานวน 2 หน่วย สว่ นวัสดุ C ต ้องใชวั้ สดุ E จํานวน 2 หน่วยและวัสดุ F จํานวน 2
หน่วย ซงึ่ ในการผลิตวัสดุ F เองก็ต ้องอาศย
ั วัสดุ G จํานวน 1 หน่วยและวัสดุ D จํานวน 2 หน่วย

สว่ นคําว่า 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 

การใชวั้ สดุและ LT เปลีย


่ นแปลงไปจากเดิม ก็ต ้องหาทางประยุกต์ใช ้ Excel กับงาน MRP ได ้
โดยไม่จําเป็ นต ้องแก ้ไขสูตรคํานวณใหม่แม ้แต่น ้อย

ั ท์คําว่า Parent กับ Child ทีต


อนึง่ ในแง่ของโครงสร ้างผลิตภัณฑ์ยงั มีศพ ่ ้องทําความเข ้าใจ
เพราะเป็ นหลักการสําคัญทีน ้
่ ํ าไปใชในการสร ่ หากกําหนดให ้สน
้างตารางคํานวณ เชน ิ ค ้า A เป็ น
Parent ก็จะพบว่ามีวส
ั ดุ B และ C เป็ น Child แล ้วหากกําหนดให ้วัสดุ B เป็ น Parent ก็จะพบว่า
ั ดุ D และ E เป็ น Child ซงึ่ จะเห็นว่าการพิจารณาความสม
มีวส ั พันธ์ระหว่างการเป็ น Parent-
ั พันธ์ระหว่างการผลิตสน
Child เป็ นการพิจารณาความสม ิ ค ้าหรือวัสดุในลําดับหนึง่ นั่นเอง

ตัวอย่างต่อไปนีม ี ชอ
้ าจากชท ื่ DynamicCompound ในแฟ้ มชอ
ื่ CompoundModule.xls

โครงสร ้างตารางคํานวณแบบ Compound Module คือ พืน


้ ทีต
่ ารางตัง้ แต่เซลล์ B6:P7 มีเซลล์
ทีใ่ ชรั้ บค่าตัวแปรใน Column B, C, E, และ F โดยใชเซลล์
้ B6 สําหรับบันทึกชอ
ื่ Item ในระดับ

Child และใชเซลล์ ื่ Parent โดยใชเซลล์
C6 บันทึกชอ ้ ั สว่ นการ
E6 และ F6 บันทึกตัวเลขสด
ผลิตและ Lead Time ตามลําดับ

วิธก ้
ี ารนํ า 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 

หลักการคํานวณทีใ่ ช ้ เกิดจากการหาตําแหน่งเลขที่ row สุดท ้ายของแต่ละ Module (Last Row


of Module) ใน Column D ให ้ได ้ก่อน จากนัน ้
้ จึงใชเลขเลขที ่ row สุดท ้ายของแต่ละ Module
สําหรับดึงตัวเลขการสงั่ ผลิตจาก Module ของ Parent ไปใชในการส
้ งั่ ผลิตของ Module ทีเ่ ป็ น
Child

เพือ ั เจนยิง่ ขึน


่ ทําให ้เห็นลําดับการคํานวณได ้ชด ้ ขอให ้ดู Row 14 ซงึ่ เป็ นการสงั่ ผลิตวัสดุ E
ื่ วัสดุ C ลงไปในเซลล์ C14 จะพบว่าในเซลล์ D14 คํานวณหาเลข
ให ้กับวัสดุ C พอคุณบันทึกชอ
9 มาให ้ ซงึ่ เกิดจากสูตร =MATCH(C14,B$1:B$1001,0)+1 โดยสูตร Match จะนํ าชอ
ื่ Parent
C ไปเทียบหาตําแหน่งจากพืน ื่ C อยูใ่ นลําดับที่ 8 จากนัน
้ ที่ B1:B1001 พบว่าชอ ้ นํ าไปบวก 1
ให ้กลายเป็ นเลขที่ Row 9 ซงึ่ เป็ นตําแหน่งเลขที่ row สุดท ้ายของ Module (Last Row of
Module) ทีม ื่ C
่ ี Child ชอ

้ จึงใชสู้ ตรดึงตัวเลข 150 จากเซลล์ N9 สง่ ต่อมาใชที


พอได ้เลข 9 ในเซลล์ D14 แล ้ว จากนัน ้ ่
เซลล์ N14 โดยใชสู้ ตร =INDIRECT(ADDRESS($D14,COLUMN()))*$E14 โดยในการผลิต
ั วัสดุ E จํานวน 2 หน่วย (เซลล์ E14 = 2) จึงต ้องสงั่ ผลิต E
วัสดุ C จํานวน 1 หน่วย ต ้องอาศย
จํานวน 300 หน่วย (=150x2) สว่ นวัสดุ E นัน ้
้ กว่าจะผลิตเสร็จก็ต ้องใชระยะเวลา (LT) 2 วัน ทํา
ให ้ต ้องสงั่ ผลิตหรือจัดหาวัสดุ E ล่วงหน ้าตัง้ แต่วันที่ 5 จึงจะพร ้อมต่อการนํ าไปใชผลิ
้ ตต่อใน
วันที่ 7

สว่ นของสูตร =INDIRECT(ADDRESS($D14,COLUMN())) ในเซลล์ N14 ชว่ ยดึงค่ามาจาก


ี่ ราบตําแหน่ง Row และ Column โดยที่ D14 เป็ นเลขที่ Row สว่ นสูตร Column() จะ
เซลล์ทท
หาเลขที่ Column N ณ ตําแหน่งของเซลล์สต
ู ร จึงทําให ้เกิดสูตร Address(9,14) คืนค่าออกมา
เป็ นตําแหน่งเซลล์ $N$9 จากนัน
้ สูตร Indirect(“$N$9”) จึงดึงค่าจากเซลล์ N9 มาให ้ในทีส
่ ด

ี ชอ
ตัวอย่างจากชท ื่ DynamicCompound นีเ้ ป็ นการคํานวณอย่างง่ายเพือ
่ แสดงหัวใจของการ
ื่ มโยงตัวเลขการสงั่ ผลิต ณ กําหนดเวลาทีต
เชอ ่ ้องการของแต่ละ Module เข ้าด ้วยกัน แต่ในการ
ิ ค ้าต ้นงวดปลายงวดและตัวเลขอีกมากมายทีเ่ ป็ นเงือ
ผลิตจริงยังต ้องคํานึงถึงตัวเลขสน ่ นไข
่ วข ้องกับการผลิตแต่ละครัง้ จึงขอให ้ใช ้ Module ทีส
เกีย ี ชอ
่ ร ้างไว ้ในชท ื่ MRPModule แทน

Copyright of www.ExcelExpertTraining.com 
360 

ี ํ า Module ไปใชก็้ ใชวิ้ ธ ี Copy ไป Paste ซํ้าตามโครงสร ้างผลิตภัณฑ์เชน


วิธน ่ เดียวกัน โดย
โครงสร ้างตารางคํานวณทีส ้ แบบสมบูรณ์นี้ Child แต่ละตัว สามารถสงั่ ผลิตเป็ นวัสดุให ้
่ ร ้างขึน
Parent ได ้ 3 ตัว (เซลล์ D20:D22) ทําให ้ไม่จําเป็ นต ้องเตรียม Module ของ Child ซํ้ากันเชน

ตัวอย่างทีผ
่ า่ นมา

จากนัน
้ เมือ ื ระบบการวางแผนและควบคุมการผลิต โดยรศ.
่ นํ าตัวอย่างการทํา MRP จากหนังสอ
พิภพ ลลิตาภรณ์ สํานักพิมพ์ของสมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น) ุ่ หน ้า 136 มาวางแผน
ความต ้องการวัสดุ จะเกิดเป็ น Compound Module ทีค
่ ํานวณร่วมกันตามตัวอย่างทีเ่ ปิ ดให ้
Download ได ้จาก www.ExcelExpertTraining.com/extreme/files/database/
CompoundModuleMRP(Ans).xls ซงึ่ เป็ นตัวอย่างทีใ่ ชประกอบการอบรมหลั
้ กสูตรการ
ประยุกต์ใช ้ Excel สําหรับวางแผนความต ้องการวัสดุและจัดตารางการผลิต ทีจ
่ ัดอบรมขึน
้ ณ
สมาคมสง่ เสริมเทคโนโลยี (ไทย-ญีป
่ น)
ุ่

Copyright of www.ExcelExpertTraining.com 
361 

ตัวอย่างในแฟ้ ม CompoundModuleMRP(Ans).xls นอกเหนือจากแสดงการใช ้ Compound


ั ซอนโดยนํ
Module แบบซบ ้ าโครงสร ้างผลิตภัณฑ์ 2 โครงสร ้างมาใชร่้ วมกันแล ้ว ยังแสดงวิธก
ี าร
่ เก็บค่าตัวแปร แล ้วใชสู้ ตรดึงค่าจากตารางตัวแปรไปยังเซลล์รับค่าใน
สร ้างตารางฐานข ้อมูลเพือ
่ ชว่ ยอํานวยความสะดวกในการกรอกข ้อมูลและลดโอกาสผิดพลาด
Module ให ้เองอีกด ้วยเพือ
่ ง จากนัน
จากการกรอกข ้อมูลผิดชอ ้ เมือ
่ ได ้ผลลัพธ์ทค
ี่ ํานวณใน Compound Module เสร็จ
เรียบร ้อยก็ยงั แสดงวิธใี ชสู้ ตรดึงผลลัพธ์ไปสรุปเพือ
่ เปรียบเทียบกับจํานวนการผลิตทีเ่ กิดขึน
้ จริง
ทีอ
่ าจแตกต่างจากแผนการผลิตทีว่ างไว ้

่ ท้าย
บทสง

่ ํ ามาอธิบายนี้ น่าจะเป็ นการจุดประกายความคิดให ้ผู ้ใช ้ Excel


การออกแบบตารางคํานวณทีน
สามารถสร ้างสรรค์งานได ้หลายหลายรูปแบบมากขึน ื่ ว่าหลักการหรือแนวความคิดทีไ่ ด ้
้ ผมเชอ
ให ้ไปแล ้วนีย ่ มเป็ นสงิ่ ทีส
้ อ ่ ําคัญมากกว่าตัวอย่างทีม ี ระโยชน์จํากัดแค่ใชกั้ บการแก ้ไขปั ญหา
่ ป
หนึง่ เสร็จแล ้วก็แล ้วกันไป ขอเพียงสามารถนํ าหลักการหรือแนวความคิดไปพัฒนาต่อ ย่อมเป็ น
แนวทางให ้สามารถใช ้ Excel แบบคอมพิวเตอร์ สามารถนํ า Excel ไปประยุกต์ใชกั้ บงานทีห
่ ลาย
คนคิดว่าทําไม่ได ้มาก่อน หาทางสร ้างตารางคํานวณทีส ้
่ ะดวกต่อการนํ ามาใชงานซ ํ้าแล ้วซํ้าอีก
่ ําคัญคือเป็ นหลักการทีง่ า่ ยต่อความเข ้าใจ
ง่ายต่อการแก ้ไข และทีส

Copyright of www.ExcelExpertTraining.com 
Copyright

ถ ้าผู ้ใดประสงค์จะนํ าข ้อมูลในเว็บ XLSiam.com นี้ ไปเผยแพร่โดยการพิมพ์แจก หรือทําสําเนา

ื่ ใดๆ เพือ
ผ่านสอ ้
่ ใชในการศ ึ ษาของตนเอง หรือเพือ
ก ่ นํ าไปแจกผู ้อืน
่ เป็ นวิทยาทานโดยไม่คด


มูลค่า และเป็ นการกระทําทีใ่ ชการลงทุ ้ กรุณาพิมพ์ได ้หรือทําสําเนาได ้
นลงแรงของตนเอง ผู ้นัน

โดยไม่ต ้องขออนุญาตแต่อย่างใด ขอเพียงระบุทม


ี่ าของข ้อมูลเหล่านัน
้ ไว ้เสมอ

สําหรับข ้อมูลสว่ นของผู ้ซงึ่ ร่วมใชเว็


้ บนีใ้ นการเขียนบทความ ถือเป็ นสท
ิ ธิของผู ้เขียนบทความ

่ ะนํ าข ้อมูลสว่ นของตนเองไปใชตามที


หรือผู ้ให ้คําตอบ ทีจ ้ ต ่ นต ้องการ และผู ้นัน
้ สามารถเลือกที่

จะกําหนดเงือ ิ ธิใ์ นสว่ นข ้อมูลของตนเอง ในการยินยอมให ้ผู ้อืน


่ นไขในลิขสท ่ นํ าข ้อมูลของตนไป

ใช ้ ให ้แตกต่างไปจากข ้อกําหนดในลิขสท
ิ ธิข
์ องเว็บนีห
้ รือไม่ก็ได ้ หากมิได ้กําหนดเงือ
่ นไขใดๆ

ิ ธิข
ไว ้ ถือว่าให ้เป็ นไปตามข ้อกําหนดของลิขสท ์ องเว็บนีท
้ ก
ี่ ําหนดไว ้

ห ้ามผู ้อืน
่ ใดนํ าข ้อมูลบนเว็บ XLSiam.com นีไ
้ ปเผยแพร่เพือ
่ ประโยชน์ใดๆก็ตาม ทีเ่ กีย
่ วข ้องกับ

การมุง่ ค ้าหากําไรทัง้ ทางตรงและทางอ ้อม หรือมีสว่ นได ้เสย


ี หรือหวังผลอืน
่ ซงึ่ มิใชค
่ วามพึง

พอใจจากการให ้เพือ
่ เป็ นวิทยาทาน

หากทําเพือ
่ การจําหน่ายหรือเกีย
่ วข ้องกับการแสวงหาผลประโยชน์อน
ื่ ใด ไม่วา่ จะเป็ นการหา

รายได ้หรือชว่ ยลดค่าใชจ่้ ายของตนหรือบริษัทของตนทีต ่ นํ าเนือ


่ ้องรับภาระ เชน ้ หาทัง้ หมดหรือ

บางสว่ นไปรวบรวมเป็ นเล่มเพือ


่ ขายร่วมกับเรือ
่ งอืน ้ นเอกสารหรือใชประกอบส
่ หรือนํ าไปใชเป็ ้ ื่

ใดๆในการอบรมแทนทีจ ้
่ ะลงทุนจัดหาตํารามาเอง หรือใชการลงทุ ่ ซงึ่ ไม่ใช ่
นลงแรงของผู ้อืน

ิ ธิข
การลงทุนลงแรงของตนเอง ขอสงวนลิขสท ์ ้อมูลทัง้ หมดในเว็บนีต
้ ามกฎหมาย

สมเกียรติ ฟุ้ งเกียรติ

20 เมษายน 2556

You might also like