View
2
Download
0
Category
Preview:
Citation preview
1
Copyright of www.ExcelExpertTraining.com
ฉลาดใชสารพดสตร Excel
อยางมออาชพ
โดย
สมเกยรต ฟงเกยรต
www.ExcelExpertTraining.com
www.XLSiam.com
excel@XLsiam.com
โทร 02 718 9331 Fax 02 318 7021
สงวนลขสทธตามกฎหมาย
17 เมษายน 2555
2
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
3
Copyright of www.ExcelExpertTraining.com
16. วธใช Data Table 85
17. หลากหลายแนวทางการใชสตร IF 90
18. การใชสตร IF ในการตดสนใจ 95
19. หลบรอนหนสตร IF ไปหาทางออกอน 104
20. หนสตร IF ไปใชคาสง Format 114
21. วธใช Data Validation 115
22. วธใช Conditional Formatting 116
23. สตร Array 118
24. สตร Array IF เพอใชหายอดรวมแยกประเภท 130
25. ของจรง ของปลอม ของใชไมไดใน Excel 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
4
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
5
Copyright of www.ExcelExpertTraining.com
คานา
ในระยะเวลาหลายสบปทผานมา แม Excel ถกพฒนาใหเปนโปรแกรมทเปนประโยชนมากขน ม
คาสงและมเครองมอใหมๆ เตรยมไวใหเลอกใชมากขนกวาแตกอนกตาม ทงๆท Excel จะเปน
Excel ไดกเพราะการมสตรเพอใชในการคานวณ แตตวสตรท Excel มอยกลบมการเปลยนแปลง
นอยมาก มสตรใหมทจาเปนตอการใชงานเกดขนเพยงเลกนอยเทานน สวนทเปลยนแปลงสตร
ใน Excel 2010 กมงปรบปรงใหมความละเอยดในการคานวณยงขน
หลกสตรฉลาดใชสารพดสตร Excel อยางมออาชพกผานรอนผานหนาวมาหลายปเชนกน
หลกสตรนมงใหผใช Excel รจกคด ฉลาดเลอกใชสตร Excel ใหถกกบสถานการณ โดยเลอก
เฉพาะสตรทมความจาเปนตองนามาใชงานขนมาอบรมเพอทราบขอด ขอเสย และขอควรระวง
แนะนาวธคดออกแบบตารางใหเหมาะสมกบการคานวณ และหาทางกระตนใหผเขาอบรมเรยนร
วธแกปญหาไดดวยตวเอง
อยางไรกตามเนองจากระยะเวลาอบรมมเพยง 3 วน ไมสามารถแนะนาเรองราวและถายทอด
ประสบการณการใชสตรไดครบถวน จงขอแนะนาใหอานคมอเลมนซ งมเนอหาทอาจไมมโอกาส
หยบยกขนมาอบรมอยอกมาก
คมอประกอบการอบรมเลมนไดรวบรวมเนอหาสาคญของหลายหลกสตร ทงหลกสตรสดยอด
เคลดลบและลดของ Excel หลกสตรหนมาใช Excel จดการฐานขอมลแทน Access กนดกวา
และหลกสตรประยกตใช Excel เพอวางแผนความตองการวสดและจดตารางการผลต ตลอดจน
การใชสตรใน VBA อกทงไดนาตวอยางคาถามคาตอบและสตรแบบแปลกๆจากเวบหลายแหง
มารวมไว จงหวงวาผเขาอบรมจะไดเปดหเปดตาและไดแนวทางนากลบไปสรางงานของตน
ประเดนสาคญของการสรางสตร คอ ตองรจกคดและสรางสตรไดดวยตวเอง มใชลอกสตรของ
คนอนมาใชแลวแกะหรอแกไขตอใหดข นกวาเดมไมเปน
สมเกยรต ฟงเกยรต
17เมษายน 2555
6
Copyright of www.ExcelExpertTraining.com
วธปรบ Excel ใหพรอม
ตอการใชงานอยางมออาชพ
1. ตองการปรบใหกดป ม Enter เพอ
บนทกคาแลวอยท เซลลเดม สง
File > Options > Advanced > ตด
กาชอง After pressing Enter,
Move selection
ทงนใน Excel 2007 สง Office >
Excel Options แทน File >
Options >
(Excel 2003 : Tools > Options > Edit > ตดกาชอง Move selection after Enter)
2. ตองการปรบใหกดป ม F2 เพอ Edit แกไขบน Formula Bar แทนในเซลล สง File >
Options > Advanced > ตดกา
ชอง Allow editing directly in
cells
(Excel 2003 : Tools > Options
> Edit > ตดกาชอง Edit directly
in cell)
คาสงนยงมผลทาใหเมอดบเบลคลกทเซลลสตรแลว Excel จะยายตาแหนงไปยงตาแหนง
เซลลตนทางทอางองในสตรนน และเมอกดป ม F5 > Enter จะยายกลบมาทเซลลเดมท
เคยดบเบลคลก
7
Copyright of www.ExcelExpertTraining.com
3. ตองการเปลยนระบบการคานวณเปน manual สง File > Options > Formulas > กา
ชอง Manual จากนนตองกดป ม F9 เพอสงคานวณทกแฟมหรอกด Shift+F9 เพอสง
คานวณเฉพาะแฟมทเลอกอยเทานน
(Excel 2003 : Tools > Options > Calculation > กาชอง Manual)
หมายเหต ระบบการคานวณจะเปลยนตามระบบของแฟมแรกทเปดขนกอนเสมอ
4. ตองการเปดใหใช Macro และ Update Links ไดอตโนมตทกแฟมในโฟลเดอรท
กาหนดวาปลอดภย สง File > Options > Trust Center > กดป ม Trust Center
Settings... (Excel 2003 : Tools > Macro > Security > Security Level > กาชอง
Medium)
เลอกเมน Trusted Locations จากเมนดานซาย จากนนกดป ม Add new location... เพอ
8
Copyright of www.ExcelExpertTraining.com
เลอกชอโฟลเดอร (Trusted Folder) ตามตองการ
นอกจากนสาหรบ Excel 2010 เปนตนมายงมเมน Trusted Documents เพอใชควบคมการ
เปดแฟมเพอทาใหแฟมใดทเคยเปดโดยให Macro ทางานหรอ Update Links มากอนกจะ
เปดแบบนนใหเองในคราวตอไป
9
Copyright of www.ExcelExpertTraining.com
การกาหนดตาแหนงอางอง
บทความนมจดประสงคใหผทเคยใช Excel มากอนและมพนฐานมาบางจนพอทราบวาตาแหนง
อางอง (Cell Reference) ในตาราง Excel คออะไรและนาไปใชกนอยางไร จะไดเปดหเปดตา
เรยนรเคลดลบทคนทวไปอาจมองขามหรอไมนกฝนวาจะเปนไปได แลวสามารถนาตาแหนง
อางองไปใชกบสตรและคาสงไดอยางพลกแพลงมากยงขน โดยเฉพาะการเลอกใสเครองหมาย
$ ใหกบตาแหนงอางองนน ไมวาจะเปน $ ในเซลลสตร, $ ใน Conditional Format, $ ใน
Data Validation, หรอ $ ในในเครองมออนๆของ Excel กตาม ผมถอวา $ เปนหวใจของการใช
Excel ทเดยว
ต งหลกกนกอนวาจะใช Excel อยางคอมพวเตอร
คณลองนกดซวามนษยเราไดรบประโยชนจากการใชเครองคอมพวเตอรตางจากสมยทยงมแต
เครองคดเลขใหใชกนอยางไรบาง หลายคนนาจะตอบวา เครองคอมพวเตอรตองชวยใหคาตอบ
ทเรวกวาเครองคดเลขใชไหม แลวความเรวทวานถกวดมาจากเวลาทใชไปของเครอง
คอมพวเตอรหรอเวลาของคณกนละ
แนนอนทสดวาเครองคอมพวเตอรยอมทางานเรวกวาเครองคดเลข และเครองคอมพวเตอรรน
ใหมยอมทางานไดเรวกวาเครองคอมพวเตอรรนเกา ยงใช Excel ทตดตงบนเครองคอมพวเตอร
รนลาสด กยงไดคาตอบผลลพธจากการคานวณเรวขน ซงถาใครหลงเขาใจวาตวเองใช Excel
แบบคอมพวเตอรเปนอยแลวเพยงเพราะดจากความเรวของเครองคอมพวเตอรทใชอย กเปน
ความเขาใจทถกตองเพยงบางสวน (และเปนสวนทไมสาคญเทาใดเสยดวย) เพราะถาคณใช
Excel อยางคอมพวเตอรเปน ตอใหยกเครองคอมพวเตอรรนโบราณททางานชาเปนเตา กจะ
พบวาคณไมไดเสยเวลาตางกนมากนก
ลกษณะของการใช Excel อยางคอมพวเตอรมดงน
1. คณจะตองเสยเวลาสรางงานนานหนอย เนองจากตองหาทางคดสรางงานใหเหมาะสม
กบแตละสถานการณ ซงคณควรตงหลกไววา แฟมงานทสรางขนมานน จะตองสามารถ
นากลบมาใชซาแลวซาอกไดโดยไมตองยอนกลบไปแกไขใหมอกแมแตนอย
10
Copyright of www.ExcelExpertTraining.com
2. หากจาเปนตองแกไข ตองสามารถแกไขปรบปรงแฟมไดงาย ใชเวลาไมมาก และไม
สงผลกระทบตอการคานวณเดมทถกตองอยแลว ทงนไมวาจะกาหนดใหผททาหนาท
แกไขนนคอคณซงเปนผสรางแฟมนนเอง หรอแมแตจะเปนผอนซงไมเคยใชแฟมนนมา
กอนกตาม
3. สามารถลดจานวนคนและไมตองเพมอตรากาลงคนตามปรมาณงานทเพมขน
4. ประหยดเงนลงทน เพราะไมตองจายเพอซอเครองหรอโปรแกรมคอมพวเตอรรนใหม
5. คณตองมความสขและมเวลาวางใหกบชวตมากขน
สตรฉลาด (Smart Formula)
Smart Formula แปลวา สตรฉลาด ซงสตรฉลาดทวานจะฉลาดไดกตอเมอใชความฉลาดของ
คณในการสรางสตรขนมา เพอใหมลกษณะการใชงานไดตามน
ในชทหนงๆหรอตารางหนงๆ ตองมสตรตนฉบบเพยงเซลลเดยว ซงสามารถนาไปใชได
กบเซลลอนๆไดทงตาราง แลวเมอใดทจาเปนตองแกไขสตรใหม กจดการแกไขสตรน
เพยงเซลลเดยวแลว Copy นาไป Paste เพอใชไดกบทกเซลลในตาราง
ในโครงสรางของตวสตรฉลาดอาจใชวธกาหนดตาแหนงอางองแบบเซลลเดยวหรอแบบกาหนด
ขอบเขตตารางกได โดยไมวาจะใชวธใดกหลกหนการกาหนดตาแนงอางองทมเครองหมาย $
กากบตาแหนง 3 แบบตอไปนไปไมพน
• ตาแหนงอางองแบบ Absolute Reference มเครองหมาย $ วางไวดานหนาของทง
ตาแหนง Row และ Column เชน =$A$1 โดยใหใชตาแหนงอางองแบบนกบกรณท
ตองการนาคาคงทไปใช
• ตาแหนงอางองแบบ Relative Reference เปนตาแหนงอางองซงไมมเครองหมาย
$ เชน =A1 ซงสตรทอางองแบบนจะตองใชทเซลลเดมเซลลเดยวไปตลอด ไมสามารถ
Copy นาไป Paste เพอทาใหไดคาเดมซาทเซลลอนไดอก เพราะตาแหนงอางองจะ
เขยอนตางจากตาแหนงเดมเสมอ ดงนนจงเปนการอางองแบบทใชในเซลลสตรกนนอย
ทสด แตกลบถกนามาใชกนมากใน Conditional Formatting หรอ Data Validation
• ตาแหนงอางองแบบ Mixed Reference เปนตาแหนงอางองทนยมใชกนมากทสด
โดยผสรางสตรตองเลอกใสเครองหมาย $ ดานหนาตาแหนง Row หรอ Column เพยง
อยางใดอยางหนง เชน =A$1 เพอคงตาแหนง Row 1 ไวตามเดมตลอด หรอ =$A1
11
Copyright of www.ExcelExpertTraining.com
เพอคงตาแหนง 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 ตามตองการแลวใหกดป ม
Enter เพอรบสตรลงไปในเซลล แลวจะพบวา Excel จะพากลบมาทเซลลซงพมพ
เครองหมายเทากบนาหนาสตรเอาไวตงแตแรกนนเอง
การใสเครองหมาย $ เพอเปนการควบคมตาแหนงอางองไวไมใหเขยอนน นอกเหนอจากการทา
ใหคณสามารถ Copy สตรไปใชในเซลลอนไดทนทแลว ยงเปนเรองนาสงเกตวาชวยทาใหแฟม
มขนาดเลกลงกวาแฟมทมสตรซงไมม $ กาหนดไวเลย (ขอใหทดลองลบเครองหมาย $ ทง
จากสตรในตารางขนาดใหญเพอเปรยบเทยบดขนาดแฟม โดยใชคาสง Replace เครองหมาย $
แตไมได Replace with ดวยเครองหมายใด)
นอกจากตาแหนงอางองทตองมเครองหมาย $ เปนองคประกอบสาคญแลว ในโครงสรางของ
สตร Smart Formula ยงอาจจาเปนตองพงสตร IF, And, Or หรอสตรอนๆซงทาหนาทตดสนใจ
เพอชวยทาใหสตรมเงอนไขในการคานวณตางไปจากเดมไดเองทนท เมอมการนาสตรเดยวกน
ไปใชซาทตาแหนงเซลลอน
12
Copyright of www.ExcelExpertTraining.com
ตวอยาง 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 กไดและทาใหเกดผลลพธถกตองเทากนทงสองแบบ แตขอแนะนาให
สรางพฤตกรรมในการสรางสตรของตนวา “ทกสตรทสรางขนจะนาตาแหนงอางอง
ตามแนวนอนขนกอนตาแหนงอางองตามแนวต งเสมอ” ซงหลกนจะชวยใหคณแกะ
สตรของตวเองไดงายขน และหากสงเกตสตรอนๆของ Excel เชน Index หรอ Offset
13
Copyright of www.ExcelExpertTraining.com
จะใชตาแหนงอางองจากแนวนอน 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
14
Copyright of www.ExcelExpertTraining.com
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 ขนตามรป
15
Copyright of www.ExcelExpertTraining.com
ตวอยาง Smart Formula แบบใชตาแหนงอางองแบบ Array ตาม
ขอบเขตพนทหวตาราง
ขอใหสรางตารางสตรคณ ซงนาตวเลขบนหวตารางมาคณกบตวเลขดานขางซายของตาราง
ขนตอนการสราง
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
เพอคนสภาพสตรตามเดม
16
Copyright of www.ExcelExpertTraining.com
• ลองใช Mouse คลกลงไปในชอง Formula Bar เลอกเฉพาะสวนของสตร B3:B5 แลว
กดป ม F9 จะพบวาตาแหนงอางองสวนนเปลยนเปน {10;20;30} จากนนใหกดป ม Esc
เพอคนสภาพสตรตามเดม
• หากกดป ม F2 ตามดวย F9 จะพบวาสตร Array เดมบน Formula Bar {=
C2:F2*B3:B5} จะเปลยนเปน ={20,30,40,50;40,60,80,100;60,90,120,150} แลว
ขอใหสงเกตวามเครองหมาย Comma และ Semi-Colon ขนอยระหวางตวเลข (ซง
เครองหมาย Comma , นแสดงถงวาคาถดไปยงคงอยใน Row เดม สวนเครองหมาย
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 ทเหนนนสรางขนพรอมกนจากเซลลใดถงเซลลใด ให
เรมจากคลกเลอกเซลลสตร Array นนๆกอนเพยงเซลลเดยว แลวกดป ม F5 >
Special > กาชอง Current array จะ
พบวา Excel เลอกพนทตารางสวนทเกด
จากการสรางดวยสตร Array พรอมกนนน ให
ทนท จากนนหากตองการลบหรอสราง
สตร Array ใหมลงไปกใหกระทาตอพนท
ตารางทเลอกใหแลวนนรวมกนเสมอ
17
Copyright of www.ExcelExpertTraining.com
วธคนหาสตร
เมอเจอปญหาในงาน ใหคอยๆวเคราะหปญหาทละขนตอน แบงปญหาแยกออกเปนขนๆ
ตามลาดบการคานวณ ตามลาดบการตดสนใจ ควรลองสรางแนวทางแตละขนลงบนกระดาษ
กอน เพอจดลาดบการสงคาไปทละขนใหถกตอง แลวลองใชมอ ใชเครองคดเลข คดคานวณ
อยางคราวๆกอนวา จะใชสตรคานวณอยางไร และไดผลลพธออกมาเปนเทาใด
ปญหาทวายาก อาจยากเพราะเราทาใหมนยากขนเอง เชน คานวณวา ถาซอสนคาตนทน 127
บาทตอหนวย มาปรบกาไรขนอก 13.45% จะตองกาหนดราคาขายเทาใด
ปญหานทาใหงายลง โดยใชเลขตวกลมแทนตวเลขจรงไปกอน ลองคานวณตนทน 100 บาท
แทน 127 บาท ลองกาหนดกาไรเปน 10% แทน 13.45% จะคานวณไดผลลพธงายขนจรง
ไหม
สาเหตทเราปรบปญหาใหงายลงน เพอใหมองทลาดบขนการคานวณแทนทจะมววนอยกบ
ตวเลข เมอไดขนการคานวณทตองการแลว จงหนมาสรางมาคนหาสตร Excel ทจะใช ภายหลง
จากสรางสตรเสรจแลว เราจะเปลยนตวเลขใหยากขนเทาใดกไดทงนน Excel จะคานวณให
เสรจในพรบตา
ขอใหยดหลกวา Excel มสตรคานวณสาหรบปญหาของเราทกอยาง บางปญหาตองใชสตร
รวมกบสตรอนตอๆกนไป บางปญหาตองใชสตรซอนสตร แตบางปญหาใชสตรๆเดยวกได
ผลลพธแลว ขนตอนการแกปญหาจงเปนภาระของมนษย ตองหาสตรทตองการใชใหเจอ
แทนทจะเสยเงนซอหนงสอเรองสตร ใหเปดดจาก Excel Help ซงตดมากบโปรแกรม Excel อย
แลว (หนงสอเรองสตรทขายกน สวนมากมกลอกคาอธบายจาก Excel Help ไปใช มนอยเลม
มากทเขยนอธบายดวยตวเอง)
วธท 1
เลอกเซ
บน For
ถาไมรว
เลอก A
คลกลงไ
สตรใดก
นนๆลงไ
ตวอกษ
จอจะแส
Help on
เปดดรา
วธท 2
เมอเปด
เกยวขอ
ควรรอบ
ปญหาท
1 คนหาต
ซลลวางๆทย
rmula Bar
วาสตรนนๆอ
All ในชอง se
ไปในชอง S
กได แลวพม
ไป Excel จ
ษรทตองการใ
สดงรปแบบข
n this func
ายละเอยดข
2 คนหาสต
ดสตรทตองก
องกน
บรสตรซงมค
ทสด
Cop
ามชอสต
ยงไมมสตรใ
อยในกลมไห
elect a cat
Select a fun
มพตวอกษร
ะเลอนไปหา
ใหทนท สว
ของสตร หร
ction ดานลา
องสตร
ตรทใชงา
การ แลวเลอ
ความเกยวขอ
pyright of ww
ร
ดๆ แลวใชค
หน ใหคลก
egory แลว
nction ตรง
นาของสตร
าชอสตรตาม
นดานลางใต
รอคลกทคาว
างซายสดเพ
านทดแทน
อนจอไปดาน
องกนทงหม
18
ww.ExcelExp
คาสง Form
ม
ต
วา
พอ
นกน
นลาสด ใหค
มดกอน แลว
pertTraining.c
ulas > Ins
คลกคาวา S
วจงตดสนใจ
com
ert Functio
ee Also เพ
จเลอกใชสต
on หรอคลก
พอเปดรายชอ
ตรซงเหมาะก
กทป ม fx
อสตรท
กบ
วธท 3
ใหเรมพ
ชวยเลอ
ไมแนะน
ทาใหม
> Optio
AutoCo
3 คนหาต
พมพ = ตาม
อกตวแปรใน
นาใหใช Fu
องไมวาเปน
ons > Adv
omplete ทง
Cop
วแปรทใช
มดวยชอสตร
นสตรใหเอง
nction Scre
น column ใ
anced (แล
งไปดวยเพร
pyright of ww
ชในสตร
รทตองการใ
een Tips เพ
ด โดยตดกา
ะควรสง File
ราะ Excel จ
19
ww.ExcelExp
ใชงานกอน
พราะคาอธบ
าชอง Show
e > Option
ะพยายามเด
pertTraining.c
แลวกดป ม C
บายทปรากฏ
w Function
ns > Formu
ดาชอสตรทพ
com
Ctrl+a เพอ
ฏขนจะทบแน
ScreenTip
ulas > ตดก
พมพลงไปใ
อเปด Help ส
นวของหว c
ps จากการส
กาชอง Form
ให)
สาหรบ
column
สง File
mula
วธท 4
เมอเปด
อธบายข
4 คนหาข
ดดรายละเอย
ขอแมหรอข
Cop
อจากดข
ยดของสตรใ
ขอจากดในก
pyright of ww
องสตร
ใน Excel He
การใชงานขอ
20
ww.ExcelExp
elp แลวให
องสตรเอาไ
pertTraining.c
ดขอจากดข
ว
com
ของสตรไดจจาก Remarkks ซง
21
Copyright of www.ExcelExpertTraining.com
วธแกะสตร
ลองพจารณาสตรคานวณหาเวลาสนสดในงาน Material Requirements Planning ตอไปน
=INDEX(Begin,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)+(((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(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)))/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 จะรบสตรลงไปและเตอนขอผดพลาดหรอแกไขสตรตางไปจากทตองการ
•
•
•
•
•
•
ควรพมพเมนยอยสตรซงอนอกเขาออกมาสตรบางName ใManagถาตองกเชอมโยF5 > SColumnDependถดไป แเรอยๆเพเรอยๆจถาตองกFormul
แสดงสใหใชเมShow FOptionreferenอางองวสภาพเด
Cop
พ Commenย Insert Coอยในวงเลบาใน เพอเขาอกครงเพอไงสตรไมไดอใหดไดจากer เพอเขาไการคนหาเซยงกนดวยสตSpecial > กn Differencdents และเแลวกดป ม Oพอสงให Exนกวาจะหมการลากเสนlas > Form
ตรในเซลลใมน FormulaFormulas แs > Formu
nce style เพวาเปนแบบเดมเมอตรวจ
pyright of ww
nt กากบเซลomment เพบในสด จะสงาใจกบความไลลาดบการอยในเซลล คาสง Formไปดและแกไซลลตนทางหตร ใหเลอกเาชอง Row ces หรอเลอเลอก DirecOK จากนนใxcel ทวนคาดการเชอมโนลกศรแสดงmula Auditin
ใหเหนแทนas > Formuและใชคกบคulas > กาชอพอแสดงรปแดยวกนหรอจสอบสตรเรย
22
ww.ExcelExp
ลล โดยคลกพออธบายสตงคาตอมาใหมหมายของสรคานวณสงแตเปน For
mulas > Naไขสตร หรอปลายทเซลลสตรแDifferenceอก Precedect only เพอใหกดป ม F4าสงคนหานซโยง งความเชอมng > Trace
การแสดงผula Auditinคาสง File >อง R1C1 แบบตาแหนอไม และแกคยบรอยแลว
pertTraining.c
กขวาลงไปใตรทใชงานวหสตรสวนนสตรทงหมดคาในสตรเซrmula ame
ทางทลวกดป ม es หรอ ents / หาเซลล
4 ตอไปซาไป
โยงสงคาระe Preceden
ลลพธ g >
>
นงคนส
com
ในเซลลทตอวามความเปนอก ดงนนจงกอน แลวแกซลลหนงๆ
ะหวางสตร ใnts/Depend
องการ แลวนมาอยางไรงควรแกะสตกะสตรจากใ
ใหใชเมน dents
เลอกร ตรจากใน
23
Copyright of www.ExcelExpertTraining.com
วธสรางสตรซอนสตร
จดประสงคของการนาสตรมาซอนสตร เพอทาใหสตรๆเดยวสามารถคานวณใหผลลพธไดเลยทนท โดยไมตองพงพาสตรในเซลลอนๆ ทาใหเกดประโยชนดงน
• ชวยจากดเซลลทตองใชเพอสรางสตร • ชวยใหคนหาเซลลสตรไดงายเนองจากสตรถกนามารวมกนไวเพยงทเดยว • หากมจานวนเซลลทมสตรยาวๆจานวนไมมากนก จะทาให 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 ใหไดกอน
24
Copyright of www.ExcelExpertTraining.com
=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)
25
Copyright of www.ExcelExpertTraining.com
วธสรางชอซอนชอ
ใชคาสง 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 ใหอตโนมต
26
Copyright of www.ExcelExpertTraining.com
เร องทไมคอยรกนเกยวกบสตร
โปรแกรม 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 จะมรนใหมใหพวกเราไดใชงานกนประมาณ
27
Copyright of www.ExcelExpertTraining.com
ทกปครง แลวคณจะตองซอหนงสอ 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 กอนทจะเอย
ปากถามใคร
หวงวาคาแนะนา 10 ขอนจะเปนแนวทางชวยใหคณกลายเปนคนเกงสตร Excel และขอฝากคน
ทชอบใชสตรรนใหมทเพงเกดขนใน Excel 2007 ขนไปวา อยาเพงรบรอนนาสตรใหมๆ เหลานน
มาใช เพราะตราบใดทเพอนของคณยงคงใช Excel รนเกากวาอย เขาจะไมสามารถนาแฟมของ
คณทสรางไวโดยใชสตรรนใหมมาคานวณไดเลย คณนนแหละทจะตองรบภาระยอนกลบไป
แกไขสตรรนใหมใหเปนรนเกาเพอเปดแฟมใน Excel รนเกาทคนอนเขายงไมเลกใชกน
28
Copyright of www.ExcelExpertTraining.com
Formula vs Function
ทงสองคานถาแปลเปนไทยกแปลวา “สตร” เหมอนกน โดยคาวา Formula เปนคาทม
ความหมายกวางกวา Function กลาวคอ
• Formula หมายถง สตรทกอยางทมเครองหมายเทากบ = นาหนา เชน =A1 หรอ
=1+2 หรอ =Now()
• Function หมายถง สตรสาเรจรปทตดมากบโปรแกรม Excel เชน สตร Sum, Max,
Min, If, VLookup หรอ Now เปนตน
ดงนนเพอทาความเขาใจใหตรงกน ในบทความนจะใชคาวา สตร ซงหมายถงทง Formula และ
Function หรออกนยหนง สตรกคออะไรกตามทมเครองหมาย = นาหนา สวนตวผมเองจะเขยน
อธบายเรองสตรในกระดาษโดยใชตวใหญปนตวเลก เชน Sum หรอ VLookup เพอชวยใหอาน
แตละคาของสตรไดงาย แตเมอถงคราวนาไปใชใน Excel โปรดพมพสตรดวยตวเลกทงหมด
เสมอ
Text vs Number
คาทพมพบนทกลงไปในเซลลหรอผลจากการคานวณมอยเพยง 3 อยางคอ คาทถอเปนText
คาทถอเปน Number และคาท error ไมสามารถนาไปใชคานวณตอได
• Text คอ คาทพมพลงไปในเซลลหรอเกดจากสตรคานวณแลวจะชดซายของเซลล
ทนท (โดยไมตองกาหนด Format) เชน พมพคาวา abc หรอ กขค หรอแมแตตวเลขท
พมพตอทายเครองหมายฝนทอง เชน ‘123 หรอผานการกาหนด Format Number ให
ถอเปนแบบ Text ซงโดยทวไปหากเซลลดานขวายงวางอย จะพบวาถาเซลลม Text ท
ยาวกวาความกวางของเซลล จะยอมให Text นนแสดงตอไปในเซลลดานขวา
• Number คอ คาทพมพลงไปในเซลลหรอเกดจากสตรคานวณแลวจะชดขวาของเซลล
ทนท (โดยไมตองกาหนด Format) เชน พมพตวเลข 123 หรอพมพวนท 14/2/2009
ซงโดยทวไปถาเซลลมความกวางไมพอทจะแสดงตวเลขทงหมด Excel จะแสดงดวย
เครองหมาย ####### ซาจนเตมเซลล (แกไดโดยคลกขวาลงไปในเซลลแลวสง
Format Cells > Alignment > กาชอง Shrink to fit เพอสงให Excel ยอขนาด
ของ Font ใหมขนาดพอดทจะแสดงไดเตมความกวางของเซลล)
• Error เปนผลทเกดจากการคานวณทไมสามารถนาไปคานวณตอได เชน
29
Copyright of www.ExcelExpertTraining.com
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. แฟมทเกบขอมลเปน Number เชน 1, 111, 123
2. แฟมทเกบขอมลเปน Text เชน a, aaa, abc
3. แฟมทเกบขอมลเปนสตรทคนคาเปน Number เชน =1, =111, =123
4. แฟมทเกบขอมลเปนสตรทคนคาเปน Text เชน =”a”, =”aaa”, =”abc”
ทแปลกกคอ ขนาดของแฟม ไมขนกบความยาวของคาในเซลล เชน ถาเซลลมคาทบนทกไว
เปน 1 หรอเพมความยาวตวเลขเปน 111 หรอ 123 กจะมขนาดแฟมเทากนกบ 1 ตวเดยว หรอ
ถาสรางเปนสตร =1 หรอเพมความยาวตวเลขเปน =111 หรอ =123 จะมขนาดแฟมเทากนกบ
=1
ดงนนถาตองการลดขนาดแฟมใหเลกทสด แทนทจะพมพเลข 1 แลวสรางสตรบวกเลขตอกนไป
ทละเซลลใหกลายเปนลาดบตวเลข 1, 2, 3, 4, 5 กควรพมพเลขลงไปในเซลลโดยตรงแทน
การสรางสตร และสตรใดๆทคานวณเสรจเรยบรอยไปแลวและไมมการเปลยนแปลงคาตอบตาง
จากเดมอกแลว เรากควร Copy แลว Paste Special ใหกลายเปน Value จะทาใหแฟมเลกลง
ไปมากทเดยว
สวนเซลลสตรทเกด Error ขนกควรใชสตร IF ปรบ Error ใหเปลยนเปนคาอนแทน ดงน
30
Copyright of www.ExcelExpertTraining.com
• ในกรณท 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
สาเหตทหาม เพราะการสรางสตรใดๆทมตาแหนงอางองไปยงคาในแนวเดยวกบตารางขอมล
อาจคนคาเปนคาตอบเปนคาในตารางตามแนวเดยวกนกได
31
Copyright of www.ExcelExpertTraining.com
หากสรางสตรในเซลลซงไมไดอยในแนวเดยวกบชวง 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 ตองเตอนขนมาบนจอใหคณทราบวา
สตรทสรางนนผด
ผสรางสตรตองมสมาธพอตว สมาธทวานเกดจากการรจกวาเมอใดจะหยดเมอใดจะสรางตอ ถาร
หลกจงหวะหายใจจะชวยใหคณสรางสตรไดงายขน ไมวาสตรสนๆหรอสตรยากๆยาวๆกใชหลก
จงหวะหายใจนกนทงนน
32
Copyright of www.ExcelExpertTraining.com
จงหวะหายใจทวาน ไมใชจงหวะหายใจของ Excel หรอกนะ Excel มนไมไดมการหายใจ
เหมอนกบมนษย แตเปนจงหวะหายใจของคณนนแหละ ตองรวาเมอใดทควรจะหยดแลวหายใจ
สกเฮอกหนงแลวจงสรางสตรตอ ซงเรองการหายใจนไมตองลอกจงหวะการหายใจใหเหมอนกบ
ผมกได ตวใครตวมน ขอใหเลอกจงหวะหายใจทตวเองคดวาถนดกแลวกน
ขอยกสตรทงหมดมาดกนอกครง
=IF(C2=0, 0, B2/C2)
มาดกนวาถาเปนวธของผม จะสรางสตรนโดยหยดพกเพอหายใจกนตรงไหนบาง เอาหายใจเขา
แลวนะ จากนนเรมสรางสตรโดยใชวธตามลาดบตอไปน
1. พมพเครองหมายเทากบ
2. พมพคาวา if(
3. หยดเพอหายใจ จากนนสรางสตรตอดวยขนตอไป
4. หยบเมาสคลกเซลล C2
5. แลวพมพ =0, ตอ
6. หยดเพอหายใจ
7. ในใจอานสตรทไดตามน =if(C2=0, วาถาเซลลตวหารมคาเทากบ 0 ละกอ
8. พมพ 0, ตอ
9. หยดเพอหายใจ
10. ในใจอานสตรทพมพ 0, วา ใหคาตอบทไดเปน 0 แทนนะ จากนน
11. หยบเมาสคลกเซลล B2
12. พมพเครองหมายหาร /
13. แลวหยบเมาสคลกเซลล C2
14. หยดเพอหายใจ
15. ในใจอานสตร B2/C2 ทไดมาวา แตถาตวหารไมใชเลข 0 ใหคาตอบทไดเปนสตรหาร
กนตามปกต
16. จากนนจงกดป ม Enter รบสตรลงไปในเซลล โดยไมตองพมพเครองหมายวงเลบปด
เพราะถามวงเลบเปดตวเดยว Excel จะพมพเครองหมายวงเลบปดใหเอง
จบหลกไดไหมเอย ขอใหสงเกตวาใหหยดเพอหายใจไดหลงจากพมพจบตรงเครองหมายนนๆ
ไง ถาใชเครองหมายจดจดแทนชวงหยดเพอหายใจ จะไดสตรตามแบบน
33
Copyright of www.ExcelExpertTraining.com
=if(.........C2=0,.........0,......... B2/C2
ฝกหยดเพอพกหายใจใหไดจงหวะ วธนจะชวยลดขอผดพลาดหลงลมการใสเครองหมายวงเลบ
หรอเครองหมาย Comma ในการสรางสตรไปไดเยอะทเดยว
ธรรมชาตของสตร
ถาเขาใจธรรมชาตตอไปนของสตร จะทาใหเราใชสตร Excel ไดงายโดยไมตองทองจาและลด
ขอผดพลาดเมอนาสตรมาใช
1. ชอสตรเปนตวอกษรภาษาองกฤษตวใหญ เชน IF, MAX, MIN ดงนนเวลาพมพสตรใหพมพ
ตวเลก พอกดป ม Enter แลวจะพบวา ถาเราสะกดชอสตรถกตอง Excel จะเปลยนตวอกษร
จากตวเลกไปเปนตวใหญทงหมดใหทนท
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
(ดงนนเราควรสรางสตรคานวณบวกลบคณหารอนๆใหใชตาแหนงอางองตามแนวนอนกอน
แนวตงดวยเชนกน เพอเปนแบบแผนชวยใหเขาใจทไปทมาและแกะสตรไดงาย)
34
Copyright of www.ExcelExpertTraining.com
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 ตวอกษร
ขอกาหนดเหลานนบวาเพยงพอกบการคานวณทวไป นานๆทจงมโจทยทตองใชจนเกนกวา
ขดจากด ซงแกไขไดงายๆโดยแยกการคานวณเปนสวนๆ แลวแบงแตละเซลลใหแยกคานวณ
แตละสวนของสตร จากนนจงนาผลการคานวณทไดมาคานวณรวมกนตอเปนขนๆ หรอไมกตอง
ฉลาดเลอกใชสตรอนทคานวณไดคาตอบแบบเดยวกนแทน
35
Copyright of www.ExcelExpertTraining.com
สาหรบสตรสาเรจรปใน 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 ใหทนท
36
Copyright of www.ExcelExpertTraining.com
สงทอธบายขางตนนเคยอธบายมาหลายตอหลายครงในการอบรมและในเวบ
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 มาแสดงเสรจกจบหนาทไปแลว
37
Copyright of www.ExcelExpertTraining.com
สตรทสามารถหาคาทเกบไวจากตารางไดโดยตรง ซงทางานไดแบบทอธบายน ไดแก If,
Choose, Index, Offset, Indirect (แตไมรวมสตร VLookup เพราะมนไมไดหาคาไดโดยตรง)
ซงไมจาเปนตองคนคาเพยงคาเดยวเปนตาแหนงเซลลเดยว โดยสามารถคนคาเปนตารางเพอ
ใชบอกตาแหนงตารางทงตารางกยงได
ดตวอยางประกอบบทความนไดจาก
"www.excelexperttraining.com/forums/content.php?r=191-สตร-ตาแหนงอางอง"
จานวนเซลลสตรเดยว
ผสรางสตร Excel ทวไป คนเคยกบการสรางสตรหนงทคนคาเพยงหนงคา หรออกนยหนง
เรยกวา สตรเดยวคนคาเดยว ซงสรางลงไปในเซลลเดยว แตนอยคนนกทจะทราบวา สตร Excel
สตรหนงๆสามารถคนคาเปนคาตอบไดหลายคากเปนไปไดเหมอนกน สตรพวกหลงนเรยกวา
สตร Array
การทเราเลอกเซลลเดยว แลวพมพสตรลงไปในเซลลเดยวนน มสาเหตเนองจากสตรนนคนคา
ไดคาตอบเพยงคาเดยว
ถาสตรหนงๆคนคาเปนคาตอบไดหลายคา หากสรางสตรนนลงไปในเซลลเดยว ยอมไมถกตอง
แมจะเหนคาตอบแสดงขนมากตาม เพราะคาตอบทแสดงขนมาใหเหนนนเปนเพยงคาตอบแรก
คาตอบเดยว เราหมดโอกาสทราบคาตอบคาอนๆ
พออานถงตรงน คนทไมรจกกบสตร Array คงเรมสงสยวา สตรแบบไหนกนทมคาตอบไดหลาย
คาในสตรเดยว มาทดลองโดยเรมจากพมพคาใดๆกไดลงไปในเซลล A1:A3 สมมตวาพมพ 11,
22, 33 ตามลาดบ
38
Copyright of www.ExcelExpertTraining.com
แลวสรางสตร =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
ใน Excel 2010 เรมจากสง File > Options > Advanced > แลวเลอนจอไปดานลางสดจะพบ
Lotus compatibility Settings for: ชอชททตองการใหคานวณแบบ Lotus 1-2-3 โดยใหกา
39
Copyright of www.ExcelExpertTraining.com
ชอง Transition formula evaluation (Excel 2007 ใหคลกป ม Office แทน File หรอ Excel
2003 สง Tools > Options > Transition > กาชอง Transition formula evaluation)
คาสง Transition formula evaluation นเกดขนในสมยทคนทงโลกยงนยมใช Lotus 1-2-3 กน
ดงนนเพอชวยทาใหคนเปลยนใจมาใช Excel ไดงายขน ทางไมโครซอฟทจงสรางคาสงนข น
เพอใหพวกเราสามารถนาแฟมทสรางจาก Lotus 1-2-3 มาเปดใชใน Excel ตอไดทนทโดย
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 อยางเตมตว ตองอาศยกาชองนอยนานเพราะมอยงไมคนกบป มทเคยเลอนไป
เลอนมาตามแบบทตวเองเคยชน
40
Copyright of www.ExcelExpertTraining.com
ตวอกษรมไดมคาเทากบ 0
กอนจะจบบทความน ทราบไหมวา ตวอกษร a หรอตวอกษรใดๆกตามทบนทกลงไปในเซลล
มไดถอวามคาเทากบ 0 หรอกนะ ถาไมเชอ สมมตวาเซลล A1 มคาเปน a ขอใหลองสรางสตร
=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! ซงเทากบชวย
เตอนเราใหทราบวาเกดขอผดพลาดขนมาในระหวางการบนทกขอมลนนเอง
41
Copyright of www.ExcelExpertTraining.com
การแบงขอบเขตพนทตาราง
ในชทของ Excel 2007 เปนตนมามพนทตารางใหญกวารนกอนอยางมาก จากเดมมเพยง
65,536 row และ 256 column ไดปรบเพมเปน 1,048,576 row และ 16,384 column ซงถา
คณพมพคาลงไปแลวพยายาม paste ใหครบทกเซลลในชท จะพบวา Excel ตองใชเวลานาน
แสนนานทเดยวกวาจะไดขอมลเตมทงชท และเมอสง 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 ซายสดมกจะมขอมลตดตอกนไปอยแลวเนองจากเปนขอมลของ
เลขทรายการ หรอขอมลรหส หรอขอมลวนทซ งเรยงไปตามลาดบรายการทเกดขน
42
Copyright of www.ExcelExpertTraining.com
2.3. ตองเวนขอบตารางไมวาจะเปนขอบดานบนลางซายขวาอยางนอยขางละ 1 เซลล หาม
นาตาราง Input ไปตดกบเซลลขอมลอนซงไมใชขอมลเรองเดยวกบตารางขอมลนน
3. ตาราง Calculate คอ ตารางทใชสรางสตรคานวณ ไมจาเปนตองมโครงสรางตามแบบ
ของตาราง Input แตในตาราง Calculate นคณตองหาทางสรางสตรทเซลลหวมมเปนสตร
ฉลาดทสามารถปรบตาแหนงอางองไดเอง และในขณะทสรางสตรตองใชป ม F4 เพอใส
เครองหมาย $ เพอควบคมตาแหนงอางองในสตรไปยงเซลลทบนทกคาตวแปรทใชคานวณ
ไว ซงโดยทวไปเซลลคาตวแปรจะวางไวตามแนวคขนานกบแนวของตาราง Calculate เพอ
ชวยใหเครองหมาย $ ทใสไวในสตร ทาหนาทควบคมตาแหนงของแนวของเซลลตวแปรไว
เพอนาคามาใชคานวณนนเอง
4. ตาราง Output คอ ตารางแสดงผลลพธทตองการ โดยตารางนจะออกแบบใหมหนาตา
อยางไรกไดตามแตวาจะนาไปแสดงผลบนจอภาพหรอในหนากระดาษทสงพมพ
สาเหตทตองใชหลก ICO แยกขอมลแตละประเภทออกจากกน เพอชวยทาใหเราสามารถใช
Excel รองรบกบขอมลทมปรมาณมากขนไปเรอยๆไดตลอด ซงในชวงแรกทยงมขอมลไมมาก
นก อาจใชชทเดยวเกบขอมลทง I C และ O ไวดวยกน จากนนเมอมปรมาณขอมลมากขนหรอ
ขอมลมความสลบซบซอนมากขนจงคอยยายตารางแยกไปเกบในชทอนหรอแฟมอนไดทนท
โดยไมกระทบกบสตรคานวณทสรางไว
ขอผดพลาดทพบเหนบอยครงเกดจากการออกแบบตารางตามแบบรายงานทตองพมพ เชน
หากมรายงานยาว 100 หนา กมกออกแบบตารางใน Excel ใหยาวเหยยดตอๆกนลงมาทง 100
หนาแลวจงสงพมพออกไปทละหนา ซงวธนทาใหแฟมมขนาดใหญและยากตอการแกไขเพราะ
จาเปนตองยอนกลบไปไลแกไขในตารางแตละหนา
แตหากออกแบบตารางแบบ ICO เปน ใหเรมจากแยกตารางขอมลทเปน Input ออกไป แลวใช
สตรดงคาจากตาราง Input มาคานวณในตาราง Calculate จากนนจงดงผลลพธทคานวณเสรจ
แลวไปสรางตาราง Output ซงจดสาคญอยทตาราง Output นแหละ โดยเราตองหาทางสราง
ตาราง Output ไวเพยงหนาเดยว จากนนตองสรางสตรดงขอมลแตละหนามาแสดงในตาราง
Output หนาเดยวนใหได ชวยใหแฟมมขนาดเลกและแกไขไดงายกวามาก
สมมตวาหนากระดาษทพมพม 30 บรรทดตอหนา ดงนนพอพมพเลขหนาท 1 ลงไป ตองสราง
สตรดงผลลพธบรรทดท 1 - 30 มาแสดงในหนาน จากนนพอเปลยนเลขหนาเปนเลข 2 กจะได
บรรทดท 31 – 60 มาแสดง พอเปนหนา 3 กไดบรรทดท 61 - 90 มาแสดง ซงสตรทดงขอมล
เชนนไดกคอสตร VLookup, Match, Index เปนตน
43
Copyright of www.ExcelExpertTraining.com
การจดเตรยมพนท 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
2.2. คลกขวา สง Format Cells > Protection > แลวกาชอง Hidden เพอซอนการ
แสดงสตรทจะเหนบน Formula Bar และยงปองกนไมให Copy สตรออกไปไดดวย
โดยจะ Copy เฉพาะคาผลลพธออกไปไดเทานน (หามตดกาชอง Locked ทงอยาง
เดดขาด) และตองทาขนตอนตอไปกอนดวยจงจะเหนผล
2.3. สง Review > Protect Sheet (Excel 2003 ใชคาสง Tools > Protection > Protect
Sheet)
44
Copyright of www.ExcelExpertTraining.com
การกาหนดตาแหนงอางอง
ขามชทหรอขามแฟม
ผมเรมตนใชโปรแกรม Excel ตงแตยคทในแฟมหนงๆยงมชทใหใชงานไดเพยงชทเดยวและยง
ไมสามารถใชสตรเชอมขอมลจากแฟมอนมาใชงานรวมกน ในยคนนตองออกแบบตารางทงหมด
ลงไปในชทเดยว ตอมา Excel ถกพฒนาใหสามารถสงขอมลจากแฟมหนงออกไปยงแฟมอนได
แตกยงไมสามารถทาหนาททงรบทงสงขอมลกลบไปกลบมาระหวางแฟมเชนท Excel ในรน
ปจจบนทาได ซงถาดใหดจะพบวาสงท Excel สามารถสงขอมลกลบไปกลบมาไดนนเปนเพราะ
เราถก Excel หลอกใหดเหมอนวามหลายชทหรอมหลายแฟม...แคนนเอง
ขอใหจาไววา ไมวาจะเปนตางชทหรอตางแฟม พอเปดแฟมขนมาใชงานพรอมกน มนก
คอชทเดยวกนนนแหละ
การทเราเหนวาในแฟมหนงๆมหลายชทนน เปนภาพลวงตาทชวยใหผใชงานสามารถแยกเกบ
ขอมลตางเรองไวในชทตางกนไป สวนขอมลท link ขามแฟมไดนน ถาคณใช Excel รนแรกๆมา
กอนอยางผม พอสง Unhide Sheet จะพบวาในแฟมปลายทางมชทหนงถกซอนไว โดยชทนใช
เกบขอมลจากชทตนทางไวทงหมด ดงนนขอมลทไดมาจากสตร link ขามแฟม ถาวากนให
ถกตอง ไมไดเปนผลจากสตรท link มาจากแฟมตนทางโดยตรง แตเปนขอมลทไดมาจากชทท
ซอนไวภายในชทปลายทางในแฟมเดยวกนกบแฟมทมสตร link นนเอง โดยเรยกขอมลทเกบ
ในชทนวา Cache Data ซงสงผลใหแฟมปลายทางมขนาดแฟมใหญกวาปกตตามไปดวย
(ตอมา Microsoft ไดปรบปรงให Excel ซอนชทนไวโดยไมสามารถคนหาพบเชนแตกอน)
ถาคณสามารถสรางสตร link ขอมลภายในชทเดยวกน กขอใหใชวธเดยวกนในการ link ขอมล
ขามชทหรอแมแตขามแฟม ขอเพยงอยากลวภาพลวงตาททาใหเหนวาเปนตางชทหรอตางแฟม
กนเพราะความจรงมนกคอชทเดยวกนนนเอง ซงกอนทจะใชวธสรางสตร link ทนยมใชกน
ตอไปน ขอใหเปดแฟมทกแฟมทตองการสรางสตร link ขอมลระหวางกนขนมากอนทงแฟมตน
ทางและแฟมปลายทางแลวจะชวยใหสรางสตร link ไดงายมาก
1. วธยอนปลายกลบมาหาตน
1.1. ใหเรมจากพมพเครองหมายเทากบ = ทเซลลปลายทาง
45
Copyright of www.ExcelExpertTraining.com
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 เพอไปทแฟมปลายทาง)
2.4. จากนนใหเลอกเซลลหวมมตารางปลายทางเพยงเซลลเดยวแลวคลกขวา สง Paste
Special > กดป ม Paste Link จะไดสตร link พรอมกนทเดยวทงตาราง
3. วธ Cut จากตน แลวไป Paste ทปลาย โดยวธนวาไปแลวไมไดเปนการสรางสตร link
แตใหเรมจากสรางสตร link ไวในชทเดยวกนตามวธขางตนใหเสรจกอน จากนนจงสง Cut
ตารางสตรจากชทตนทางไป Paste ทตาแหนงปลายทางในชทอนหรอแฟมอน ซง Excel
จะปรบโครงสรางตาแหนงอางองในสตรใหกลายเปนตาแหนงอางองขามชทหรอขามแฟมให
เองทนท
วธท 3 นเปนเคลดลบสาคญในการสรางสตร link ขามแฟม โดยเรมจากสรางสตร link
ทงหมดในชทเดยวกนใหเสรจกอน จากนนเมอ Cut เซลลสตรไปทชทอนจะไดสตร link
46
Copyright of www.ExcelExpertTraining.com
ขามชท หรอถา Cut เซลลสตรไปทแฟมอนจะไดสตร link ขามแฟม ชวยใหไมตองเสยแรง
เสยเวลาสรางสตร link ขามชทหรอขามแฟมตงแตแรกแมแตนอย เชน
• จากเดมสรางสตร link ในชทเดยวกนเปน =A1
• พอ 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 ไมพบ)
47
Copyright of www.ExcelExpertTraining.com
3.2. ตรวจสอบวาไมมชทใดถกสง Protect Sheet เอาไว (เพราะถาชทใดถก Protect จะไม
สามารถแกไขสตร link ทมอยในชทนนไดเลย แมจะสงผาน Excel กตาม)
3.3. จากนนใหใชคาสง Data > Edit Links (Excel 2003 ใชคาสง Edit > Links)
3.4. คลกเลอกชอแฟมตนทางทแสดงในชองรายชอ Source
3.5. กดป ม Change Source แลวคลกไลหาแฟมตนทางทเกบไวในโฟลเดอรทตองการ
4. เคลดอนๆซงสามารถนามาใชรวมกบคาสง Edit Links จากรปขางตน
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 ทบเฉพาะเซลลนนๆจะเหมาะกวา
48
Copyright of www.ExcelExpertTraining.com
ระบบการรกษาความปลอดภย
ในการ Link File ของ Excel 2010
แมวาขนาดตารางในชทของ Excel 2010 มจานวน 1,048,576 rows และ 16,384 columns
ชวยรองรบกบขอมลจานวนมหาศาลมากขนกวา Excel รนกอนกตาม แตมไดทาใหวธบนทก
ขอมลทถกตองตางไปจากทควร กลาวคอ ในแฟมหนงๆควรเลอกบนทกเฉพาะขอมลท
จาเปนตองใชงานเรองทเก ยวของกนไวดวยกนในชทเดยวกนเทาน น เชน แยกแฟมเกบ
ขอมลการขายในชวงแตละไตรมาสไวดวยกน แฟมแรกเกบขอมลเดอน 1-3 แฟมทสองเกบ
ขอมลเดอน 4-6 แฟมทสามเกบขอมลเดอน 7-9 และแฟมทสเกบขอมลเดอน 10-12 จากนน
เมอตองการดงขอมลของไตรมาสใดมาใช ใหสรางสตร link ขามแฟมนาขอมลมาคานวณ และ
ใชคาสง Change Sources เพอเปลยนการ link จากแฟมเดมไปยงแฟมอนเพอนาขอมลชวง
ไตรมาสทตองการมาคานวณโดยไมตองเสยเวลาสรางสตร link ใหมแตอยางใด
ใน Excel 2010 ไมไดมวธการสรางสตร link หรอมระบบการ Change Sources ตางไปจาก
Excel รนกอน แตใน Excel 2010 มระบบการรกษาความปลอดภยในการใชขอมลทเครงครดกวา
รนกอนและสงผลทาให Excel 2010 แสดงอาการและมคาเตอนตางไปจากเดมเมอมการเปด
แฟมท link กน บทความนจะทดสอบระบบการ link file ของ Excel 2010 โดยจาลอง
สถานการณในแตละขนตอนมาใหศกษาตงแตเรมตนยงไมมขอมล จวบจนสรางสตร link และ
ทดลองปรบระบบการรกษาความปลอดภยวาจะสงผลตอคาเตอนเรองการ link อยางใดบาง
ระบบความปลอดภยใน Excel 2010 ทจะนามาทดสอบกบระบบการ link เชน Trusted
Location และ Trusted Document (เชญ Download แฟมทใชในการทดสอบนไดจาก
www.ExcelExpertTraining.com/download/testlink.zip)
1. เรมตนจากทดสอบขนาดแฟมทเปดขนมาโดยยงไมมขอมลอะไรเลย สง Save แฟมตง
ชอวา Target.xlsx พบวามขนาดแฟม 8.18 KB
2. ในแฟมชอ Target น ทดลองพมพคาวา Operations ลงไปในเซลล B2 พบวา จากแฟม
วางๆซงมขนาด 8.18 KBแฟมมขนาดใหญขนเลกนอยเปน 8.55 KB พอพมพตวเลข
20496 ลงไปในเซลล C2 แฟมมขนาดใหญเพมขนเปน 8.57 KB (แสดงวาขอมลตวเลข
ทาใหแฟมมขนาดใหญขนชากวาขอมลทเปนตวอกษร)
3.
4.
5.
สรางแฟมฐ
ในแฟม Tar
รายการ De
ใชสตร Arra
ทาใหแฟม
ใหแฟมมขน
แฟมทาใหเ
เปนพเศษจ
เมอปดแฟม
เพยงแฟมเด
คาวา Oper
หายอดรวม
Target เปล
Cop
านขอมลจา
rget เซลล
epartment ท
ay {=SUM
Target มข
นาดเพมขนไ
เกด cache
จากการเกบ
ม Source ซ
ดยว พบวาแ
rations เปน
ไดตามตอง
ลยนแปลงแ
pyright of ww
านวน 200 ร
C2 เมอสรา
ทมช อ Ope
((Source.x
นาดเพมขน
ไดงายกวาข
data ขนใน
cache data
ซงเปนแฟมต
แฟม Target
น Security ห
การ โดยไม
ตอยางใด (
49
ww.ExcelExp
รายการ ชอ
างสตร link
erations วาม
xlsx!DEPAR
นจาก 8.57 K
ขอมลทเปนต
นแฟมปลายท
a เอาไว)
ตนทาง ใหค
t ยงคงมขน
หรอ R&D เพ
มตองเปดแฟ
แสดงวาใชข
pertTraining.c
Source.xlsx
เพอหายอด
มยอดของ A
RTMENT=B
KB เปน 12.
ตวเลขหรอต
ทาง ทาใหแ
งเหลอแฟม
นาดเทาเดมเ
พอหายอดร
ฟม Source
ขอมลจาก c
com
x มขนาด 1
รวมจากแฟม
Actual รวมเ
B2)*Source
5KB (แสดง
ตวอกษร แล
แฟมปลายท
มปลายทาง T
เปน 12.5 K
รวมของรายก
และไมทาให
cache data
19.1 KB
ม Source ข
เทากบ 204
e.xlsx!ACTU
งวาสตรคาน
ละการ link ข
างมขนาดให
Target เปด
KB และเมอเ
การ พบวาส
หขนาดแฟม
a ทเกบไวใน
ของ
496 โดย
UAL)}
นวณทา
ขาม
หญขน
ดอย
เปลยน
สามารถ
ม
นแฟม
6.
7.
Target)
ตรวจสอบค
update au
จากนนทดล
แถบคาเตอ
links has b
ขนมาอธบา
Cop
คาสง File >
tomatic lin
ลองปดแฟม
น Security
been disab
ายวา The fo
pyright of ww
Options >
nks ไว
ม Target แล
Warning ต
led และเมอ
ollowing co
50
ww.ExcelExp
> Advanced
ลวเปดแฟม
ตรงดานบนข
อคลกลงไปท
ontent has
pertTraining.c
d > พบวาร
Target ขน
ของจอเตอน
ทขอความค
been disa
com
ะบบของ Ex
มาใหมเพยง
นวา Autom
คาเตอนน จะ
bled: Work
xcel กาชอง
งแฟมเดยว
atic update
ะเปดหนา In
kbook links
ง Ask to
ปรากฏ
e of
nfo
s
8.
9.
10.
11.
12.
13.
14.
ทดลองยอน
รวมแทนคา
เมอเปดแฟม
แสดงวามก
แฟมปลายท
ปดแฟม Ta
ในแฟม Sou
เหลอเฉพาะ
ไว เพอทดส
Operations
ปดแฟม So
Warning แ
คราวนกดป
Operations
Enable Co
ใหมทแกไข
ปดแฟม Ta
Excel 2010
Cop
นกลบไปท H
าวา Operati
ม Source ข
าร Enable
ทาง
arget
urce ทดลอ
ะรายการแรก
สอบวา ถาเป
s เทากบเท
ource แลวเป
และยอดรวม
ม Enable C
s รวมเทากบ
ntent เปนก
ขและเกบไว
arget โดยไม
0 เตอน Sec
pyright of ww
Home โดย
ions พบวาส
ขนมา พบวา
Content เพ
องลบตวเลข
กซงมคาเทา
ปดแฟม Ta
าใดเมอเปด
ปดแฟม Tar
ของ Opera
Content ทา
บ 2562 ตาม
การสงให Ex
ในแฟม Sou
มตองสง Sa
curity Warn
51
ww.ExcelExp
ยงไมได En
สามารถหาย
าคาเตอน Se
พอ Update
ข Actual ขอ
ากบ 2562
rget ทปดไ
ดแฟม Targe
rget ขนมาเ
ations เทาเ
าใหคาเตอน
มยอดใหมท
xcel update
urce
ave แลวเปด
ning และยอ
pertTraining.c
nable Cont
ยอดรวมของ
ecurity Wa
Link ใหเอง
อง Departm
แลวสง Sav
ไปกอนแลวจ
et เพยงแฟ
เพยงแฟมเด
เดมเชนเดยว
น Security W
ทเกบไวในแฟ
e cache da
ดแฟม Targ
อดรวมของ
com
ent แลวใช
ง R&D ไดเช
rning ในแฟ
งทนทเมอเป
ment ทเปน
ve แฟม Sou
จะแสดงยอด
มเดยว
ดยวจะพบคา
วกบการทดล
Warning หา
ฟม Source
ata ในแฟม
get ขนมาอก
Operations
คาวา R&D
ชนเดม
ฟม Target
ปดแฟมตนท
Operation
urce เกบยอ
ดรวมของ
าเตอน Secu
ลองในขอ 7
ายไปและได
e แสดงวากา
Target ตาม
กครงหนง ไ
s แสดงตวเล
หายอด
หายไป
ทางคกบ
s ให
อดใหมน
urity
7-8
ดยอด
ารกดป ม
มขอมล
มพบวา
ลข
15.
16.
17.
18.
การทดล
กอน โด
Excel ค
เทากบ 256
ใหทนท
ตรวจสอบระ
Trusted Do
เอาไวตงแต
กอนทเปดแ
แฟม Targe
ตามภาพใน
ทไมเคยไวใ
ตามการทด
ตามภาพใน
Trusted Do
Warning ต
บนทกคาให
จากขอ 17
Locations
ไวใจได พบ
ลองขางตนท
ดยเฉพาะอย
คนใดคนหนง
Cop
62 ทนท แส
ะบบของ Tr
ocument ไ
ตแรกแลว ท
แฟมน ไดสง
et ไวกตาม)
นขอ 15 ทดล
ใจ แลวเปด
ดลองในขอ 7
นขอ 15 ทดล
ocument แ
ตามขอ 7 ทก
หมท Updat
ซงเลกใชระ
โดยกาหนด
บวาเมอเปด
ทาใหตองเพ
ยางยงการใช
งเขาไปปรบ
pyright of ww
สดงวาเมอเป
rust Center
ไวเปน defau
ทาให Excel
ง Enable Co
)
ลองกดป ม C
แฟม Targe
7 ตามเดม
ลองกาชอง
แลวเปดแฟม
กครงแมจะก
te ไปแลวกต
ะบบ Truste
ดใหโฟลเดอ
แฟม Targe
พมความระม
ชเครองคอม
บแกระบบกา
52
ww.ExcelExp
ปดเดมแฟมซ
r พบวา ระบ
ult โดยไมไ
ถอวาแฟม
ontent (Ex
Clear เพอก
et ขนมาใหม
Disable Tr
ม Target ซ
กดป ม Enab
ตาม
ed Docume
อรทเกบแฟม
et จะไมมกา
มดระวงในกา
มพวเตอรแล
ารเตอน Sec
pertTraining.c
ซาอก Exce
บบตามปกตข
ไดกาชอง D
Target เปน
xcel จะจาไว
กาหนดใหทก
ม พบวา Ex
rusted Doc
าหลายๆครง
ble Content
ent ไปแลว
ม Source แ
ารเตอน Sec
ารใชแฟม E
ะแฟมรวมกน
curity Warn
com
el จะเปดตาม
ของ Excel 2
Disable Trus
นแฟมทเชอ
วใหทงๆทไม
กแฟมทเคย
cel เตอน S
cuments เพ
ง พบวา Exc
t แลวสง Sa
ใหทดลองใ
ละ Target
curity Warn
Excel ท link
นหลายคน
ning ของ Ex
มวธทผใชเค
2010 กาหน
sted Docum
ถอไดเพราะ
มไดสง save
ยเปดถอวาเป
Security Wa
พอเลกใชระบ
cel เตอน Se
ave แฟม Ta
ใช Trusted
เปนโฟลเด
ning อกตอไ
k กนมากขน
เพราะหากผ
xcel 2010
คยเปด
นดใหใช
ments
ะคราว
e เกบ
ปนแฟม
arning
บบ
ecurity
arget
อรท
ไป
นกวาแต
ผใช
ใหตาง
ไปจากเ
นาขอม
หากจาเ
Docum
Locatio
นอกจาก
จดระบบ
ยงคงเต
ไมไดสง
Excel 2
ในกรณ
Center
Workbo
Workbo
เดมหรอแตก
ลไปใชอยาง
เปนตองใชเ
ments เพอเล
ons ไวอยาง
กนเมอทดล
บใหไมใช T
ตอน Securit
งผลตอการใ
2003 หรอ E
ทไมตองกา
ของ Exter
ook Links (
ook links
Cop
กตางจากทเ
งผดพลาดข
เครองคอมพ
ลกใชระบบ
งเดดขาด
ลองตดกาชอ
Trusted Loc
ty Warning
ใชงานใน Ex
Excel รนกอ
ารให Excel
rnal Conten
(ซงไมแนะน
pyright of ww
เคยใชรวมก
ขนมาได
พวเตอรและแ
Trusted Do
อง Ask to u
cations และ
g เสมอ ทาใ
xcel 2010
นหนานนทน
2010 เตอน
nt โดยเลอก
นาใหใช) แท
53
ww.ExcelExp
กน ยอมสงผ
แฟมรวมกน
ocument แ
update auto
ะไมใช Trus
ใหเขาใจวาค
อกตอไป อ
นามาเปดดว
นเมอเปดแฟ
กกาชอง En
ทนชอง Pro
pertTraining.c
ลใหผใช Ex
หลายคน ข
และหามกาห
omatic link
sted Docum
คาสง Ask t
าจยงคงมปร
วย Excel 20
ฟมท link กน
nable autom
ompt user o
com
xcel คนอนเ
อใหกาชอง
หนดโฟลเดอ
ks ตามภาพใ
ment พบวา
o update a
ระโยชนกบแ
010 กเปนได
น สามารถปร
matic upda
on automa
เกดความสบ
Disable T
อรใดเปน Tr
ในขอ 6 ทง
า Excel 201
automatic l
แฟมทสราง
ด
รบระบบ Tr
ate for all
atic update
บสนและ
rusted
rusted
ง โดย
10 จะ
links น
ขนจาก
ust
e for
54
Copyright of www.ExcelExpertTraining.com
หลกการต งชอและใชชอใน Excel
การตงชอและใชชอเปนหวใจสาคญของการนาตาแหนงอางองไปใชซา เนองจากหากปราศจาก
การตงชอทดข นมาใชแทนตาแหนงอางองของเซลลแลว สตรสนๆทดไมมพษภยอะไร จะกลบ
กลายเปนปญหาอยางมาก ยงใน Excel 2007 มพนทตารางกวาหมน Column และลานกวา
Row จะทาให สตร =JAN2009 ซงเปนสตรทนาคามาจากเซลลใน Column JAN ตดกบ Row
2009 สามารถดผาดๆและถกตความวาเปนคาของเดอน Jan ปค.ศ.2009 แทนกเปนได
หากสงเกตขนาดของตวอกษรแตละตวในคาแตละคาทปรากฏในตาราง Excel จะพบวา ชอใดๆ
กตามทเปนชอมาตรฐานของโปรแกรม Excel ซงเราไมสามารถเขาไปแกไขเปลยนแปลงใหเปน
ชออน ไดถกจดใหใชตวอกษรตวใหญทงหมด (เวนชอคาสงบน Ribbon หรอเมน) เชน ชอ
ตาแหนง Column A B C D จนถง XFD (Excel 2003 ม Column สดทายชอ IV) และสตร
สาเรจรปของ Excel ทกสตร เชนสตร SUM, MAX, MIN, VLOOKUP ลวนใชตวอกษรตวใหญ
ทงหมด ดงนนแทนทจะพรอมใจกนตงชอแลวใชชอทเปนตวใหญทงหมดตามแบบของชอของ
Excel เราควรกาหนดหลกการตงชอและใชชอทส อความหมายไดดข นกวาเดม ดงน
1. หากแฟมใดจะถกใชซา ขอใหตงใจตงชอใหด เพอทาใหไมวาผทนาแฟมงานไปใชซานนจะ
เปนตวคณซงเปนผสรางแฟมนนเองหรอจะเปนเพอนทเพงเปดใชแฟมนนเปนครงแรกกตาม
จะไดสามารถเปดแฟมดแลวสามารถไลทไปทมาของสตรในเซลลไดทนท แตถาแฟมใดถก
สรางขนมาเพอใชงานงายๆเพยงครงเดยวแลวทง ไมตองนากลบมาใชอก กไมจาเปนตองตง
ชอใหดกได
2. ชอใดทคณตงขนมาไมวาจะเปนชอชท ชอแฟม ชอโฟลเดอร ชอตาแหนงเซลล (Range
Name) ชอสตร (Formula Name) หรอชอทตงใหกบคาคงท (Constant Name) ใหตงชอ
โดยใชตวอกษรตวใหญผสมกบตวเลกเสมอ
3. เมอใดทตองการสรางสตรหรออางถงชอใดๆกตาม ใหใชตวอกษรตวเลกทงหมดเทานน
เพราะเมอพมพลงไปในเซลลแลวกดป ม Enter จะเกดขอสงเกตในตวอกษรของแตละชอ
ขนมาทนทกลาวคอ
3.1. ตวอกษรทกลายเปนตวใหญทงหมด แสดงวาเปนชอเฉพาะของ Excel
3.2. ตวอกษรทกลายเปนตวใหญผสมตวเลก แสดงวาเปนชอทคณตงไว
3.3. ตวอกษรทยงคงเปนตวเลกทงหมด แสดงวาสะกดชอผด ดงนน Excel จงไมยอมรบชอ
นน ทาใหขนาดตวอกษรไมเปลยนแปลงตาม
55
Copyright of www.ExcelExpertTraining.com
4. ชอทตงขนควรใชตวอกษรตงแต 4 ตวขนไปเพอมใหซากบชอของ Column แตถา
จาเปนตองตงชอทมตวอกษร 2-3 ตวกทาได เพราะการตงชอทใชตวอกษรตวใหญผสมตว
เลกจะชวยในการแยกแยะใหเหนไดชดอยแลววา Jan2009 มไดมความหมายเดยวกบ
JAN2009 ทเปนเซลลใน Column JAN ตดกบ Row 2009 (ถาตองการตงชอทเปนตวอกษร
ตวเดยว ขอใหหลกเลยงตว C และ R เพราะซากบตวยอของ Row และ Column)
5. Excel จะไมยอมรบชอ Range Name ทมการเวนวรรค โดยหากสงให Excel ใชขอความใน
เซลลตามขอบตารางมาเปนชอโดยอตโนมต จะถกแกไขเครองหมายวรรคเปนเครองหมาย
ขดลาง _ (Underscore) ใหเอง และ Excel จะไมยอมรบชอ Range Name ทเปนตวเลข
ลวนหรอเปนตวเลขนาหนาตวอกษร
6. แมจะไมมขอหามในการตงชอเปนภาษาไทย แตกแนะนาใหตงชอเปนภาษาองกฤษจะ
เหมาะสมกวา เพราะหากใช Excel version ภาษาองกฤษ เปดแฟมทมการใชชอภาษาไทย
จะอานชอภาษาไทยไมออก
7. ในการตงชอชท หามตงชอวา History เนองจากเปนชอท Excel สารองไวใชภายใน
8. ในการตงชอ Range Name หามตงชอวา Criteria หรอ Extract เพราะชอ Criteria นจะถก
ลบทงหรอเปลยนแปลงตาแหนง Extract จากเดมไดเองทนททใชคาสง Advanced Filter
9. หากตองการไดรบความสะดวกจากคาสง Data Form ใหตงชอตารางฐานขอมลวา
Database เพอทาให Excel ดงขอมลมาใชใน Data Form ไดเองโดยทคณไมตองเลอก
ตารางฐานขอมลนนไวกอน
10. โปรดเขาใจเพมเตมวา ในการเขยนชอสตรและชอตางๆทใชในการอบรมตลอดจนขอมลบน
เวบ www.ExcelExpertTraining.com นน ใชวธเขยนชอโดยใชอกษรตวใหญผสมตวเลก
เสมอ เพอชวยในการอานใหสามารถแยกแตละสวนของคาไดงายขน เชน VLookup,
SumIF, SumProduct เปนตน ซงเมอใดทตองการนาชอไปใช ใหพมพตวเลกตลอดตาม
หลกการขางตน
ใน Excel 2003 มระบบการตงชอ Range Name, Formula Name, และ Constant Name ทไม
ซบซอนนก เพยงสง Insert > Name > Define กสามารถ Add ตงชอหลายๆชอไดโดยใช
คาสงนเพยงครงเดยว สวนใน Excel 2007 มคาสงในการตงชอใหเลอกได 2 วธ คอ
1. หากตองการตงชอเดยว ใหสง Formulas > Define Name
56
Copyright of www.ExcelExpertTraining.com
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 กยงได)
57
Copyright of www.ExcelExpertTraining.com
การต งชอ 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 แสดงในเซลลนน
58
Copyright of www.ExcelExpertTraining.com
หมายเหต ชอทเปน Range Name หรอ Formula Name มขนตอนการใชชอเหมอนกบ
Constant Name เชนกน
การต งชอ Range Name
Range Name เปนชอทตงใหกบเซลลเดยวหรอพนทตาราง (ทมพนทตดกนหรอไมตดกนกได)
ซงมวธตงชอไดหลายวธ ดงน
1. วธใช Name Box เปนชองดานซายมอของ Formula Bar วธนเปนวธตงชอทงายทสด แต
ใชกบการตงชอไดอยางเดยว ไมสามารถใช Name Box เพอแกไขหรอลบชอทง
1.1. เรมจากคลกเลอกเซลลหรอตารางทตองการ (หากตองการเลอกเซลลทไมตดตอกน ให
กดป ม Ctrl แลวคลกเลอกพนทตารางทตองการไปเรอยๆ)
1.2. คลกลกศรดานขวาของชอง Name Box แลวพมพชอ 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 (โดยใหคลกตอทายตาแหนงเดมทแสดง
59
Copyright of www.ExcelExpertTraining.com
ไวในชอง Refers to: น) จากนนใหเลอกพนทตารางทตองการแลวกดป ม OK เพอรบชอ
3. วธใชคาส ง Formulas > Create from selection (Excel 2003 ใชคาส ง Insert
> Name > Create) วธนชวยนาขอความทอยขอบตารางมาตงเปนชอใหกบพนทตาราง
ในฝงตรงขามกบขอความนน เรมจากคลกเลอกพนทตารางทตองการตงชอโดยใหเลอก
รวมทงพนทหวตารางไวดวย จากนนใชคาสง Formulas > Create from Selection จะพบ
หนาจอตอไปนเปดขนมา ใหดวาตรงตามตองการแลวกดป ม OK เพอรบชอ
Excel เลอกชอง Left column ไวให เนองจาก Column ซายสดของพนทตารางทเลอกนน
มตวอกษรบนทกไว โดย Excel จะตงชอพนทตาราง C2:E2 วา Income และตงชอพนท
ตาราง C3:E3 วา Cost ตามขอความใน Column ซายสดใหทนท ทงนขอใหเขาใจดวยวา
ชอ Income และ Cost เปนชอท Excel ชวยตงใหเพยงครงเดยวตอนทใชคาสง Create
from selection นเทานน และจะยงคงใชชอนอยโดยไมเปลยนแปลงตามขอความใน
Column ซายทอาจมขอความตางไปจากเดมแตอยางใด
หากตองการขยายขอบเขตของ Range Name ใหใชวธการ Insert Row หรอ Insert Column
หรอใชวธท 2 หรอวธท 3 ขางตนเพอเขาไปกาหนดขอบเขตพนทตารางใหมใหมขนาดใหญขน
ตามตองการ
60
Copyright of www.ExcelExpertTraining.com
Range Name ทตงขน สามารถนาไปใชอางองผานสตรสาเรจรปของ Excel ไดทนท เชน หาก
ตองการหายอดรวมของตวเลขใน Range Name ชอ Income ใหเรมสรางสตรตามลาดบ
ตอไปน
1. พมพ =sum(
2. กดป ม F3 เพอแสดงรายชอทตงไวในแฟม (ในกรณทตองการนาชอมาจากแฟมอน ใหยาย
ไปอยในแฟมทมช อ Range Name ทตองการนนกอนแลวจงกดป ม F3)
3. ดบเบลคลกทช อ Income จะไดสตร =sum(Income
4. กดป ม Enter จะไดสตร =SUM(Income)
แตถานา Range Name ไปใชอางองโดยตรงโดยไมไดใชอางองผานสตรสาเรจรปของ Excel
จะพบวาหากตงชอใหกบตารางทมเซลลตงแต 2 เซลลขนไป ชอนนจะนามาใชไดเฉพาะในแนว
คขนานกบแนวพนทตารางทตงชอไวเทานน เชน หากตงชอตวเลขหวตารางในตาแหนงจาก
C2:F2 วา Top และตงชอตวเลขขางตารางตาแหนงจาก B3:B5 วา Left จะสงผลใหใชสตร
=Top*Left คานวณหาคาตอบไดเฉพาะในขอบเขตตารางทแนวคขนานของ Top ตดกบ Left
คอพนทตารางตงแต C3:F5 โดยสตรนอกแนวคขนานจะไมคานวณแตคนคาเปน Error
#VALUE!
วธต งชอตาแหนงอางองแบบไรขอบเขตจากด
ขอยอนนาตวอยางการคานวณทตงชอหวตารางดานบนวา Top มาคณกบหวตารางดานซายทตง
ชอวา Left โดยใชสตร =Top*Left มาวเคราะหอยางละเอยดวา ดวยเหตใดสตร =Top*Left
จงสามารถคานวณหาคาตอบไดเฉพาะพนทตารางในสวนทตดกนของแนวคขนานของ Top ตด
กบ Left เทานน สวนพนทตารางนอกขอบเขตแนวทตดกนจะใหคาตอบเปน Error
61
Copyright of www.ExcelExpertTraining.com
เมอใชคาสง 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 ไดเฉพาะในแนวคขนาน
ดงนนหากคณเขาใจถงเหตและผลตามทไปทมาดงกลาวขางตน จะสามารถเลอกใชเครองหมาย
$ ในการกาหนดขอบเขตแบบไมจากดได โดยปรบตาแหนงเครองหมาย $ ตามหลกตอไปน
• หากตองการใหกาหนดตาแหนงอางองใหหมายถง ทกเซลลในแนวนอน ใหใช
ตาแหนงอางองจากเซลลเดยวตามแนวคขนานกบเซลลทจะใชชอนน และใส
เครองหมาย $ ควบคมตาแหนงเฉพาะ Row เชน C$2
• หากตองการใหกาหนดตาแหนงอางองใหหมายถง ทกเซลลในแนวต ง ใหใชตาแหนง
อางองจากเซลลเดยวตามแนวคขนานกบเซลลทจะใชชอนน และใสเครองหมาย $
ควบคมตาแหนงเฉพาะ Column เชน $B3
• หากตองการใหกาหนดตาแหนงอางองใหหมายถง ทกแนว ใหใชตาแหนงอางองจาก
เซลลเดยวตามแนวคขนานกบเซลลทจะใชชอนน และไมใสเครองหมาย $
62
Copyright of www.ExcelExpertTraining.com
• หากตองการใหตาแหนงอางองใชไดกบทกชท กไมตองระบชอชทนาหนาตาแหนง
อางองแตตองทงเครองหมาย ! ไวดวยเพอหมายถงทกชท เชน !I5
เนองจากตาแหนงอางองแบบทไมไดใส $ แบบ Absolute น จะยายตาแหนงไปตามแนวคขนาน
กบตาแหนงเซลลสตรทใช ดงนนกอนทจะใชคาสง Formulas > Name Manager เขาไป
กาหนดตาแหนง คณจะตองเลอกเซลลในแนวเดยวกบเซลลทอางถงในชอง Refers to: ไว
ลวงหนาเสมอ ตามรปตวอยางตอไปน
1. หากตองการตงชอ TopRow และ LeftColumn (หรอชอใดกไดตามใจชอบ) ใหม
ตาแหนงอางองทหมายถงทกเซลลใน Row 2 และทกเซลลใน Column B ตามลาดบ
1.1. ใหคลกเลอกเซลล C3 ไวกอนแลวจงสง Formulas > Name Manager
1.2. ตงชอ TopRow ใหมตาแหนงอางอง Refers to: =Sheet1!C$2
1.3. ตงชอ LeftColumn ใหมตาแหนงอางอง Refers to: =Sheet1!$B3
2. หากตองการตงชอ Sum3Above (หรอชอใดกไดตามใจชอบ) ใหทาหนาทหายอดรวม
ของเซลล 3 เซลลทอยเหนอขนไปจากเซลลทใชชอนอยโดยเวนเซลลทตดกบเซลลสตร
2.1. ใหคลกเลอกเซลล C13 ไวกอนแลวจงสง Formulas > Name Manager
2.2. ตงชอ Sum3Above ใหมตาแหนงอางอง Refers to: =SUM(Sheet1!C9:C11)
3. หากตองการตงชอ Left2 (หรอชอใดกไดตามใจชอบ) ใหทาหนาทหาคาจากเซลลทอย
ดานซายถดไป 2 เซลลจากเซลลทใชชอนอยและใหใชกบทกชทไดดวย
3.1. ใหคลกเลอกเซลล G10 ไวกอนแลวจงสง Formulas > Name Manager
3.2. ตงชอ Left2 ใหมตาแหนงอางอง Refers to: =!E10
63
Copyright of www.ExcelExpertTraining.com
การต งชอ 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 ชวยกาหนดขนาด
ตารางใหยอหรอขยายไดโดยอตโนมตตามขนาดของขอมล
การเปลยนตาแหนงอางองในสตรทมอยกอนใหกลายเปนชอทต งข นใน
ภายหลง
64
Copyright of www.ExcelExpertTraining.com
สมมตวาสรางสตร =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
เคลดลบอนๆทควรทราบเกยวกบชอทบอกตาแหนง
1. ชอง Name Box แสดงไดเฉพาะชอ Range Name ทอยในแฟมนนเทานน
2. การคนหาตาแหนงเซลลหรอตารางทตงชอไว ใหใช Name Box หรอกดป ม F5 เพอเลอก
ชอทแสดงไวหรอพมพชอททราบลงไปเองกได
3. หากตองการ Copy ชอตาแหนงอางองไปใชทแฟมอนใหมชอแบบเดยวกน ใหเลอก Copy
พนทตารางทงหมดทเกยวของและสตรไปดวยกน (ซงหมายถง พนทตารางทระบไวใน
ตาแหนงอางอง และเซลลสตรทอางถงชอตาแหนงอางองซงอยในพนททเลอกนนดวย)
จากนนให Paste ลงไปในแฟมใหมตามตาแหนงเดมของพนทตารางท Copy มา แลวจง
สงยายไปทอนในภายหลงตามตองการ
4. เซลลเดยวมชอไดหลายชอ แตชอง Name Box แสดงชอแรกทตงตามลาดบตวอกษร เชน
เซลล A1 ตงชอ Range Name ไวหลายชอทง Income, Sales, และ Revenue จะพบวา
เมอคลกเขาไปทเซลล A1 ในชอง Name Box จะแสดงวามชอวา Income เพราะตวอกษร I
มากอนตวอกษร R หรอ S แตถาไลดรายชอใน Name Box จะพบชออนแสดงไวดวย
5. ตวชอ Range Name กบตาแหนงอางองในชอง Refers to: ไมจาเปนตองอยในแฟม
เดยวกนกได โดยเราสามารถตงชอไวในแฟมหนง แตกาหนดใหตาแหนง Refers to: ไปอย
ในแฟมอนได โดยใช Mouse คลกเลอกตาแหนงตารางในแฟมอนกจะไดตาแหนงทตองการ
มาใสในชอง Refers to: ใหเอง
6. หาก Cut ตารางทตงชอ Range Name เอาไวไปวางไวในแฟมอน จะทาใหตวชอ Range
Name ยงอยในแฟมเดม แตตาแหนงอางองในชอง Refers to: จะยายตามไปทแฟมอน
และยงสงผลใหชอง Name Box ไมแสดงชอ Range Name นนอกตอไป (โดยยงคงดชอ
ทกประเภทไดจากคาสง Formulas > Name Manager)
65
Copyright of www.ExcelExpertTraining.com
7. หากตองการหาคา ณ ตาแหนงเซลลทตดกนของตารางทตงชอไว (Intersection) ใหใช
สตรทมเครองหมายวรรคคนระหวางชอ เชน =Top Left จะไดคาจากเซลลททตาแหนงตด
กนของ Top ตดกบ Left
8. หากตองการสรางสตรทอางถงตาแหนงอางองในตารางโดยตรง โดยไมตองการใหสตรท
เกดขนใชชอ Range Name ใหเรมจากเลอกเซลลตงแต 2 เซลลขนไปไวกอนแลวจงพมพ
= แลวคลกเลอกเซลล จะไดสตรทมตาแหนงอางองโดยไมอางถงชอ Range Name
9. Formula Name ทใชตาแหนงอางองทไมใช Absolute Reference ในบางกรณจะไม
คานวณตามคาตวแปรทเปลยนไป ซงแกไขไดโดยปรบสตรใหคานวณรวมกบสตร Now()
หรอ Today() เชน Sum3Above ใช Refers to: =SUM(Sheet1!C9:C11)*Now()/Now()
10. ชอทตงไวจะถกเกบไวในแฟมทใชตงชอเทานน หากตองการทาใหแฟมใหมมชอทตงไว
แบบเดยวกบแฟมเดม ให Copy เซลลสตรทใชชอในการอางองถงตาแหนงเซลลไปพรอม
กบเซลลทถกตงชอไวไปดวยกน และในการสง Paste ในแฟมใหม ตอง Paste ลงไปใน
ตาแหนงเดมดวย จงจะทาใหแฟมใหมเกดชอและมตาแหนงอางองถกตองตามแฟมเดม
66
Copyright of www.ExcelExpertTraining.com
การใชสตรปรบตาแหนงอางอง
คาอธบายจากนไปจะมประโยชนตอเมอคณมพนฐานมากอนแลววาตาแหนงอางองมประโยชน
อยางไรและจะนาตาแหนงอางองไปใชซาโดยการ Copy หรอโดยการตงชอตาแหนงอางองได
อยางไร ซงการนาตาแหนงอางองไปใชซาตามวธทใชกนโดยทวไป คณตองเสยแรงเสยเวลา
Copy หรอตองสรางสตรใหมทกครง จงเปนเรองนาคดวาจะมวธใดบางทจะทาใหตาแหนง
อางองเดมทมอยปรบตาแหนงไดเองโดยคณไมตองเขาไปยงเกยวแกไขสตรใหมอกเลย
วธท 1 : ใชสตร Indirect(“Text บอกตาแหนง”) แบบเซลลเดยว
ลองนกดซวา ถาเดมคณสรางสตรเพอดงคาจากเซลล A1 มาใชดวยสตร =A1 จากนนหาก
ตองการทาใหสตรในเซลลเดมนนแหละ ดงคาจากเซลล A2 มาแทน จะทาไดอยางไรโดยไม
ตองยอนกลบไปแกไขสตรใหเปลยนเปน =A2 แตอยางใด
แทนทจะสรางสตรตรงๆลงไปวา =A1 คราวนใหยอมเปลองเซลลหนอย เรมจากใชเซลล C4
และ C5 เปนเซลลรบตวอกษร a และเลข 1 ลงไปตามลาดบ จากนนนาตวอกษรกบตวเลขมาตอ
กนในเซลล C6 โดยใชสตร =C4&C5 จะไดคาวา a1 ซงเปน Text ทบอกตาแหนงตามแบบ
มาตรฐานของตาแหนงอางองใน Excel (ถาอยากลดขนตอน จะใชเซลล C6 สาหรบพมพ
ตาแหนงเซลล a1 ลงไปเลยกได โดยไมตองเสยเซลล C4 และ C5 เพอแยกตาแหนงแตละสวน
ไวกอน)
จากนนเซลล C7 ใชสตร =Indirect(C6) จะไดคาเปนตวเลข 11 ซงเปนคาจากเซลล A1 นนเอง
ทนหากตองการคาจากเซลลใด ใหใชตาแหนงอางองตามคาในเซลล C6 ซงอาจเกดจากการ
พมพแยกสวนของตวอกษรและตวเลขทบอกตาแหนง Column และตาแหนง Row ลงไปใน
67
Copyright of www.ExcelExpertTraining.com
เซลล 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
68
Copyright of www.ExcelExpertTraining.com
หากตองการหายอดรวมกสามารถนา Text ทบอกตาแหนงในเซลล D8 ไปใชรวมกบสตร Sum
และ Indirect เชน เซลล D9 ใชสตร =Sum(Indirect(D8)) จะหายอดรวมตวเลขจากตารางใน
ขอบเขตทตองการ
นอกจากนแทนทจะนาคาในเซลล 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 เพอตงชอพนทตามคาทอยบน
ของตารางรวดเดยว)
69
Copyright of www.ExcelExpertTraining.com
จากนนใชเซลล 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 ทาได แถมยงมความสามารถเหนอกวาเพราะสามารถ
เปลยนยายตาแหนงอางองตามเงอนไขทกาหนดหรอจะกาหนดใหเปลยนยายตาแหนงโดย
อตโนมตไดอกดวย
70
Copyright of www.ExcelExpertTraining.com
• สตรทสามารถเปลยนยายตาแหนงอางองตามเงอนไขทกาหนด เชน IF, Choose,
Index, Offset
• สตรทสามารถเปลยนยายตาแหนงอางองโดยอตโนมต เชน VLookup, Match ท
นามาใชรวมกบสตร Index หรอ Offset, Address ทนามาใชรวมกบสตร Indirect
71
Copyright of www.ExcelExpertTraining.com
การกาหนดตาแหนงอางองแบบวงกลม
(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)
72
Copyright of www.ExcelExpertTraining.com
ในการดาเนนงานทางธรกจ มงานหลายประเภทซงอาจมเงอนไขทจาเปนตองสรางสตรทมการ
กาหนดตาแหนงอางองแบบวงกลม อาทเชน
• ในเงอนไขการคานวณตนทนสนคา ซงนาคาใชจายทงทางตรงและทางออมมา allocate
เปนตนทนของสนคา จากนนหากสนคานนกลบไปใชเปนวตถดบใหกบสนคาอน แลว
สดทายกนาสนคาอนนนมาใชเปนองคประกอบรวมกบสนคาเดมอก
• หากบรษทรบจายภาษเงนไดบคคลธรรมดาแทนพนกงาน ซงตามกฎเกณฑทางภาษ
อากรกาหนดใหนาภาษทจายแทนนนนามาบวกเปนเงนไดเพม แลวเงนไดรวมทเพมขนน
กตองนากลบไปยอนคดภาษเงนไดอก
• คาใชจายบางรายการ อาจมขอกาหนดทางภาษวาหามนามาหกภาษซาอก แตคาใชจาย
นนกลบมฐานการคานวณทเกดขนจากกาไรสทธ
• ในกรณของการกเงน ถาบรษทนาดอกเบยจายเงนกไปเพมยอดเงนทตองกเพม ยอมทา
ใหตองจายดอกเบยเพมและทาใหตองกเพม
• การของบประมาณคาใชจายทกาหนดวาจะใหตามอตรารอยละของกาไร ซงถากาไรเพม
กจะทาใหไดงบประมาณคาใชจายเพม แตคาใชจายทเพมขน ยอมสงผลใหกาไรลด
และทาใหไดงบประมาณคาใชจายลดลงตาม ซงกลบทาใหกาไรเพมขน
• งานคานวณอนๆ เชน การควบคมให Excel เพมคาตวเลขครงละเทาๆกน โดยสรางสตร
=Number+A1 ลงไปในเซลล A1 หรอการบนทกประวตตวเลขสงสด โดยสรางสตร
=Max(A1,NumberRange) ลงไปในเซลล A1
หมายเหต แทนทจะใชสตรทมตาแหนงอางองแบบวงกลม ซงทาใหแฟมนนมระบบการคานวณ
แบบพเศษทตองสงให Excel ยอมรบกอนจงจะคานวณไดคาตอบถกตอง เราสามารถใชคาสง
อนททาหนาทสงให Excel คานวณซาได เชน Goal Seek หรอใช Solver Add-in หรอใชคาสง
จาก Visual Basic ควบคมการคานวณแทน
73
Copyright of www.ExcelExpertTraining.com
ข นตอนการสรางสตรคานวณแบบ Circular Reference
1. ใหเลอกสรางสตรอนๆทคานวณตามปกตทกสตร (ทไมตองใชการคานวณแบบ Circular
Reference) ใหเสรจกอน แลวจงสรางสตรทตองคานวณแบบ Circular Reference เปนสตร
สดทาย เนองจากหากตองการให Excel คานวณแบบ Circular เมอใด คณจะตองสงให
Excel เลกเปดคาเตอน ซงหากมการสรางสตรผดพลาดเผลอไปสรางสตร Circular
Reference ขนโดยไมเจตนา กยอมไมมการเตอนใหทราบ
2. เมอสรางสตรคานวณแบบ Circular Reference แลวกดป ม Cancel เพอปดคาเตอนบน
หนาจอตามรปขางตนแลว จะพบคาวา Circular References: ตอดวยตาแหนงเซลลแสดง
ขนตรงขอบดานลางซายของจอ พรอมทงในพนทตารางกจะมเสนลกศรสนาเงนชตาแหนง
เซลลททาใหเกดการอางองแบบวงกลม ซงหากตองการให Excel แสดงชอตาแหนงเซลลท
เกยวของกบการอางองแบบวงกลมดวย ใหสง Formulas > Error Checking >
Circular References แลวจะพบตาแหนงเซลลทเกยวของปรากฏตอทายคาสงน
3. เมอตองการให Excel ยอมรบการคานวณแบบ Circular Reference ใหสง File > Options
> Formulas > กาชอง Enable iterative calculation (Excel 2003 สง Tools > Options
74
Copyright of www.ExcelExpertTraining.com
> Calculation > กาชอง Iteration)
4. ชอง Maximum Iterations และชอง Maximum Change นนไมจาเปนตองเขาไปแกไข
ตวเลขใดๆ ซง 2 ชองนทาหนาทสงให Excel คานวณสงสดถง 100 ครง หรออาจไมถง 100
ครงกไดโดยใหคานวณจนกวาจะพบวา คาตอบทคานวณไดในแตละรอบใหคาแตกตางกน
นอยกวา .001 กจะหยดคานวณ ซงการคานวณเปนรอบดงกลาวนจะเกดขนทนททมการ
สรางสตรนนเสรจแลวกดป ม Enter รบสตรลงไปหรอเมอมการกดป ม F9
เพอสงให Excel คานวณ
4.1. ใหเพมตวเลขจานวนรอบสงสดในชอง Maximum Iterations เมอ
พบวาทกครงทกดป ม F9 เพอสงคานวณ จะไดตวเลขคาตอบตางจาก
เดมไปเสมอ ซงหากเพมตวเลขในชองนแลวกดป ม F9 พบวาตวเลขผลจากการคานวณ
ไมเปลยนแปลงตอไปอก ยอมแสดงวาไดคาตอบสดทายแลว
4.2. ใหปรบตวเลขคาความละเอยดในชอง Maximum Change ตอเมอตองการให 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 ขนกได
75
Copyright of www.ExcelExpertTraining.com
จากนนใหทยอยลบสตรในเซลลดงกลาวทงไปทละเซลล จนกวาจะพบวาเมอลบสตรใน
เซลลใดเสรจแลว ทาใหไมเกดคาเตอน Circular ตอไปอก หลงจากนนจงไลสรางสตรใหม
ขนมาแทน ซงหลายๆครงจะพบวาตองไลลบสตรในเซลลทงแลวตองสรางสตรใหมนบรอย
นบพนเซลลทเดยว โดยเฉพาะตารางคานวณทตองคานวณรายการรายวนหรอรายเดอนตอ
กนไปเปนตารางขนาดใหญ ดงนนผใช Excel ทกคนตองรตวทนทเมอตวเองเผลอสรางสตร
ทมตาแหนงอางองแบบวงกลมขนมาเปนครงแรก หากปลอยไวกจะตองเสยแรงเสยเวลาไล
ยอนมาแกไขกนใหมทละเซลล
7. เซลลททาใหเกด Circular น ควรใสสใหตางจากเซลลอน หรอทาเครองหมายพเศษ หรอ
เขยนอธบายกากบไวดวยเพอเตอนผใชงานใหแกไขสตรอยางระมดระวง
8. ควรตงชอแฟมทมสตรทมตาแหนงอางองแบบวงกลมใหมชอทสะดดตา จะไดไมเผลอเปด
แฟมทตองคานวณแบบ Iterations นข นมาใชงานพรอมกบแฟมอน เพราะแฟมอนๆจะรบ
คาสง Iterations นตามไปดวยโดยไมจาเปน
9. หากปดโปรแกรม Excel แลวเปด Excel ขนมาใหม จะพบวา Excel ตดกาชอง Enable
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('*'!
ตาแหนงเซลล) เชน เมอสรางสตร =SUM('*'!A1) ลงไปในชท Sheet1 จะไดสตร
=SUM(Sheet2:Sheet3!A1)
76
Copyright of www.ExcelExpertTraining.com
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 และ
Row 1 เพอชวยปรบตาแหนงตารางในหนากระดาษพมพไดดกวาการกาหนด Margin แต
เพยงอยางเดยว
6. หาม Merge เซลลทเกยวของกบการคานวณ เพราะตาแหนงอางองในสตรทอางถงเซลลท
Merge กนไวนนอาจใหตาแหนงอางองทคลาดเคลอนจากความเปนจรงเมอมการ Copy
สตรทอางองถงตาแหนงเซลลท Merge ไปใชทเซลลอน ดงนนหากตองการปรบการแสดง
ขอมลใหเหนวาอยกลางชวงเซลลเชนเดยวกบ Merge แตวาเซลลแตละเซลลยงคงเปน
เซลลของมนเองโดยมไดรวมเปนเซลลเดยวอยาง Merge แตอยางใด ใหเลอกชวงเซลลนน
แลวคลกขวา สง Format Cells > Alignment > Center Across Selection
7. ในกรณทตองการ Cut ตารางจากชทหนงไปยงชทอน
หรอแฟมอน ใหเรมจากเลอกพนทตารางทตองการจะ
Cut ไปทงหมด (โดยตองตรวจสอบวาเปนพนทตาราง
ทงหมดทมสตรทเกยวของกน มฉะนนจะมเซลลสตรบางเซลลทกลายเปนสตร link ขาม
77
Copyright of www.ExcelExpertTraining.com
แฟม) จากนนเมอตองการ Paste สามารถเลอก Paste ทเซลลใดในชทใหมกได โดย Excel
จะปรบตาแหนงอางองตามตาแหนงในชทใหมใหเอง
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. แทนทจะจดเกบแฟมไวในชอเดม ขอใหจดเกบแฟมในชออนทกครงทมการแกไขใดๆใน
แฟมนน ทงนเพอทาใหมแฟมเกาเกบไวหลายๆรน ดกวาการมแฟมรนเดยวแฟมเดยว ซง
เสยงหากแฟมนนอาจเสยหายจนเปดไมได
78
Copyright of www.ExcelExpertTraining.com
แปนพมพลดทเก ยวของกบตาแหนงอางองและขอบเขตพนทตาราง
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 ซงจะมเครองหมาย { } ปดหวทายสตร
79
Copyright of www.ExcelExpertTraining.com
หลกการแยกตวแปร
1. ตวแปร คอ คาทมนษยสามารถกาหนดใหมคาเปลยนแปลงตางไปจากเดม ตวแปรอาจ
เปนไดทงคาทเปนตวเลข ตวอกษร หรอแมแตสตร
2. เซลลรบตวแปรอาจใชเซลลเดยวหรอหลายเซลล ขนกบประเภทของตวแปรนนๆวามการ
เปลยนแปลงไปตามระยะเวลาหรอเงอนไขอนใดหรอไม ถาเปนคาคงทซ งใชคาเดยวไป
ตลอด กสามารถใชเซลลรบคาเพยงคาเดยวเซลลเดยวในแฟมหนง แตถาเปนคาทม
ความผนผวนเปลยนแปลงไปตามระยะเวลากจาเปนตองใชหลายเซลล เชน ตวแปร
ประเภทราคาสนคา ควรกาหนดใหแตละชวงเวลามราคาสนคาแตกตางกนไปเพอใหเกด
ความยดหยนในการคานวณ กจาเปนตองใชหลายเซลลเพอรบตวแปรประเภทราคา
สนคาทมยอดตางกนไปในแตละชวงเวลา
3. ควรคดเผอไวตงแตตนเสมอวา คาคงททกคาเปนตวแปรทคาอาจเปลยนแปลง เพราะ
คาคงทใดๆทคดวาคงทในวนน อาจเปนไปไดวาไมใชคาทจะคงทไปตลอด ดงนนหาก
ไมมนใจวาจะคงทไปตลอดหรอไม ควรออกแบบตารางตงแตแรกเผอไวใหสามารถ
เปลยนแปลงตวแปรตามระยะเวลาไดดวย เชน อตราภาษธรกจเฉพาะ ซงอาจถก
ปรบเปลยนใหตางไปจากเดมในอนาคต
4. ลกเลนทางธรกจเปนตวแปรไดเหมอนกน อยาคดวาวธดาเนนการทางธรกจตองเปนแบบ
ปจจบนไปตลอด คณตองเผอเซลลรบตวแปรทอาจเกดขนหรอไมเกดขนไวกอนตงแต
แรก ดกวาทจะยอนกลบไปแกไขตารางแทรกตวแปรเพมในภายหลง ขอใหออกแบบ
โครงสรางตารางเผอไวกอนดกวาขาด
5. ในกรณทตวแปรมเงอนไขซบซอน ควรแยกตวแปรประเภทนนไปเกบเปนตารางเฉพาะ
หรอเปนชทเฉพาะหรอแมแตเปนแฟมเฉพาะสาหรบตวแปรนนๆ โดยใหออกแบบตาราง
ตามแบบโครงสรางฐานขอมลทดดวย
6. ควรใสสสรรคใหเหนเซลลรบตวแปรแยกชดเจนแตกตางจากเซลลสตรคานวณและ
กาหนดให Excel เปดรบคาใหมได โดยคลกขวาลงไปในเซลลตวแปรนน สง Format
Cells > Protection แลวตดกาชอง Locked ทงไป จากนนสง Review > Protect
Sheet (Excel 2003 สง Tools > Protection > Protect Sheet) แลวจะพบวาเมอกด
ป ม Tab จะยายตาแหนงเซลลไปตามเซลลทเปนตวแปรใหเอง
80
Copyright of www.ExcelExpertTraining.com
วธใช 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)
3. คลกในชอง Set cell: แลวใหคลกตอไปทเซลล D2 โดยเซลลนตองเปนเซลลสตร
คานวณ สวนชอง To value: ใหพมพเลข 77.77 ลงไป แลวใหคลกในชอง By
changing cell: แลวคลกตอไปทเซลล B2 โดยเซลล B2 นตองเปนเซลลรบตวแปรท
กาลงตองการหา ถอเปนตวเลขคาตอบใหมทตองการ
81
Copyright of www.ExcelExpertTraining.com
4. กดป ม OK จะพบวา Excel เปลยนตวเลข 2 ในเซลล B2 เปนตวเลข 25.92333 ซงทา
ใหเกดผลลพธทเซลล C2 เปนเลข 77.77 ตามตองการ แลวใหกดป ม OK เพอยอมรบ
คาตอบท Goal Seek หาให
5. หากตองการหาตวเลขคาตอบทตางจากเดม ตองสง Data > What-If Analysis > Goal
Seek ซาเองใหม
คราวนมาลองใช Goal Seek กบปญหาทยากขน โดยใหหาวาตวเลขคาโฆษณาในเซลล G18
ตองเปนเทาใด จงจะคดเปน 15% ของกาไรขนตน
จากภาพตารางขางบนน เซลล G16 และเซลล H17 เปนเซลลรบตวแปร ซงมคาเปนตวเลข
ยอดขาย 1,000 บาทและตวเลขเปอรเซนตตนทนขายเทากบ 20% ตามลาดบ สวนเซลลสตร
คานวณมในเซลล G17 มสตร =H17*G16 เพอหายอดตนทนขายเทากบ 200 บาท (คดเปน
20% ของยอดขาย) สวนเซลล G19 เปนเซลลสตรคานวณหากาไรขนตนมสตร =G16-G17-
G18 มาจากยอดขายหกตนทนขายและหกคาโฆษณา เซลลทเวนวางไวคอเซลล G18 ใหใชหา
คาโฆษณา ซงตอนเรมตนนเวนวางไว จงทาใหเซลล H18 ซงมสตรคานวณหาสดสวนรอยละ
ของคาโฆษณาตอกาไรขนตน =G18/G19 ซงขณะนคนคาเทากบ 0
ตวอยางนไมสามารถใชวธคดงายๆวา ในเมอตองการคาโฆษณาเปน 15% ของกาไรขนตน กให
สรางสตร =.15*G19 ลงในในเซลล G18 กสนเรอง เพราะหากสรางสตร =.15*G19 ลงไปใน
เซลล G18 จะพบวาเกดการอางองแบบวงกลม (ตองหนไปใชการคานวณแบบ Iteration เขามา
ชวย ซงเปนอกวธหนงในการแกปญหาน) เพราะหากคาโฆษณาเพม จะทาใหกาไรลด แลวพอ
82
Copyright of www.ExcelExpertTraining.com
กาไรลด ยอมสงผลใหคาโฆษณาลดตาม พอคาโฆษณาลดลง กาไรกตองเพม กลายเปนการ
คานวณแบบวงกลมทไมสามารถหาคาตอบสดทายไดโดยวธธรรมดาทวไป
คณสามารถแกปญหานโดยใช Goal Seek โดยเรมตนจากสง สง Data > What-If Analysis >
Goal Seek
1. คลกในชอง Set cell: แลวใหคลกตอไปทเซลล H18 โดยเซลลนเปนเซลลสตร
คานวณหาวาคาโฆษณาเปนรอยละเทาใดของกาไรขนตน =G18/G19
2. ชอง To value: ใหพมพเลข .15 ซงเปนตวเลขคาตอบทตองการ
3. คลกในชอง By changing cell: แลวคลกตอไปทเซลล G18 เพอใหหาตวเลขคา
โฆษณา
4. กดป ม OK > OK จะไดตวเลขคาตอบคาโฆษณาเทากบ 104.50377964375 ท Goal
Seek คดให
Goal Seek เปนเครองมอพสดารทเหมาะในการวางแผนงบประมาณ ชวยตงราคาขายสนคาเพอ
ทาใหไดกาไรตามตองการ หรอชวยในการคานวณยอนกลบในงานทคนเราคดเองไมไหวได
83
Copyright of www.ExcelExpertTraining.com
อยางไมนาเชอ ซงในงานวางแผนตดสนใจนน แทบเปนไปไมไดเลยทเราจะมความเชอมน
100% ตอคาตอบทมอยเสมอไป ดงนนแทนทจะเสยงกบการใชตวเลขเพยงตวเดยว ขอแนะนา
ใหใช Goal Seek คดยอนหาชวงคาทเปนไปไดวาอยในชวงตวเลขระหวางคาใด เพอทาให
สามารถวางแผนไดอยางยดหยนมากขน เชน เดมเคยถามวา ตวเลขคาโฆษณาในเซลล G18
ตองเปนเทาใด จงจะคดเปน 15% ของกาไรขนตน กใหใช Goal Seek คนหาคาตอบทยดหยน
กวาเดมวา ตวเลขคาโฆษณาในเซลล G18 ตองเปนคาระหวางเลขใด จงจะคดเปน 15% -
20% ของกาไรขนตน
ขอจากดของ Goal Seek และวธแกไข
ขอจากดทสาคญของ Goal Seek เกดจากทกครงทตองการคดยอนครงใหม คณตองเปนผสงให
Goal Seek ทางานซาดวยตนเอง และ Goal Seek จะยอมใหเปลยนแปลงตวเลขตวแปรไดเพยง
เซลลเดยว นอกจากนสวนทไมยดหยนทสดกคอ คณตองกรอกตวเลขทตองการลงไปในชอง
To value เองเสมอ โดยไมสามารถ link คาตวเลขเปาหมายทตองการจากเซลลเขาไปใชใน
Goal Seek จงเปนเครองมอทไมเหมาะสาหรบผทไมเคยใช Goal Seek มากอน
เราสามารถแกไขจดออนของ Goal Seek ใหสามารถรบคาจากเซลลไดโดยตรง และหาทาง
ปรบปรงให Goal Seek ทางานหาคาตอบใหเองทนทอยางอตโนมต โดยเรมจากใช Macro
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
84
Copyright of www.ExcelExpertTraining.com
โดยกาหนดใหตงชอ 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
85
Copyright of www.ExcelExpertTraining.com
วธใช 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 สวน ตามรป
86
Copyright of www.ExcelExpertTraining.com
Data Table แบบ 1 ตวแปร
จากตวอยางการหาคาโฆษณา หากกาหนดใหคาโฆษณาเปนตวเลขในชวง 100 ถง 400 บาท
ใหหาวาจะสงผลตอกาไรขนตนอยางไร
ทางออกในการแกปญหาน หากคณไมรจก Data Table มากอน กคงตองสรางตารางคานวณซา
กนหลายๆตารางเพอทดลองใสตวเลขคาโฆษณาลงไปเพอหาผลลพธทตองการ
แทนทจะเสยแรงเสยเวลาสรางตารางคานวณซา ใหออกแบบโครงสรางตาราง Data Table
ขนมากอน โดยในปญหานสงเกตวาตองการเปลยนคาโฆษณาเพยงคาเดยว ดงนนจงเขาขาย
Data Table แบบ 1 ตวแปร ซงมโครงสรางแยกแยะออกไปอก 2 แบบยอยตามแตวาคณ
ตองการดตวแปรตามแนวใด ไดแก
• Data Table แบบวางตวแปรไวในหวตารางดานขางตามแนวตง สวนหวตารางดานบน
เปนสตรคาตอบท link มา และเมอสง Data Table ใหเลอกใชชอง Column Input Cell
• Data Table แบบวางตวแปรไวในหวตารางดานบนตามแนวนอน สวนหวตารางดานขาง
เปนสตรคาตอบท link มา และเมอสง Data Table ใหเลอกใชชอง Row Input Cell
ตวอยางการใช Data Table แบบวางตวแปรไวในหวตารางดานขางตามแนวตง
87
Copyright of www.ExcelExpertTraining.com
1. นาตวเลขคาโฆษณามาพมพลงในเซลล E23:E27 โดยจะกาหนดใหเปนตวเลขใด
กอนหลงกได ไมจาเปนตองเรยงลาดบมากนอย
2. เซลล F22 และ G22 สรางสตร link ผลลพธของสตรคานวณมาจากเซลล G19 และ
H18 ตามลาดบ
3. ใหเลอกพนท E22:G27 แลวสง Data > What-If Analysis > Data Table (Excel
2003 สง Data > Table)
4. คลกลงในชอง Column input cell แลวคลกตอไปทเซลล G18 (เพอกาหนดให 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 ทางานไดไมจากด
88
Copyright of www.ExcelExpertTraining.com
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 ตวแปร
ในตวอยางเดม หากตองการวเคราะหวาถาเราเปลยนแปลงตนทนขายและคาโฆษณาจะมผล
อยางไรบางตอยอดกาไรขนตน
89
Copyright of www.ExcelExpertTraining.com
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)
5. คลกลงไปในชอง Row Input Cell แลวคลกตอไปยงเซลล G17 ซงเปนเซลลตนทน
ขาย
6. คลกลงไปในชอง Column Input Cell แลวคลกตอไปยงเซลล G18 ซงเปนเซลลคา
โฆษณา แลวกดป ม 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) เพอ
กาหนดใหใชการกดป ม F9 เพอสงให Data Table คานวณเฉพาะเมอตองการเทานน สวน
Goal Seek แมวาจะพบวาใชกบการคานวณแบบ Automatic หรอ Manual กได แตเราควร
ใช Goal Seek รวมกบการคานวณแบบ Automatic ไวกอน เพอชวยทาใหมนใจวาเซลล
สตรทเกยวของถกคานวณตามกนไปครบทงหมดดวย
4. เนองจากเราเปนผกาหนดคาตวแปรใหใชกบ Data Table ดงนน Excel จะถกสงใหคานวณ
ตามคาตวแปรเหลานนจนครบทกตว สวน Goal Seek จะคานวณยอนกลบใหเองแตอาจได
คาตอบเฉพาะในชวงคาท Excel คนหาใหเทานน
5. หาก Data Table ไมสามารถหาคาตอบทตองการ กสามารถใช Goal Seek ทางานตอบน
ตาราง Data Table โดยใหใช Goal Seek คดยอนหาคาตวแปรบนหวตาราง Data Table
จนกวาจะคานวณไดคาตอบมาปรากฏขนในพนทสวนของคาตอบในตาราง Data table
90
Copyright of www.ExcelExpertTraining.com
หลากหลายแนวทางการใชสตร IF
ในบรรดาสตรสาเรจรปของ Excel นน สตรทใชมากทสดและมประโยชนมากทสดรองจากสตร
SUM เหนจะหนไมพนสตร IF ซงแปลวา "ถา" นแหละ โดยเฉพาะคนทมตาแหนงขนชอวาเปน
หวหนา ถาใชสตร IF ไมเปน กไมสมควรเปนหวหนาหรอกนะ เปลยนตาแหนงใหไดชอตรงขาม
กบคาวาหวกบหนา ใหกลายเปนตาแหนงเทาหลงแทนจะเหมาะสมกวา
ถานาเงอนไขขางตนเกยวกบหวหนามาเขยนดวยสตร IF จะไดสตรตามน
=IF ( หวหนาใชสตร IF เปนหรอไม , ถาใชเปน ใหเปนหวหนาตอไป , ถาใชไมเปน ให
เปนเทาหลงแทน )
หรอถาคดเขยนสตร IF ตามหลกกฎแหงกรรมของการทาดตองไดด ทาชวไดชว จะไดสตรตาม
น
=IF ( คณทาดใชไหม , ถาทาด ตองไดด , ถาไมทาด ตองไดรบผลอนๆ )
สงเกตวาในสตร IF ของการตรวจสอบวาทาดหรอไมนน ถาไมไดทาด ไมใชวาจะไดชว เพราะ
เงอนไขทใชเปนเพยงตรวจสอบวาทาดอยางเดยวเทานน คนทไมไดทาด ไมใชวาตองทาชวก
ได อาจอยเฉยๆไมไดทาดไมไดทาชว ดงนนกรณทไมไดทาด จงตองไดรบผลอยางอนซงไมใช
ผลจากการทาด
ถาคณเขาใจวธคดเงอนไขในใจของตวคณเอง กจะพบวาบรษทไมโครซอฟทไดสราง Excel
ขนมาโดยใชสตร IF ทมโครงสรางของสตรตามหลกการเดยวกนกบทคณคดไดนนเอง
โครงสรางสตร IF
=IF(การตรวจสอบเงอนไข, ผลลพธกรณทตรวจสอบเงอนไขวาใช, ผลลพธกรณท
ตรวจสอบเงอนไขวาไมใช)
ในสวนของการตรวจสอบเงอนไข ใหใสสมการทตองการลงไป โดยใชเครองหมาย =, >, <,
>=, <=, หรอไมเทากบ <> หรอในสวนของการตรวจสอบเงอนไขน อาจใชสตรอนซงคนคา
91
Copyright of www.ExcelExpertTraining.com
เปน TRUE หรอ FALSE อยางใดอยางหนง เชน AND, OR, TRUE, FALSE, ISNUMBER เปน
ตน
ตวอยางการใช IF แบบงายๆ
=IF(SaleChoice="n", 1000, 2000)
สตรนจะคนคาเปนตวเลข 1000 ตอเมอเซลลทตงชอวา SaleChoice มคาเปนตวอกษร n
เทานน แตถา SaleChoice มคาอน จะคนคาเปนตวเลข 2000 แทน
เนองจากตวอกษร n เปนตวอกษรท Excel ไมรจก จงจาเปนตองใส "n" ไวระหวางเครองหมาย
คาพด สวนคาวา IF และ SaleChoice นนแมวาเปนตวอกษรแตไมตองใสระหวางเครองหมาย
คาพดเพราะเปนตวอกษรท Excel รจกแลววาคาวา IF คอสตรชอ IF และคาวา SaleChoice เปน
Range Name ทตงชอไว สวนตวเลข 1000 และ 2000 เปนตวเลขท Excel รบทราบอยแลววา
เปนตวเลขจงไมตองใสระหวางเครองหมายคาพดแตอยางใด
=IF(MyMargin>0, MyMargin*0.3, 0)
สตรนใชกบการคานวณหายอดภาษ ถา MyMargin หรอเซลลกาไรขนตนมคามากกวา 0 ยอม
แสดงวามกาไรเกดขน จงนายอดกาไรขนตนไปคณดวยอตราภาษ 30% แตถาไมมกาไรกไม
ตองจายภาษ
แนวทางการใชสตร IF
1.ใชเปลยนเสนทางการรบคา
2.ใชในการตดสนใจ
3.ใชในการเปลยนคาหรอแสดงคา
4.ใชเปลยนเสนทางการสงคา
92
Copyright of www.ExcelExpertTraining.com
การใชสตร IF ในการเปลยนเสนทางการรบคา
การสรางสตรลงคเพอเชอมโยงคาโดยทวไปเปนการเชอมโยงกนแบบ 1 ตอ 1 เชน เมอตองการ
ทาใหเซลล A2 มคาเทากบเซลล A1 กจะสรางสตร =A1 ลงไปในเซลล A2 ทาใหเซลล A2
แสดงคาเปลยนแปลงตามคาในเซลล A1 ซงการลงคแบบนเซลล A1 เรยกวาเปนเซลลตนทาง
และเซลล A2 เรยกวาเปนเซลลปลายทาง
แตถาเซลลตนทางมมากกวา 1 เซลล เชนกาหนดใหเซลล C2 และ C3 สามารถเปนเซลลตน
ทางไดทงค โดยกาหนดใหเซลล E3 เปนเซลลปลายทางเพยงเซลลเดยว โดยเลอกทจะรบคา
จากเซลล C2 หรอ C3 กไดแลวแตเงอนไขทเรากาหนดวาจะใหเลอกรบคามาจากเซลลใด
จากภาพกาหนดใหเซลล E2 เปนเซลลสาหรบใสคาเงอนไขลงไปวาจะเปนตวอกษร A หรอ B
(หรอคาอนใดกได) สวนเซลล E3 ซงเปนเซลลปลายทาง ใหสรางสตรตอไปน
=IF( E2="A", C2, C3)
ดงนนเมอเซลล E2 มคาเปน A จงทาใหเซลล E3 รบคา 100 มาจากเซลล C2 แตถาเซลล E2
ไมไดมคาเปน A กจะทาใหเซลล E3 เปลยนเสนทางการรบคา 200 มาจากเซลล C3 แทน
แตถากาหนดใหมจานวนเซลลตนทางมากมายหลายเซลล เชน ตามรปตอไปนใชเซลลตนทาง
ถง 14 เซลล
93
Copyright of www.ExcelExpertTraining.com
สตรลงคเพอเลอกรบคาในเซลล 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
94
Copyright of www.ExcelExpertTraining.com
=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 จะ
เหมาะสมกวา
95
Copyright of www.ExcelExpertTraining.com
การใชสตร 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) )
96
Copyright of www.ExcelExpertTraining.com
ตวอยางการใช IF แบบกาหนดเงอนไขแตกตอกรณทไมใชในการตดเกรด
กาหนดใหเซลล B3:C5 เปนตารางคะแนน-เกรด
• ถาสอบไดตงแต 90 คะแนนขนไปใหไดเกรด A
• ถาสอบไดตงแต 70 คะแนนขนไปใหไดเกรด B
• ถาสอบไดตงแต 0 คะแนนขนไปใหไดเกรด C
สมมตวาเซลล E3 มคาเปน 75 เปนคะแนนทสอบได เซลล F3 หาคาตอบเปนเกรด B โดยใช
สตร IF ซอนกนดงน
=IF( E3>=B3, C3, IF(E3>=B4,C4,C5) )
ซงแปลสตรออกมาตามเงอนไขทกาหนดไดเปน
=IF( คะแนนทสอบได >=90, "A", IF(คะแนนทสอบได >=70,"B","C") )
ขอสงเกต
1. การเขยนสตร IF ซอน IF มหลกการสาคญ คอ ตองจดลาดบของเงอนไขทเปด
โอกาสให IF ทกตวในสตรมโอกาสไดทางาน ดงนนจงตองใชเงอนไข คะแนนท
สอบได >=90 ขนกอนเปนเงอนไขแรก หากเงอนไขนไมผานจงปลอยใหเงอนไขถดไป
ทางาน (แตถาสรางผดโดยใชเงอนไข >=70 ขนกอน จะปดโอกาสของเงอนไขเกรด A
เพราะ >=70 ยอมหมายถง >=90 อยแลว)
2. แมตองการเกรด A, B, C แตเราใช IF ซอนกนเพยง 2 IF เทานน เพราะถาไมใชทงสอง
เงอนไข กตองเปนเกรด C นนเอง
97
Copyright of www.ExcelExpertTraining.com
การใช IF แบบกาหนดเงอนไขแตกตอกรณทใช
เปนเงอนไขทกาหนดซอนเขาไปเพอตดสนใจในทกเงอนไขพรอมกนไป เกดเปนโครงสรางสตร
ตามน
=IF(เงอนไขท 1, IF(เงอนไขท 2, ผลกรณใชของเงอนไขท 1 และ 2, ผลกรณไมใช
ของเงอนไขท 2), ผลกรณไมใชของเงอนไขท 1)
หากผลกรณทใชของทกเงอนไขเปนคาเดยวกน สวนผลกรณทไมใชของเงอนไขท 1 และผล
กรณทไมใชของเงอนไขท 2 เปนคาเดยวกน แทนทจะใชสตร IF ซอนกนหลายสตร ใหใชสตร
And หรอ Or มาชวยในสตร IF เพยงสตรเดยวไดดงน
=IF( And( เง อนไขท 1,เง อนไขท 2), ผลกรณใช, ผลกรณไมใช)
=IF( OR( เง อนไขท 1,เง อนไขท 2), ผลกรณใช, ผลกรณไมใช)
หมายเหต
1. สตร And จะคนคาเปนจรงตอเมอทกเงอนไขเปนจรงพรอมกน หากเงอนไขใดเงอนไข
หนงเปนเทจ จะคนคาเปนเทจ (จาวา False เปนลกษณะเดน)
2. สตร OR จะคนคาเปนเทจตอเมอทกเงอนไขเปนเทจพรอมกน หากเงอนไขใดเงอนไข
หนงเปนจรง จะคนคาเปนจรง (จาวา True เปนลกษณะเดน)
98
Copyright of www.ExcelExpertTraining.com
ตวอยางการใช IF แบบกาหนดเงอนไขแตกตอกรณทใชในการปองกน
สตรลบ
สมมตวาเราตองการบวกเลข 1 กบเลข 2 ในเซลล B2 และ C2 เขาดวยกน แตกอนจะยอมให
สตร B2+C2 ทางานไดตามปกต ตองผานการกรอกรหสลงไปในเซลล B4 และ B5 เปนเลข
123 และ 999 ตามลาดบใหถกตองเรยบรอยกอน
ถาสรางสตร IF ซอน IF จะไดสตรตามเซลล D2
=IF( B4=123, IF(B5=999, B2+C2, 0), 0)
หรอใชสตร And มาใชงานรวมดวย กลายเปนสตร IF เพยงสตรเดยวดงน
=IF( AND(B4=123,B5=999), B2+C2, 0)
99
Copyright of www.ExcelExpertTraining.com
ตวอยางการใช IF แบบกาหนดเงอนไขแตกตอกรณทใชในการรบเงน
ในชวงวนทกาหนด
หากตองการรบเงน 100 บาท ระหวางวนท 2-5 กาหนดใหใช Range Name ในตารางตอไปน
• B3:B8 ชอ From
• C3:C8 ชอ To
• D3:D8 ชอ Amount
• E2:K2 ชอ Date
เซลล E3 เปนสตรรบเงนในชวงวนทตองการตามน
=IF( Date>=From, IF(Date<=To,Amount,0), 0)
หรอ
=IF( AND(Date>=From,Date<=To), Amount, 0)
ขอสงเกต
ตวอยางนใชสตร And มาชวยเพราะตองการใหคนคาเปน True เฉพาะในชวงวนท 2-5 เทานน
(ดเซลล E8:K8)
100
Copyright of www.ExcelExpertTraining.com
การใชสตร 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 หรอไม
101
Copyright of www.ExcelExpertTraining.com
=IF( ISERROR(B11/C11), 0, B11/C11)
หรอตงแต Excel 2007 เปนตนมาม IfError เปนสตรใหมทสนลง
=IFERROR(B11/C11,0)
หมายเหต
1. กอนทจะใชสตร IsError ควรหาทางตรวจสอบสตรคานวณทสรางกอนวาสามารถ
คานวณไดคาตอบทตองการหรอไม เพราะหากใชสตร IsError เขามาชวยรวมกบสตร IF
แลว เราจะไมเหน Error เกดขนอกเลย
2. ควรเลอกนาเฉพาะบางสวนของการคานวณจากสตรทจะนามาตรวจสอบดวยสตร
IsError โดยไมจาเปนตองนาสตรยาวๆทงหมดมาใสลงไปในวงเลบของสตร IsError
3. ในกรณทเกด Error ขน ในกรณทผลลพธเดมเปน Text ควรเปลยน Error เปนคาเตอน
หรอกรณผลลพธเดมเปนเลข ควรเปลยน Error เปนเลข 0 แทน จากนนใหใช Format
0;-0; ซอนเลข 0 ใหดเหมอนเปนชองวาง
4. ในการเปลยนการแสดง Error ใหแสดงเปนชองวาง พยายามหลกเลยงการใช Null Text
หรอ "" (แทนการใชเลข 0) เพราะ "" มสภาพเปน Text ซงหากนาคานไปบวกลบคณ
หารตอจะเกด Error ตอไปอก กลายเปนภาระใหเราตองสรางสตร =IF(Cell="", "",
Cell) ตอไปอก ซงทาใหแฟมคานวณชาลงและมขนาดใหญขนโดยไมจาเปน
5. ในกรณทตองการแสดง #N/A ใหใชสตร NA()
6. นอกเหนอจากการใชสตร IF ชวยในการเปลยน Error ใหเปนคาอนแลว ในหนากระดาษ
ทถกพมพ สามารถใชคาสง Page Setup > Sheet > Print > Cells error as เพอ
เปลยนเซลลทมคาเปน Error ใหแสดงเปนชองวาง, --, #N/A แทนไดอกดวย
สตรกลม Is ทใชชวยในการตรวจสอบ
• IsNA ตรวจสอบ Error #N/A "Not Available" ซงเกดจากสตรกลม Lookup ในกรณท
หาคาทตองการไมพบ
• IsError ตรวจสอบ Error ทกประเภท
• IsErr ตรวจสอบ Error เกอบทกประเภท เวน NA
• IsBlank ตรวจสอบเซลลวาง
102
Copyright of www.ExcelExpertTraining.com
• IsText ตรวจสอบเซลลมคาเปน Text หรอคาทจะชดซายใหเองเมอพมพลงไป เชน
'123 ถอวาเปน Text
• IsNumber ตรวจสอบเซลลมคาเปน Number หรอคาทจะชดขวาใหเองเมอพมพลงไป
เชน 10/4/2010 จะชดขวาเพราะถอวาเปน Number
การใชสตร IF ในการเปลยนเสนทางการสงคา
ตามปกตสตรทสรางลงไปในเซลลจะทาหนาทคานวณหรอรบคาทลงคมาจากเซลลตนทาง สวน
การสงคาจากเซลลตนทางไปยงเซลลปลายทางโดยไมตองสรางสตรลงไปในเซลลนนไม
สามารถทาไดโดยวธปกตทวไป แตตองเขยนรหส VBA เขามาชวย
ตวอยาง กาหนดใหสงคาจากเซลล Source ไปยงเซลล Target1 หรอ Target2 ตามเงอนไข
ตอไปน
• หาก Source มคานอยกวา 0 เชนมคาเปนเลข -111 ใหสงคา -111 ไปยงเซลล
Target1
• หาก Source มคามากกวาหรอเทากบ 0 เชนมคาเปนเลข 222 ใหสงคา 222 ไปยง
เซลล Target2
เรมตนจากใหตงชอ Source, Target1, Target2 ใหกบเซลล C2, C5 ,C6 ตามลาดบและตงชอ
Target เปน Formula Name มคาเปนสตร
=IF( Source<0, Target1, Target2)
จากนนใหสรางชดคาสงนลงไปใน Visual Basic Editor
Sub SendData()
103
Copyright of www.ExcelExpertTraining.com
MyVar = [Source]
[Target] = MyVar
End Sub
1. ชดคาสงนจะรบคาทเกบไวในเซลลทตงชอไววา Source ไปเกบไวทตวแปรทมช อวา
MyVar
2. จากนนคาทเกบไวใน MyVar จะถกสงตอไปยง Formula Name ทตงชอไววา Target
3. เนองจาก Target เปนสตร =IF( Source<0, Target1, Target2) จงทาหนาท
ตรวจสอบคาทรบมาจาก Source กอนแลวจงเลอกสงคาไปยงเซลลทตงชอวา Target1
หรอ Target2 ตามเงอนไขทกาหนดไวขางตนตอไป
104
Copyright of www.ExcelExpertTraining.com
หลบรอนหนสตร 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)
))))))
105
Copyright of www.ExcelExpertTraining.com
+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:G9 หรอยอดเบกสะสม 3 วนจากเซลล F9:H9 เรอยไปจนถง F9:AJ9 ซงเปนยอดเบก
ใชสะสมถง 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(
106
Copyright of www.ExcelExpertTraining.com
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 เปนตน
107
Copyright of www.ExcelExpertTraining.com
เนองจากเงอนไขทใชในสตร IF ใชเทยบกบตวอกษร จงไมมทางทจะนาสตร Choose มาใช
แทน แตหากเราสามารถเปลยนเงอนไขจากตวอกษรทใชเดม หนมาใชเปรยบเทยบกบตวเลข
แทน กลายเปนสตรตามน
=IF(E9=1,C2,IF(E9=2,C5,IF(E9=3,C8,IF(E9=4,C11,IF(E9=5,C14,IF(E9=6,C1
7,IF(E9=7,F2,IF(E9=8,F17,IF(E9=9,I2,IF(E9=10,I5,IF(E9=11,I8,IF(E9=12,I
11,IF(E9=13,I14,I17)))))))))))))
สตร IF ทแกไขใหมน ใชคาในเซลล E9 เปนเงอนไขในการเปรยบเทยบกบตวเลข 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 คนคาคาตอบผดพลาดทนท
108
Copyright of www.ExcelExpertTraining.com
ถาคาทตองการเลอกนนถกนามาจดลาดบใหมไวในตารางใหเปนพนทซ งตอเนองกนไป เรา
สามารถนาสตร 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 กตองคดพจารณาใหเหมาะสมดวยวาโครงสรางตารางและคาทใชเปน
เงอนไขนนเปนอยางไร
แทนทจะปลอยใหบนทกคาอยางตามใจหรอไมไดใสใจวาจะใชตาแหนงเซลลทใดในการบนทก
คา หากรจกออกแบบตารางใหเหมาะสมจะชวยใหเราสามารถเลอกใชสตรไดยดหยนมากขน
109
Copyright of www.ExcelExpertTraining.com
หนสตร 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 ตองเรยงคะแนนในตารางจากนอยไปมาก ตามรป
ตอไปนแทน
110
Copyright of www.ExcelExpertTraining.com
เซลล F3 สรางสตร =VLOOKUP(E3,B3:C5,2) ซงเปนสตร VLookup แบบ Approaching
Match เนองจากคาทใชหาเปนตวเลข และตวเลขนสามารถเปนตวเลขทตอเนองกนไป และคน
คาไดคาตอบเปนเกรด B โดยมลาดบการทางานของสตร ดงน
1. VLookup นาคะแนนทสอบได 75 คะแนน ไปตรวจสอบกบตารางขอมล B3:C5
2. ใน Column ซายสดทเรยงเลขจากนอยไปมากนน พบวาเลขคะแนน 70 เปนเลขทมาก
ทสดทยงนอยกวาหรอเทากบเลข 75 ซงเปนคะแนนทสอบได แสดงวาคาตอบทตองการ
อยในแนวเดยวกบเลขคะแนน 70 แนนอน
3. เลข 2 ทใสลงไปในวงเลบของสตร VLookup เปนตวเลขแทน Column ทสองในพนท
ตาราง B3:C5 ซงเปน Column เรองเกรดทเปนคาตอบ จงคนคาออกมาเปนเกรด B
หากเลอกใชสตรแบบ Exact Match =VLOOKUP(E3,B3:C5,2,0) ซงเพมเลข 0 ตอทายลงไป
ในวงเลบ จะไดคาตอบเปน #N/A เนองจาก Column ซายสดทเปนตวเลขคะแนน ไมมเลข 75
แสดงไว จงคนคาคาตอบออกมาวา Not Available แสดงวาหาคาทตองการไมพบ
แมการใชสตร VLookup จะชวยใหไดสตรทสนลงกตาม แตจะทาให Excel คานวณชากวาใน
กรณทใชสตร IF หากตารางทใชเกบขอมลมขนาดใหญขน กจะสงผลใหสตร VLookup คานวณ
ชาลง เราจงตองพงระวงไวเสมอวาทกอยางมทงขอดขอเสย ไดอยางกจาเปนตองเสยอยาง
เชนกน
111
Copyright of www.ExcelExpertTraining.com
หนสตร 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
ไดตามน
112
Copyright of www.ExcelExpertTraining.com
=IF(เซลลตวเลข>100, 100, เซลลตวเลข)
หรอ
=IF(เซลลตวเลข<=100, เซลลตวเลข, 100)
หรอ
=MIN(100, เซลลตวเลข)
นอกจากนเรายงสามารถใชวงเลบชวยในการตดสนใจโดยไมจาเปนตองพงพาสตรใดๆ เชน
กรณทตองการเปลยนตวเลขใหไมตากวา 0 ตามตวอยางขางตน ใหใชสตรทใชวงเลบชวย
ตอไปนไดเลย
=(เซลลตวเลข<=0)*0 + (เซลลตวเลข>0)*เซลลตวเลข
การใชวงเลบชวยในการตดสนใจ มหลกการดงน
1. สามารถใชไดเฉพาะเมอผลลพธทตองการเปนตวเลขเทานน เนองจากตองนาตวเลขมา
คานวณตอกนไปเรอยๆ
2. หากมหลายวงเลบ ตองมเงอนไขเดยวในวงเลบหนงเทานนทเปนจรง และเงอนไขใน
วงเลบอนตองเปนเทจทงหมด
3. เงอนไขทใชตรวจสอบนน ถาคนคาเปนเทจ ถอวามคาเทากบเลข 0 แตถาคนคาเปนจรง
ถอวามคาเทากบเลข 1
4. ใหนาเงอนไขมาบวกกนในกรณทกาหนดใหเงอนไขเดยวเทานนเปนจรง หรอนาเงอนไข
มาคณกนในกรณทตองการตรวจสอบวาทกเงอนไขเปนจรงพรอมกน
จากตวอยางขางตนในกรณทหามตากวา 0 เชน เซลลตวเลขมคาเทากบ -5 เมอนามาแทนคาลง
ไปในสตร =(เซลลตวเลข<=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
113
Copyright of www.ExcelExpertTraining.com
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 อกดวย
114
Copyright of www.ExcelExpertTraining.com
หนสตร 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 ใหเลอกใช ซงสามารถแสดงคาเตอนหรอเปลยนสใหเหนชดในเซลล
นนๆเลย
115
Copyright of www.ExcelExpertTraining.com
วธใช Data Validation
สมมตวาตองการพมพชอเดอนลงไปในเซลล ซงทผานมาเคยพมพผดซาแลวซาอก จงตองการ
สงให Excel แสดงคาเตอนขนมาเมอพมพชอเดอนผด
1. ตงชอ Range Name ใหกบเซลลทเกบชอเดอนในเซลล B2:B7 ใหมชอวา Choice
2. เลอกเซลล D2 ทเปนเซลลซงตองการพมพชอเดอนทตองการแลวสง Data > Data
Validation (Excel 2003 สง Data > Validation)
3. ในชอง Allow คลกเลอก List (ในชอง Allow นเองทเราสามารถเลอกประเภทของ
ขอมลทยอมรบไดอกหลายอยางตามแตจะกาหนด หรอเลอก Allow แบบ Custom เพอ
ใชสตรตรวจสอบการบนทกคา)
4. ใหคลกลงไปในชอง Source แลวกดป ม F3 เพอเปดรายชอ Range Name ทมอยข นมา
5. ใหเลอนหาชอ Choice เพอเลอกแลวกดป ม OK 2 ครง
6. จะพบวาเซลล D2 มป มลกศรแสดงขนมาทางขอบดานขวา และเมอคลกป มลกศรนกจะม
รายชอเดอนแสดงใหคลกเลอกกได หรอ
หากทดลองพมพชอเดอนลงไปในเซลล
D2 เอง ถาเราพมพชอเดอนผด พอกด
ป ม Enter เพอรบชอเดอนลงไป จะมคา
เตอนแสดงขนมาใหเหนวา The value you entered is not valid.
116
Copyright of www.ExcelExpertTraining.com
วธใช 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)
3. สรางสตร =B2=$D$2 ลงไปในชอง Edit the Rule Description
4. กดป ม Format แลวกาหนดรปแบบทแตกตางไปจากเดมตามตองการ
5. Data Validation กบ Conditional Formatting ถอเปนเครองมอซงควรนามาใชพรอม
กนเสมอ โดย Validation จะทาหนาทเสมอนยามเฝาประตตรวจสอบแขกทจะยอมให
ผานประตเขามา แตถามแขกเดนผานประตเขามาแลวกตองใช Conditional
Formatting เปลยนสแสดงตวแขกผนนขนมา
117
Copyright of www.ExcelExpertTraining.com
การใช Validation และ Conditional Formatting ควบคมตาแหนงของ
เซลลทจะเปดใหพมพคา
จากรปตอไปน หากตองการควบคมใหเปดบนทกคาไดตามตาแหนงตวชบนหวตารางทเปน Y
และตามตาแหนงขางตารางทเปน B และใหเปลยนสบอกตาแหนงอกดวย จะพบวาเซลล D4
เปลยนสและเปนเซลลเดยวเทานนทจะเปดใหพมพคาใหมลงไปได
1. คลกเลอกพนทเซลล C3:E4 ซงเปนพนทในตาราง
2. จากนนใชคาสง Conditional Formatting ในทานองเดยวกบตวอยางขางตน ตางกน
เพยงใชสตร =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)
118
Copyright of www.ExcelExpertTraining.com
สตร Array
เรองสตร Array เปนเรองทผมเคยเขยนมาแลวหลายครง เคยอธบายมาแลวหลายรอบ ทกครงท
จดอบรมกพดเรองสตร Array อยเสมอ คนทฟงเรองสตร Array แลวเขาใจกจะเขาใจในทนท
แลวกตองมานงเบอนงทนฟงผมอธบายเรองสตร Array นซาแลวซาอก เพราะคนสวนใหญเขา
ฟงกทกทกไมเขาใจเรองสตร Array นสกท ไมใชวาฟงแบบเขาหซายแลวทะลหขวาหรอก แต
แยยงกวานนอก พออธบายเรองสตร Array ทไร ปรากฏวาเสยงพดอธบายของผมมนเดนทางไป
ไมถงหคนฟงเสยดวยซา เพราะคนฟงพอฟงแลวไมรเรองกจะมอาการหนงตาหนกขนเรอยๆแลว
หลบหหลบตาไมไดฟงทกครงไป
"ถาคณใชสตร Array เปน จะแกปญหาอะไรไดบาง" ผมคดวาตองเรมอธบายใหพวกเราเหน
คณประโยชนของสตร Array กนกอน ถาเหนประโยชนของสตร Array วาจะชวยแกปญหาของ
ตวเองไดมากมายขนาดไหน จะไดเกดความอยากใชแลวจะไดมความตงหนาตงตาตงใจมา
เรยนรสตร Array
ประโยชนของสตร Array
สตร Array จะชวยทาใหคณสามารถทาสงทไมนกไมฝนวา Excel จะทาไดมากอน ไดแก
1. ทาใหแฟมมขนาดเลกลง เนองจากแทนทจะตองสรางตารางหลายๆตารางเพอแยก
คานวณทละขน เราสามารถสรางสตร Array ลงไปในเซลลเพยงเซลลเดยวกไดคาตอบ
ทตองการแลว
2. ทาใหเกบขอมลไวในตารางเดยวชทเดยว โดยไมตองแยกตารางฐานขอมลออกเปน
หลายตารางหรอหลายชทเพยงเพอตองการหายอดรวมแยกประเภทตามขอมลทจดแยก
ไว
3. ทาให Excel ทางานแบบคอมพวเตอรไดอยางแทจรง พอกรอกคาลงไปกจะไดคาตอบท
ตองการทนท ไมตองเสยแรงและเสยเวลาคลกเลอกใชคาสงบนเมน เชน ไมตองสง
Sort ตารางกจดเรยงใหเองแลว หรอไมตองสง AutoFilter กสามารถหายอดรวมแยก
ประเภทไดแลว
4. ทาใหสตรสาเรจรปของ Excel มความสามารถเหนอชนขนกวาเดม สามารถใชสตรใน
เซลลเดยวลดหาคาตอบ
119
Copyright of www.ExcelExpertTraining.com
ในการอบรมครงหนงมผเขาอบรมคนหนงมทาทไมสนใจเรยนรสตร 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 เหลานน เพราะเปนสตรทคนอนสรางขน ถาคนทสรางสตร เขาไมไดเขยนอธบาย
แนวคดประกอบสตรไวดวย ยอมทาใหผอ นคดถามในใจวา “เขาสรางสตรยากๆยาวๆแบบนข นมา
ไดอยางไรกน” แลวถาเราไดแตลอกเอาสตรของคนอนมาใช กไดแตใช ไมสามารถดดแปลง
120
Copyright of www.ExcelExpertTraining.com
แกไขสตรทลอกมาเพอปรบใหเขากบเงอนไขในงาน วนหนงเรากจะหนาแตก เมอถกจบไดวา
ไมไดเกงจรง “ออ ลอกสตรเขามานเอง” ดงนนถาจะคดใชสตร Array ตองหาทางสรางสตรเอง
ใหเปน แมสตร Array ทสรางขนเองเปนสตรยาวกวาสตรของคนอนกตาม
สตร Array สตรแรกๆททาใหผมเกดความประทบใจแลวเกดแรงบนดาลใจใหอยากเรยนรเรอง
สตร Array มากขน เปนสตรทใชคานวณหาจานวน Unique Items หรอนบจานวนชอรายการท
ไมซากน
{=SUM(1/CountIF(DataRange,DataRange))}
สมมตวาใน DataRange บนทกชอลกคาไวตามน aa, bb, aa, cc, bb สตรนจะหาคาตอบเปน
เลข 3 ซงหมายถงการนบชอลกคาวามอย 3 คน คอ aa, bb, และ cc แตกวาจะหาทางสรางสตร
ใหทางานไดกตองทราบกอนวาเครองหมายวงเลบปกกา { } ทเหนอยดานหนาสดและดาน
ทายสดของสตรนน ไมใชเครองหมายวงเลบปกกาทพมพเอง แตเกดจากการกดป ม
Ctrl+Shift+Enter พรอมกนและหามมชองวางใน DataRange ดวย
ตอนทผมเหนสตรนกคดไมออกวามนใชหลกการใดในการคานวณ แตพออานคาอธบายทมากบ
สตรจงเขาใจ สตรนเปนการหายอดรวมของคาเฉลยตอตวของแตละรายการใน
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
จวบจนปจจบนนยงตามหาคนทคดสรางสตรยอดเยยมนข นมาเปนครงแรกไมพบวาเปนใคร ยงด
ทมคาอธบายประกอบสตรนไวดวย
121
Copyright of www.ExcelExpertTraining.com
อยากเกงสตร Array ตองสรางไปแกะไป
จากคาอธบายทเขยนไวเกยวกบทไปทมาของสตรคานวณหาจานวน Unique Items วา เปนการ
หายอดรวมของคาเฉลยตอตวของแตละรายการใน DataRange ยอมทาใหคนสวนใหญทเพง
รจกสตร Array เปนครงแรกคงยงไมเขาใจลาดบในการคานวณทใชในสตรนชดเจนนก ถา
อยากจะเขาใจอยางถองแทวาสตร Array ทางานไดอยางไร ตองเรยนรจากการปฏบตเทานน
โดยใชวธทดลองสรางสตรไปแกะไปซงมอย 2 วธ
1. สรางสตร Array ลงไปในเซลลเดยวแลวแกะคาในแตละสวนของสตร โดยการกดป ม F9
เพอดในชอง Formula Bar หรอ
2. สรางสตร Array ลงไปในตารางพรอมกนทเดยวหลายๆเซลลหรอใชตารางแยกคานวณ
ทละขน เพอดผลลพธกระจายออกมาใหเหนในตาราง
โดยทวไปจะใชวธแรกสาหรบแกะสตรทไมซบซอนหรอไมยาวนก พอแกะสตรโดยการกดป ม F9
แลวตองอยาลมกดป ม Esc เพอยอนหลงกลบคนสสภาพเดมกอนแกะ (ถาแกะสตรแลวเผลอกด
Enter ลงไปจะทาลายสตรใหกลายเปนคาคงทแทน)
วธทสอง เหมาะสาหรบคนทเพงเรยนรเรอง Array หรอใชแกะสตรยากๆยาวๆ หรอใชทดลอง
สรางสตร Array ขนใหมตงแตแรก เพราะวธนจะเหนผลลพธแตละขนของการคานวณแสดง
กระจายใหเหนในเซลลแตละเซลลในตาราง จากนนพอซอนสตรตอๆกนไปจนไดคาตอบท
ตองการแลวจงนาสตรแตละขนมาซอนตอกนเปนสตรเดยวเพอนาไปใชงานตอไป
วธแกะสตร Array วธท 1
DataRange คอ ตารางชวง B3:B7
122
Copyright of www.ExcelExpertTraining.com
เซลล 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 เพยงสตรเดยว
123
Copyright of www.ExcelExpertTraining.com
ใหเรมจากแยกสตร =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 เพอสรางสตรนลงไปพรอมกนทเดยว จะพบวาไดคาตอบ
เปนการนบคาซาเชนเดยวกน เนองจากสตร CountIF จะใชแตละคาใน DataRange
ตรวจสอบจานวนการบนทกซาจากพนท DataRange ทงหมดเชนเดยวกบสตรทนบแต
ละตว
• Step2 ใหเลอกเซลล E3:E7 แลวพมพสตร =1/D3:D7 แลวกดป ม Ctrl+Shift+Enter
เพอสรางสตรนลงไปพรอมกนทเดยว จะพบวาไดคาตอบเปนคาเฉลยเชนเดยวกน
124
Copyright of www.ExcelExpertTraining.com
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 จะแสดงคาทม
เครองหมาย comma และ semi-colon ผสมกน เชน 1,2,3;11,22,33 โดย Array จะไล
ลาดบจากแนวนอน 1,2,3 กอนแลวจงใช ; ขนแนวนอนถดไปเปน 11,22,33
การนาคาแบบ Array ไปใชในเซลล ตางจากการใชวธพมพ 1,2,3 ลงไปในเซลลตามปกต โดย
ตองใช Array แบบสตรทมเครองหมายเทากบนาหนาสดเทานน ดงน
1. การใชแบบสตร Array Constant เชน พมพ ={1,2,3} ลงไปในเซลลใดๆ จะพบวา
ในเซลลแสดงคาแรกคอเลข 1 เพยงคาเดยว ซงถาตองการแสดงใหครบทกคา ตอง
เลอกเซลล 3 เซลลตดกนตามแนวนอนแลวพมพ ={1,2,3} แลวกดป ม
Ctrl+Shift+Enter เพอบนทก จะพบวาสตร ={1,2,3} ซงมวงเลบปกกาอยดานหลง
เครองหมายเทากบ จะมวงเลบปกกาเพมดานหนาเครองหมายเทากบอกชนหนงเปน {=
{1,2,3}}
125
Copyright of www.ExcelExpertTraining.com
2. การใชแบบสตร Array ซงรบคามาจากการอางองกบพนทในตาราง เชน รบคา
Array มาจากเซลลตามแนวนอน {=A1:C1} หรอรบคา Array มาจากเซลลตามแนวตง
{=A1:A3} หรอรบคา Array มาจากตารางขนาดความสง 2 row และมความกวาง 3
column {=A1:C2} ทงนโปรดสงเกตวาวธนจะมเครองหมายวงเลบปกกาแสดงไวหนา
เครองหมายเทากบ แสดงวาเปนวงเลบปกกาทเกดจากการกดป ม Ctrl+Shift+Enter
3. การใชแบบสตร Array ซงรบคามาจากสตรทคนคาแบบ 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}
126
Copyright of www.ExcelExpertTraining.com
สงเกตวาเฉพาะพนทตาราง 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} โดยผลลพธนม
เครองหมาย ; คนอย 2 ตว แสดงวาม 3 row เพราะมการขน row ใหม 2 ครง และในชวงทคน
ดวย ; นน มเครองหมาย , คนอยชวงละ 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 แลวกดป ม
F5 > Special > กาชอง Current array
4. บางคนกดป ม Ctrl+Shift+Enter แตไมได
เครองหมายวงเลบปกกา เพราะไมไดกดทงสาม
ป มพรอมกนจรง ถาอยากใหได { } อยางแนนอน
ใหใชมอซายกดป ม Ctrl+Shift แชคางไวกอน จากนนใชมอขวากดป ม Enter ลงไป
127
Copyright of www.ExcelExpertTraining.com
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 จงยงมสตรอกมากทสามารถทางานแบบ Array ได เชน สตร Sum,
Max, Min, And, Or, Index, หรอ Offset เปนตน
128
Copyright of www.ExcelExpertTraining.com
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 เพอเลอกชอทตองการมาใชแทนการคลกเลอกเซลล
129
Copyright of www.ExcelExpertTraining.com
17. ถาอยากจะเกง Excel ใหทดลองสรางสตรกบตารางขนาดเลกใหผานกอน แลวใหลอง
กดป ม Enter ตามธรรมดาบาง หรอกดป ม Ctrl+Shift+Enter บาง เพราะบางครงจะได
คาตอบตางไปจากเดม
18. ไมควรปลอยใหคนทไมรจกวธสรางสตร Array ทสรางขนโดยการกดป ม
Ctrl+Shift+Enter มาแกไขแฟมทมสตร Array เพราะเขาจะกดป ม Enter แทนแลวอาจ
ทาใหไดคาตอบผดเพยนไปหรอไดคาตอบ error ขนมาแทน
130
Copyright of www.ExcelExpertTraining.com
สตร Array IF
เพอใชหายอดรวมแยกประเภท
สตร Array IF เพอใชหายอดรวมแยกประเภท ถอเปนสตรทสาคญเปนอยางยงและเปนสตรทใช
บอยทสดสตรหนงทเดยว จนใน Excel 2007 เปนตนมาบรษทไมโครซอฟทไดเพมสตร
SumIFs, CountIFs, และ AverageIFs เพอตอบสนองตอความตองการของผใช เพราะใน
Excel รนกอนนนมเพยงสตร SumIF และ CountIF ซงไมสามารถรบเงอนไขในการคานวณเกน
กวา 1 เงอนไข
แตถาคณนาแฟมทใชสตร SumIFs, CountIFs, และ AverageIFs ไปเปดดวย Excel 2003
หรอรนเกากวา จะพบวาสตรใหมเหลานไมทางานเพราะ Excel รนทจะใชสตรใหมไดกตองเปน
Excel รนใหมเชนกน
บทความนจะแนะนาแนวทางการสรางสตร Array IF วามทไปทมาอยางไร เพอชวยใหสามารถ
สรางสตรหายอดรวมแยกประเภทไดโดยไมจาเปนตองอาศยสตร SumIFs, CountIFs, และ
AverageIFs แตอยางใด แลวเมอคณทราบหลกการทางานของการใช Array IF หรอ Array
แบบเงอนไข ยงจะชวยใหสามารถนาไปพฒนาสรางสตรหาคาตอบประเภทอนๆไดไมยาก
สตร Array IF คออะไร
สตร Array IF คอ สตร IF ททาหนาทตรวจสอบคาหลายคาวาตรงตามเงอนไขทกาหนดหรอไม
โดยจะไดผลลพธจากการตรวจสอบเปน True หรอ False หลายคาตามลาดบตาแหนงของคาท
ใช ซงตางจากสตร IF ธรรมดาทมการตรวจสอบคาเพยงคาเดยวและเกดผลลพธเปน True หรอ
False อยางใดอยางหนงเพยงคาเดยว
โดยลาพงของสตร Array IF จะไมสามารถหายอดรวมแยกประเภทได แตเมอนาผลลพธ True
หรอ False ทไดนนไปเทยบกบ Array ของตวเลขคาตอบทตองการ จะทาใหเราสามารถเลอก
เกบตวเลขเฉพาะตาแหนงคาทตรงกบตาแหนงของ True แลวจงนาผลทไดไปหายอดรวมกบ
สตรอนๆกจะกลายเปนสตร Array เพอหาคาตามสตรนนๆ เชน เมอนาผลทไดหลงจากการเทยบ
ตาแหนง True/False ไปซอนในสตร Sum กจะกลายเปนสตร Array Sum IF ซงหายอดรวม
131
Copyright of www.ExcelExpertTraining.com
แยกประเภท หรอถาซอนในสตร 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 รายการแรกเพยงรายการเดยว
หากตองการหายอดรวม Amount ของ a001 หรอจะแยกหายอดแตละรายการทซาของ a001
กตองอาศยสตรคานวณแบบ Array มาชวย
ถาไมใชสตร Array IF จะหายอดรวม Amount ของรหส a001 จากการคานวณทละขนได
อยางไร
132
Copyright of www.ExcelExpertTraining.com
1. เพอทาใหตารางแสดงเฉพาะพนทซ งเกยวของกบการคานวณเทานน จงขอลบพนทสวน
ของ Num และ Name ทงไป แลว Insert เพม column C และ E มาใชคานวณทละขน
2. ตงชอ Check ใหกบเซลล C3:C7 แลวสรางสตร =Id=$G$3 จะพบวาไดคาตอบเปน
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 สวน
133
Copyright of www.ExcelExpertTraining.com
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}
3. เมอนา Array {TRUE;FALSE;TRUE;FALSE;FALSE} มาเทยบตาแหนงกบ Array
{10;20;30;40;50} จะได Array ตวเลขเฉพาะตวเลขคาตอบทตองการออกมาเปน
{10;FALSE;30;FALSE;FALSE}
4. จากนนเมอนาผล {10;FALSE;30;FALSE;FALSE} ไปหายอดรวมดวยสตร Sum จงหา
คาตอบเปน 40 ตามตองการ
แมวาสตรทงสแบบนจะหาผลลพธทตองการไดเชนเดยวกนกตาม แตขอใหพจารณาเลอกใชให
เหมาะสมกบงาน กลาวคอ
1. สตร SUMIF ใหใชกบโจทยทงายไปตลอดเพราะสตรนรบเงอนไขไดเพยงเงอนไข
เดยว และสตรนใชเวลาคานวณเรวทสดในบรรดาสสตรทกลาวถงอยน
134
Copyright of www.ExcelExpertTraining.com
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
135
Copyright of www.ExcelExpertTraining.com
จากภาพตวอยางน เซลล 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 จากการบวกหรอคณนแหละทชวยทาใหเราหายอดรวมแยกประเภท
ตอไปได
136
Copyright of www.ExcelExpertTraining.com
การใชสตร 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 ของ
{TRUE;FALSE;TRUE;FALSE;FALSE} ทนามาบวกกบ (Id=H3) ซงเปน Array ของ
{FALSE;TRUE;FALSE;FALSE;TRUE} ทาใหได Array
{1;1;1;0;1}
137
Copyright of www.ExcelExpertTraining.com
และเมอนา {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
138
Copyright of www.ExcelExpertTraining.com
การใชสตร 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 ของรหส
อนทไมเทากบ a001 และชอไมใช c ใหเทากบ 0 แทน
2. ใชสตร { =SUM( (Id=G3)*(Name=H3) *Amount) }
โดยตองกดป ม Ctrl+Shift+Enter เพอสรางเครองหมายวงเลบปกกา { } ปดหวทาย
สตร ถาแกะสตร (Id=G3)*(Name=H3) โดยการคลกลากทบสวนของสตรนแลวกดป ม
F9 จะได Array {0;0;1;0;0} โดยมเลข 1 ตรงกบตาแหนงรายการทตองการ
139
Copyright of www.ExcelExpertTraining.com
ถาแกะทมาของเงอนไข (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 ตามลาดบจากบนมาลาง
• Column ท 3 เปนชอ Name จะพบวามชอ c อย 1 รายการ
• Column ท 4 ตรวจสอบชอ Name c จะพบวามชอ Name c อย 1 รายการ โดยถามอง
ตาแหนงทเปนรหสทตองการเปนเลข 1 และตาแหนงทไมใชเปนเลข 0
จะไดเลข 0, 0, 1, 0, 0 ตามลาดบจากบนมาลาง
140
Copyright of www.ExcelExpertTraining.com
• 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 ในสตร หรอ
2. =SUMPRODUCT(Cost*Quantity) เปนสตรทนาแตละ Range มาคณกนเลย ซง
การสรางแบบคณกนน จะชวยใหเราสามารถคลกลากทบการคานวณในวงเลบแลวกดป ม
F9 เพอเหนผลการคณกนของแตละตาแหนงไดดวย
141
Copyright of www.ExcelExpertTraining.com
จากนน ขอยอนกลบไปเรองโครงสรางภายในสตร 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 แบบนาเงอนไขมาคานวณ(คณหรอบวก)กนเองกอน
เพราะนอกจากจะแกะหาผลจากการคณหรอบวกกนจากสวนของเงอนไขทนามาคานวณกนได
142
Copyright of www.ExcelExpertTraining.com
แลว ยงเปนสตรทสนกวาและมขนตอนการคานวณนอยกวาสตร SumProduct ทใชแบบ
เครองหมาย comma , คนอยภายใน
หมายเหต
โดยทวไปหากเงอนไขทใชในสตร Array IF เปนการตรวจสอบวาเทากนหรอไม โดยใช
เครองหมาย = ในการเปรยบเทยบวาเปน True หรอ False เราสามารถทองจาไวเลยดงน
• ถา Range ทนามาตรวจสอบเงอนไขเปน เร องเดยวกน ใหนาผลลพธจากการ
ตรวจสอบเงอนไขมา บวกกน และมวงเลบเปดดานหนา 3 ตว
• ถาถา Range ทนามาตรวจสอบเงอนไขเปน ตางเรองกน ใหนาผลลพธจากการ
ตรวจสอบเงอนไขมา คณกน และมวงเลบเปดดานหนา 2 ตว
แตถาเปนการตรวจสอบเงอนไขประเภทมากกวาหรอนอยกวาหรอผสมกน แม Range ทนามา
เปนเงอนไขจะเปนเรองเดยวกน กไมจาเปนวาตองนาผลลพธจากการตรวจสอบเงอนไขมาบวก
กนเสมอไป บางกรณอาจใชคณกนกได ทงนข นกบลกษณะการเปรยบเทยบทใชดวย โดยขอให
คดหาวธใดกไดทจะทาใหเกดเลข 1 ชเฉพาะตาแหนงรายการทตองการใหได
143
Copyright of www.ExcelExpertTraining.com
ของจรง ของปลอม
ของใชไมไดใน 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 คานวณไดคาทเพยนตางจากทควรน ไมไดถอวาเปนการคานวณทผดพลาด และ
ไมไดมแคกรณนกรณเดยว สตรหรอการคานวณใดๆทคณใชมโอกาสคนคาเพยนไปจากท
ตองการไดทงนน
144
Copyright of www.ExcelExpertTraining.com
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
3.
4.
วนทจ
ในหนาร
ขอใหเป
ชดซาย
Column
Column
เลขทเด
=Trunc(12
=Trunc(12
สตร =Int
=Int(1.23)
=Int(-1.23
สตร =Mo
=Mod(7,2)
=Mod(7,4)
=Mod(123
อมปลอม
รายงานของ
ปดแฟมของ
หรอชดขวา
n B หรอชด
n B เปนชอเ
ดอน หรอชอ
Cop
23.45,-1) ค
23.45,-2) ค
t(ตวเลข) ใ
) คนคา 1
3) คนคา -2
od(เลขต งต
) คนคา 1 เ
) คนคา 3 เ
3.45,1) คนค
ม
งทกคน ตอง
คณขนมาด
ขอมลวนเด
ขวาของเซล
เดอนทชดซ
อเดอนเทาน
pyright of ww
คนคา 120
คนคา 100
ใชสาหรบปร
ต ง, เลขตวห
พราะ 7/2 เ
พราะ 7/4 เ
คาเทากบ .4
งมขอมลเกย
ซวาในเซลล
ดอนปของค
ลลเหมอนใน
ซายของเซล
นตามแบบท
145
ww.ExcelExp
รบเปนตวเลข
หาร) ใชสา
ทยบเทากบ
ทยบเทากบ
45 !!!
ยวกบวนเดอ
ลทมขอมลแ
ณชดซายข
น Column
ลล ไมวาคณ
ทเหนในภาพ
pertTraining.c
ขจานวนเตม
หรบหาเศษ
บ 3 1/2
บ 1 3/4
อนปของราย
แสดงวนเดอ
องเซลลตา
C
ณจะบนทกไว
พน ถามนชด
com
ม(ทนอยกวา
ษทเหลอจาก
ยงานนนกาก
อนป ถาไมได
มรปขางบนน
วเปนเพยงเล
ดซายเองโด
าคาเดม)
กการหาร
กบอยดวยเส
ดกาหนดรป
นเหมอนใน
ลขทวน หรอ
ดยคณไมได
สมอ
ปแบบให
อเฉพาะ
146
Copyright of www.ExcelExpertTraining.com
กาหนดใหมนชดซาย แสดงวาขอมลนนมคาเปน 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 วนแตกตางกนไปในแตละเดอน
147
Copyright of www.ExcelExpertTraining.com
หลกการใชวนทและเวลา
1. ในการบนทก ใหพมพใหครบทงวนเดอนป อยาบนทกเฉพาะวนทหรอเฉพาะเดอนหรอเฉพาะ
ปเทานน โดยจะพมพสวนของเวลาตอทายดวยหรอไมกได เชน 14/2/2010 12:00
2. ใหบนทกโครงสรางของวนทลงไปในเซลลตามแบบทกาหนดไวใน Regional Setting ของ
Windows เชน ถากาหนดไวใน Regional Setting เปน Thai กตองบนทกวนทตามแบบของ
ประเทศไทยซงใชลาดบตามวนกอนเดอนกอนป แตถากาหนดใน 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 ไดโดย
เปลยน Format เปน General (โดยการกดป ม Ctrl+Shift+ ~) เชน 14/2/2010
12:00:00 มคา SN เทากบ 40223.5
7.1. ในสวนของตวเลข SN สวนทเปนจานวนเตม คอ คาของวนท
7.2. ในสวนของตวเลข SN สวนทเปนเศษทศนยม คอ คาของเวลา
8. เวลาของ Excel เรมจาก 0:00:00-23:59:59 และใช Format h:mm:ss
9. ระยะเวลา เรมจาก 0:00:00 ขนไป โดยไมสนสดท 23:59:59
9.1. ใช Format [h]:mm:ss เพอแสดงเลขตงแต 24 ชวโมงขนไปได
148
Copyright of www.ExcelExpertTraining.com
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
149
Copyright of www.ExcelExpertTraining.com
หากคณอยากจะเกงสตรคานวณเรองวนทและเวลา ตองรจกสตรหา SN หรอสตรทสามารถ
แปลงเลขทของวนเดอนปทมนษยเขาใจไปเปนคา SN ท Excel รจก เชน สตร Now(),
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 เดอนกมภาพนธ ปค.ศ.
2010 เวลา 12 นาฬกา 30 นาท 45 วนาท
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
กลบมาเปนเลขทของวนเดอนปและเวลาทมนษยเขาใจ
สมมตวาเซลล A1 มสตร =NOW() ซงแสดงออกมาเปน 14/2/2010 12:30:45 (ถาตองการ
แสดงคาออกมาเปน SN โดยการเปลยน Format เปน General จะพบวา เซลล A1 มคา SN
เทากบ 40223.5213541667 ซงเปนตวเลขท Excel รจกแตเราไมรจก)
1. =Day(A1) จะไดเลขวนท 14
2. =Month(A1) จะไดเลขเดอน 2
3. =Year(A1) จะไดเลขป 2010
150
Copyright of www.ExcelExpertTraining.com
4. =WeekDay(A1) จะไดเลขของวนในสปดาห 1=Sunday, 2=Tuesday,…7=Saturday
5. =Hour(A1) จะไดเลขชวโมง 12
6. =Minute(A1) จะไดเลขนาท 30
7. =Second(A1) จะไดเลขวนาท 45
151
Copyright of www.ExcelExpertTraining.com
หลกการกาหนด
Format Cells > Number
1. Excel ใชเครองหมาย # และ 0 แทนตาแหนงของตวเลข ซงถาใชเครองหมาย # แลว
ตวเลขมคาไมถงกจะไมแสดงเลขหลกนน แตถาใช 0 จะแสดงแทนดวยเลข 0 ออกมาให
เหน เชน ถาพมพตวเลข 1.2 ลงไป ถาใช Format ##.## จะแสดง 1.2 แตถาใช Format
00.00 จะแสดง 01.20 ดวยเหตนใน Format มาตรฐานท Excel เตรยมไว จะพบวาอยาง
นอยตวเลขหลกหนวยและหลกทศนยม จงกาหนดใหใชเลข 0 ไวเสมอ เชน #,##0.00
2. ดานหนาของ Format ทเปนเครองหมาย # หรอเลข 0 เราสามารถกาหนดสของ Font ได
โดยพมพชอสทตองการไวในเครองหมาย [ ] เชน [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
นนรวมกน
6.2. หลงจากเครองหมาย ; ทเตมตอทายลงไป ถาใส ; ตวใด ตองตามดวย Format ของคา
นนๆ แตถาเราไมไดกาหนด Format ของนนๆไวดวย จงไมแสดงคาน นๆ
152
Copyright of www.ExcelExpertTraining.com
ตวอยางตอไปน สมมตวาคาทพมพลงไปในเซลลคอ 123, -123, 0, Hello
• Format ;;; จะไมแสดงอะไรใหเหนเลย
• Format 0.00 จะแสดง 123.00, -123.00, 0.00, Hello
• Format 0.00; จะแสดง 123.00, คาลบไมแสดง, 0.00, Hello
• Format 0.00;[Red](0.00) จะแสดง 123.00, (123.00) ในสแดง, 0.00, Hello
• 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 ซงสามารถคนหาตว
การใชค
คาทแท
กวางไม
Alignm
เหนไดใ
ประเดน
คาใหตา
หากตอ
รปแบบข
สมมตวา
15.0%
•
•
เลขทตองพ
พมพคาวา c
คาสง Forma
ทจรงยงคงถ
มพอจะเหนเ
ment > กา
ในเซลลนนเ
นเรอง Form
างไปจากเด
งการนาตวเ
ของตวเลขแ
า เซลล A1
ทาได 2 วธ
วธแรก ใชค
“Profit” 0.0
วธท สอง ส
Cop
พมพนไดจาก
charmap ล
at Cells >
อวาเปน Nu
ปนเครองหม
าชอง Shri
เสมอ
at นขอยาว
ดมแมแตนอย
เลขไปแสดง
แลวนาไปเช
มคาเทากบ
ธ
คาสง Form
0%
สรางสตร =”
pyright of ww
ก โปรแกรม
ลงไปในชอง
Number จะ
umber ทเหน
มาย ####
ink to fit เ
วา การใช Fo
ย
งรวมกบตวอ
ชอมตอกบต
บ .15 หากต
mat Cells >
”Profit ”&T
153
ww.ExcelExp
Character
งของคาสง S
ะชวยปรบกา
นไดจากการ
### แทน ซ
เพอทาให E
ormat เปนเ
อกษร ยงมอ
วอกษรทตอ
ตองการนาเล
Number >
Text(A1,”0.
pertTraining.c
r Map ซงสง
Start > Ru
ารแสดงตวเ
รชดขวาของ
ซงแกไดโด
Excel ปรบข
เพยงการเป
กวธหนง โด
องการโดยใ
ลข .15 ไปแ
> Custom แ
0%”)
com
งเปดโปรแก
n
ลขใหมตวอ
งเซลล แตถ
ยสง Form
นาด Font ย
ลยนสงเหน
ดยใชสตร T
ชเครองหมา
แสดงใหเปน
แลวกาหนด
กรมนไดงาย
อกษรแทรก
ถาเซลลมคว
at Cells >
ยอลงใหแส
เทานน มได
Text เขามาช
าย & เปนตว
นคาวา Profi
Type เปน
ยๆโดย
โดย
วาม
>
ดงให
ดแกไข
ชวยปรบ
วเชอม
t
154
Copyright of www.ExcelExpertTraining.com
จะพบวาผลจากวธแรกไดคาวา Profit 15.0% ชดขวาของเซลลแสดงวาสามารถนาไปคานวณ
ตอได แตวธทสองแมจะไดคาเดยวกนแตจะชดซายของเซลลซงไมสามารถนาไปคานวณตอ จง
ขอแนะนาใหใชวธทสองกบผลลพธสดทายทไมตองนาไปใชคานวณตอเทานน
นอกจากนสตร Text ยงเปรยบไดกบสตร Round โดยสตร Text นจะปดตวเลขและแสดงตวเลข
ตามรปแบบใหดวย เชน =TEXT(123456789,"0.00,,") จะไดคาตอบเปน 123.46 และมคา
123.46 ดวย
155
Copyright of www.ExcelExpertTraining.com
วธใช Add-In
Add-In เปนแฟมทมนามสกล .xla หรอ .xlam ซงแฟมเหลานจะทาให Excel ทตดตงไวในแต
ละเครองมสตรหรอคาสงเพมขนมากกวาเดม ซงทกวนนเราสามารถนาแฟม Add-in ทแจกฟร
จากอนเตอรเนตมาใชกนไดทนท
1. เรมจาก Download แฟม Add-in มาเกบไวในเครองคอมพวเตอรของคณกอน
2. จากนนเปดโปรแกรม Excel แลวสง File > Options > Add-ins แลวคลกทป ม Go
ดานลางของหนา จะเปดใหเหนรายชอ Add-ins Available ทมาพรอมกบโปรกรม Excel
(Excel 2003 ใหสง Tools > Add-Ins)
3. กดป ม Browse คนหาแฟม Add-in ทคณเกบไวในเครองตามขอ 1 ใหพบแลวกดป ม OK
4. จะพบชอ Add-in ทคณเลอกปรากฏเพมในชองรายชอ 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
เนองจากสตรเหลานไมใชสตรทมาตามปกตของ Excel ดงนนหากเปดแฟมทใชสตร Fml ขนมา
โดยทยงไมไดเรยกใช Expert2000.xla จะทาใหสตรเหลานกลายเปน Error วา #NAME!
ทงหมด ซงแกไขไดโดยทาการตดตง Add-in Expert2000.xla กอนแลวจงตามดวยการเปด
156
Copyright of www.ExcelExpertTraining.com
แฟมทมสตรเหลานตอ แตถาพบวาสตรยงคง Error อย ใหคลกทเซลลสตรแลวกดป ม F2 แลว
กดป ม Enter เพอกระตนใหสตรเรมทางานตอไปไดตามปกต
157
Copyright of www.ExcelExpertTraining.com
Function VBA
แทนทจะตองสรางสตรซงมขนตอนการคานวณยาวเหยยดซาแลวซาอกลงไปในตาราง
Function VBA เปนทางออกทจะชวยทาใหเกดสตรลดขนมาใชงานในแฟม
วธสราง Function VBA
1. เปด Visual Basic Editor โดยกดป ม Alt+F11
2. ใชเมนคาสง Insert > Module เพอเปดพนทจดเกบรหส
3. copy รหสทตองการ โดยเลอกชวงตงแตบรรทด Function ถงบรรทด End Function
4. paste รหสท copy ไวนนลงใน module ทตองการ
5. ใน Module หนงๆ จะใชเกบ Function ไดไมจากด ใหเรยง Function ตอกนไปเรอยๆ
6. สง File > Save โดยกาหนดนามสกลแฟม xlsm
วธใช Function VBA
ใชสตรเชนเดยวกบสตรทวไปอนๆ หากใชคาสง Formulas > Insert Function หรอคลกทป ม
Fx บน Formula Bar จะพบสตร VBA Function รวมไวในกลม Function category : User
Defined และแสดงรปแบบสตรในจอดานขวาและดานลาง
1
Fu
En
2
Fu
En
Fu
unction Ge
GetForma
nd Functio
แสดงรป
unction Ge
GetFormu
nd Functio
unction Ge
If VarType
GetFormu
Cop
tFormat(ce
t = cell.Nu
n
แบบทใชใน
tFormula(C
la = Cell.F
n
tFormulaI(
e(cell) = 8
ulaI = "'" &
pyright of ww
ell)
umberForm
นเซลล
Cell)
Formula
(cell)
Then
& cell.form
158
ww.ExcelExp
mat
ula
pertTraining.ccom
159
Copyright of www.ExcelExpertTraining.com
Else
GetFormulaI = cell.formula
End If
If cell.HasArray Then _
GetFormulaI = "{" & cell.formula & "}"
End Function
แสดงสตรทใชในเซลล
3
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
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
160
Copyright of www.ExcelExpertTraining.com
'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
161
Copyright of www.ExcelExpertTraining.com
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
แสดงสตรในเซลล
5
Option Explicit
Function DATEDIFF(d1, d2) As Variant
Dim YearDiff As Integer
Dim MonthDiff As Integer
Dim DayDiff As Integer
Dim temp As Date
' Swap arguments, if necessary
If d1 > d2 Then
temp = d1
d1 = d2
d2 = temp
End If
162
Copyright of www.ExcelExpertTraining.com
' 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
163
Copyright of www.ExcelExpertTraining.com
DATEDIFF = Array(YearDiff, MonthDiff, DayDiff)
End Function
แสดงระยะเวลาระหวางชวงเวลาทกาหนด
www.j-walk.com\ss\excel\tips\tip55.htm
6
Function Age(TheDate As Double) As String
Age = _
CStr(Evaluate("=DATEDIF(" & TheDate & "," & CDbl(Now) & ",""y"")"))
& " years " & _
CStr(Evaluate("=DATEDIF(" & TheDate & "," & CDbl(Now) &
",""ym"")")) & " months " & _
CStr(Evaluate("=DATEDIF(" & TheDate & "," & CDbl(Now) &
",""md"")")) & " days"
End Function
แสดงระยะเวลาระหวางชวงเวลาทกาหนดเปนประโยครวม
7
Function OrdDate(arg)
dd = Day(arg)
mmmm = Format(arg, "mmmm") '*Corrected*
yyyy = Year(arg)
Select Case Day(arg)
Case 1, 21, 31
164
Copyright of www.ExcelExpertTraining.com
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
8
Function SheetName() As String
SheetName = Application.Caller.Parent.Name 'in XL97
End Function
แสดงชอ sheet
9
Function CellType(c)
' Returns the cell type of the upper left
' cell in a range
Application.Volatile
165
Copyright of www.ExcelExpertTraining.com
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
แสดงประเภทของคาในเซลล
10
Function CellValue(c) As Double
'John Walkenbach 2001-04-25
' misc returns number part
CellValue = Val(c)
End Function
แสดงคาเปนตวเลข
166
Copyright of www.ExcelExpertTraining.com
11
Function HasFormula(cell)
HasFormula = cell.HasFormula
End Function
ตรวจสอบวา มสตรหรอไม
12
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
If Trim(cell.Value) = "" Then
UseFormula2 = ""
Exit Function
ElseIf Left(cell.Value, 1) = "=" Then
UseFormula2 = Application.Evaluate(cell.Formula)
Exit Function
Else
167
Copyright of www.ExcelExpertTraining.com
UseFormula2 = "'#bad formula"
End If
End Function
แปลงสตรทเปนตวอกษร ใหเปนสตรทใชงานได
13
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))
Else
fontinfo = Trim(fontinfo & " " & cell.FONT.FontStyle)
End If
End Function
แสดงรายละเอยดของ font ทใช
14
Function SumByColor(InputRange As Range, ColorRange As Range) As
Double
Dim cl As Range, TempSum As Double, ColorIndex As Integer
ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex
TempSum = 0
On Error Resume Next ' ignore cells without values
168
Copyright of www.ExcelExpertTraining.com
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
15
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
If cl.Interior.ColorIndex = ColorIndex Then TempCount =
TempCount + 1
Next cl
Set cl = Nothing
CountByColor = TempCount
End Function
169
Copyright of www.ExcelExpertTraining.com
นบจานวนตามสทใช
16
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)
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
17
Function UniqueItem(InputRange As Range, ItemNo As Long) As Variant
Dim cl As Range, cUnique As New Collection, cValue As Variant
Application.Volatile
On Error Resume Next
For Each cl In InputRange
170
Copyright of www.ExcelExpertTraining.com
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
171
Copyright of www.ExcelExpertTraining.com
' 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)
172
Copyright of www.ExcelExpertTraining.com
End If
Erase ItemList
End Function
แสดงคาทอยในลาดบท n
19
Sub FindUniqueValues(SourceRange As Range, TargetCell As Range)
SourceRange.AdvancedFilter Action:=xlFilterCopy,
CopyToRange:=TargetCell, Unique:=True
End Sub
แยก unique items ออกมาสรป
20
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
If StartTime > EndTime Then Exit Function
If StartTime > UpperLimit Then Exit Function
If EndTime < LowerLimit Then Exit Function
If StartTime < LowerLimit Then StartTime = LowerLimit
173
Copyright of www.ExcelExpertTraining.com
If EndTime > UpperLimit Then EndTime = UpperLimit
TimeInterval = EndTime - StartTime
End Function
ระยะเวลาระหวางชวง
21
Option Explicit
'****************
' Main Function *
'****************
Function BahtEng(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 "
' 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
174
Copyright of www.ExcelExpertTraining.com
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"
175
Copyright of www.ExcelExpertTraining.com
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
176
Copyright of www.ExcelExpertTraining.com
'*********************************************
' 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 "
177
Copyright of www.ExcelExpertTraining.com
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
สตรแปลงตวเลขเปนคาอาน
178
Copyright of www.ExcelExpertTraining.com
22
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 "
' 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))
179
Copyright of www.ExcelExpertTraining.com
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
180
Copyright of www.ExcelExpertTraining.com
'*******************************************
' 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
181
Copyright of www.ExcelExpertTraining.com
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
182
Copyright of www.ExcelExpertTraining.com
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
สตรแปลงตวเลขเปนคาอาน
23
Option Explicit
'****************
' Main Function *
'****************
Function Money(ByVal MyNumber, UnitName1, UnitName2)
183
Copyright of www.ExcelExpertTraining.com
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
184
Copyright of www.ExcelExpertTraining.com
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
185
Copyright of www.ExcelExpertTraining.com
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"
186
Copyright of www.ExcelExpertTraining.com
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)
187
Copyright of www.ExcelExpertTraining.com
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
สตรแปลงตวเลขเปนคาอาน
24
Option Explicit
'****************
' Main Function *
'****************
Function UnitText(ByVal MyNumber, UnitName1, UnitName2)
Dim KeyUnit1, KeyUnit2, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
188
Copyright of www.ExcelExpertTraining.com
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
189
Copyright of www.ExcelExpertTraining.com
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
190
Copyright of www.ExcelExpertTraining.com
'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
191
Copyright of www.ExcelExpertTraining.com
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"
192
Copyright of www.ExcelExpertTraining.com
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
สตรแปลงตวเลขเปนคาอาน
25
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
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
193
Copyright of www.ExcelExpertTraining.com
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)
194
Copyright of www.ExcelExpertTraining.com
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
195
Copyright of www.ExcelExpertTraining.com
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
สตรคานวณระยะเวลา
26 Function PersonalTax(TaxableIncome)
Const UpperRange0 = 50000
196
Copyright of www.ExcelExpertTraining.com
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 + _
197
Copyright of www.ExcelExpertTraining.com
(TaxRate1 * (TaxableIncome - UpperRange0))
Case Is < UpperRange0
PersonalTax = TaxRate0 * TaxableIncome
End Select
End Function
สตรคานวณภาษหก ณ ทจาย
27
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
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
198
Copyright of www.ExcelExpertTraining.com
'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)
199
Copyright of www.ExcelExpertTraining.com
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
200
Copyright of www.ExcelExpertTraining.com
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
201
Copyright of www.ExcelExpertTraining.com
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
202
Copyright of www.ExcelExpertTraining.com
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*")
203
Copyright of www.ExcelExpertTraining.com
นบจานวนเซลลทมคานาดวยตวอกษร "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)
204
Copyright of www.ExcelExpertTraining.com
นบคาของ 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"
15 =SUMIF(A1:A6,"Part#1",B1:B6)
=SUMPRODUCT((A1:A6="Part#1")*(B1:B6))
รวมคาของ Part#1
16 =SUM(IF(FREQUENCY(data,data)>0,1,0))
นบจานวนเซลลทมคา unique numeric values
17 =IF(COUNTIF(A$2:A2,A2)>1,COUNTIF(A$2:A2,A2),"")
=IF(COUNTIF(A$2:A2,A2)>1,"Dup","")
แสดงตาแหนงเซลลทมคาซา
205
Copyright of www.ExcelExpertTraining.com
18
=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,"
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.
19
=INT(A1/12)&"' " & TEXT(MOD(A1,12),"0"&IF(ABS(MOD(A1,12)-
ROUND(MOD(A1,12),0))>1/32,"
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
20
=TEXT(A1,"0"&IF(ABS(A1-ROUND(A1,0))>1/32," 0/"& CHOOSE(
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
21
=VALUE(LEFT(A1,FIND("'",A1)-1)) +
VALUE(MID(A1,FIND("'",A1) +1,FIND("""",A1)-FIND("'",A1)-
1))/12
206
Copyright of www.ExcelExpertTraining.com
เปลยนเลขความยาว จาก Feet and Inches ไปเปน feet
22 =VALUE(LEFT(A1,FIND("'",A1)-1))*12 +
VALUE(MID(A1,FIND("'",A1) +1,FIND("""",A1)-FIND("'",A1)-1))
เปลยนเลขความยาว จาก Feet and Inches back ไปเปน inches
23
สตร คนคา
=SUM(E4:E23) รวมคาใน E4:E23
=SUBTOTAL(9;G4:G26) รวมคาใน G4:G26 เฉพาะ visible
cells
=SUMPRODUCT(E4:E13;F4:F13)รวมผลคณระหวางn E4:E13 คณกบ
F4:F13
{=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)²
207
Copyright of www.ExcelExpertTraining.com
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 สตรสะสม
208
Copyright of www.ExcelExpertTraining.com
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
32 =RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-
LEN(SUBSTITUTE(A2," ","")))))
To return the last name. Suppose cell A2 contains the name
209
Copyright of www.ExcelExpertTraining.com
"John A Smith"
33 =LEFT(A2,FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-
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
37
"Grades" which refers to ={0,"F";60,"D";70,"C";80,"B";90,"A"}
=VLOOKUP(A1,Grades,2)
210
Copyright of www.ExcelExpertTraining.com
to convert the number to the grade:
38 =IF(ROW()-ROW(TopRng)+1>TopN,"",LARGE(RankRng,ROW()-
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
39 =IF(ROW()-ROW(TopRng)+1>TopN,"",SMALL(RankRng,ROW()-
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,
211
Copyright of www.ExcelExpertTraining.com
LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
To return the sheet name, without the path
42 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",
CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
To return the file name without the path
43
=LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))) Or
=SUBSTITUTE(SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",
CELL("filename",A1))),"[",""),"]","")
To return the file name with the path
44
=RadiusEarth*ACOS(COS(RADIANS(90-
(Lat1*24)))*COS(RADIANS(90-(Lat2*24)))+
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
212
Copyright of www.ExcelExpertTraining.com
kilometers).
45
=RadiusEarth*ACOS(COS(RADIANS(90-
Lat1))*COS(RADIANS(90-Lat2))+
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
46 =LEFT(A2,IF(ISERROR(FIND(",",A2,1)),LEN(A2),FIND(",",A2,1)-
1))
To return the last name of the full name in A2
47
=TRIM(IF(ISERROR(FIND(",",A2,1)),A2,MID(A2,FIND(",",A2,1)+1,
IF(ISERROR(FIND(" ",A2,FIND(",",A2,1)+2)),LEN(A2),
FIND(" ",A2,FIND(",",A2,1)+2))-FIND(",",A2,1))))
To return the first name
48
=TRIM(RIGHT(A2,LEN(A2)-IF(ISERROR(FIND(" ",A2,
FIND(" ",A2,FIND(",",A2,1)+2))),LEN(A2),
FIND(" ",A2,FIND(" ",A2,FIND(",",A2,1)+2))-1)))
213
Copyright of www.ExcelExpertTraining.com
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),
51 =A1&IF(AND(A1>=10,A1<=14),"th",
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
53 =COUNT(C$7:C$16)-
(RANK(C7,C$7:C$16)+COUNTIF(C$7:C7,C7))+2
214
Copyright of www.ExcelExpertTraining.com
Reverse Unique Ranks
54 =CELL("filename",A1)
D:\driveM\excel\TAXES\[1996FEDT.XLS]Sheet1
55 =LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1),1)-1)
=INFO("directory")
D:\driveM\excel\TAXES\
56 =SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1),1)-
1),"[","")
D:\driveM\excel\TAXES\1996FEDT.XLS
57 =SUBSTITUTE(SUBSTITUTE(CELL("filename",A1),"[",""),"]"," [")
& "]"
D:\driveM\excel\TAXES\1996FEDT.XLS [Sheet1]
58 =SUBSTITUTE(LEFT(LOWER(CELL("filename",A1)),FIND("]",
CELL("filename",A1))-1),"[","") & " [" &
MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,28) &
215
Copyright of www.ExcelExpertTraining.com
"]"
d:\drivem\excel\taxes\1996fedt.xls [Sheet1]
59 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1),1)+1,FIND("]",
CELL("filename",A1),1)-FIND("[",CELL("filename",A1),1)-1)
1996FEDT.XLS
60
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-
FIND("]", CELL("filename",A1)))
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)
=SheetName()
Sheet1
61
=INFO("directory")
directory, memavail, memused, numfile, origin, osversion, recalc,
release, system, totmem
C:\WINNT\Profiles\Administrator\Personal\
62 =UPPER(LEFT(A37,1)&"."&MID(A37,FIND(" ",A37&" ")+1,1)&".
")
216
Copyright of www.ExcelExpertTraining.com
Extract the first two initials
63 =IF(LEN(A11)=0,"",IF(ISERR(FIND("
",A11)),A11,LEFT(A11,FIND(" ",A11)-1)))
Extract the first word
64
=len(a1)-len(substitute(a1,"a","")) — lettercase must match
=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
66 =LEN(SUBSTITUTE(TRIM(A1),CHAR(32),CHAR(32)&CHAR(32))
)-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
217
Copyright of www.ExcelExpertTraining.com
68 =countif(A1:J1,"aa")
Find the number of cells in a range that have string as their
value
69
=IF(ISERR(FIND("/",E22)),E22,MID(E22,FIND("/",E22,1)+1,99))
=IF(ISERR(FIND("/",E22)),"",MID(E22,FIND("/",E22,1)+1,99))
Return string after first "/" character
70 =NOT(ISNUMBER(VALUE(LEFT(D7,1))))
=IF(LEFT(TRIM(D7))="","",NOT(ISNUMBER(VALUE(LEFT(D7,1)))))
First Character checked as alphabetic character
71 =SUBSTITUTE(A1," ","")
Remove All Spaces
72
=IF(MOD(INT(16*(+B2-
INT(B2)+0.0312)),16)=0,TEXT(B2,"#"),IF(MOD(INT(16*(+B2-
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,"#
218
Copyright of www.ExcelExpertTraining.com
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
75
=POWER((SUM(IF(values0,values*(POWER(1+rRate,(MAX(dates)-
dates)/daybase)) ,0)))/(SUM(IF(values<0,values/(POWER
(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).
219
Copyright of www.ExcelExpertTraining.com
76
=MROUND(Num,IF(VALUE(RIGHT(Num/10^(INT(LOG(ABS(Num)))-
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
78 =LEN(A1)-LEN(SUBSTITUTE(A1,"B",""))
=LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(A1,"B",""),"b",""))
นบตวอกษร b ในเซลล
79
=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,B1,"")))/LEN(B1)
=SUM(LEN(A1)-
LEN(SUBSTITUTE(UPPER(A1),UPPER(B1),"")))/LEN(B1)
นบจานวนคา B1 ในประโยค A1
80 =A1&IF(OR(VALUE(RIGHT(A1,2))={11,12,13}),
220
Copyright of www.ExcelExpertTraining.com
"th",IF(OR(VALUE(RIGHT(A1))={1,2,3}),CHOOSE(RIGHT(A1),
"st","nd","rd"), "th"))
Ordinal Number
81 =IF(AND(A1>0,A1<257),IF(A1>26,CHAR(CEILING(A1/26,1)+63),"")
&CHAR(IF(MOD(A1,26)=0,26,MOD(A1,26))+64),"")
แปลงเลขท column เปนตวอกษร column
82 =MID(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-
LEN(SUBSTITUTE(A1,"\",))))+1,LEN(A1))
แยกชอ file จาก c:\MainDir\ชอ file
83 =IF(ISERR(LEFT(A1,FIND(" ",A1)-1)),A1,LEFT(A1,FIND(" ",A1)-
1))
แยกคาแรกออกจากประโยคภาษาองกฤษ
84
=IF(LEN(A4)-LEN(SUBSTITUTE(A4," ",""))=0, A4,
RIGHT(A4,LEN(A4) -FIND("*",SUBSTITUTE(A4," ", "*", LEN(A4)-
LEN(SUBSTITUTE(A4," ",""))))))
แยกคาสดทายออกจากประโยคภาษาองกฤษ
221
Copyright of www.ExcelExpertTraining.com
85 =RIGHT(A1,LEN(A1)-FIND(" ",A1,1))
แยกคาทเหลอซงไมใชคาแรก ออกจากประโยคภาษาองกฤษ
86
=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("
",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
87 =IF(OR(LEFT(A1,2)="Mr",LEFT(A1,3)="Mrs",LEFT(A1,2)="Ms"),
RIGHT(A1,LEN(A1)-FIND(" ",A1)),A1)
ตดคานาหนาชอออกจากชอ
88 =LEN(SUBSTITUTE(TRIM(A1),CHAR(32),CHAR(32)&CHAR(32)))-
LEN(TRIM(A1))+1
นบจานวนคาในเซลล
222
Copyright of www.ExcelExpertTraining.com
89
=LEFT(TRIM(A1),FIND(" ",TRIM(A1),1)-1)&"
"&RIGHT(TRIM(A1),LEN(TRIM(A1))-IF(ISERROR(FIND("
",TRIM(A1),FIND(" ",TRIM(A1),1)+1)),FIND("
",TRIM(A1),1),FIND(" ",TRIM(A1),FIND(" ",TRIM(A1),1)+1)))
ตด middle names ออกจากชอนามสกล
90
=SUBTOTAL(9, INDIRECT(ADDRESS( ROW(C3),COLUMN(C3)
)&":"& ADDRESS( ROW(C3),
ROW(INDIRECT(COLUMN(C3)&":"&COLUMN(G3))) )))
Cumulative Sum คาในเซลล C3:G3
91 =MAX( 0, MIN( เวลาสนสดกะ, กาหนดสนสด ) - MAX( เวลาเรมกะ,
กาหนดเรม ) )
ระยะเวลาทใชในกะนน
92 =IF( Date>=Start, Amount, 0 )
แสดง Amount เมอถงวนทกาหนด
93 =IF( Date<=Stop, Amount, 0 )
แสดง Amount เมอยงไมเลยวนทกาหนด
223
Copyright of www.ExcelExpertTraining.com
94 =IF( AND( Date>=Start, Date<=Stop ), Amount, 0 )
แสดง Amount ในชวงวนทกาหนด
95 =IF( AND( Date>=Start, Date<=Stop, OR( MOD( Date-
Start+1,Cycle ) = 1,Cycle = 1 ) ), Amount, 0 )
แสดง Amount ในชวงวนทกาหนด และกาหนดเปนชวงๆตาม Cycle
224
Copyright of www.ExcelExpertTraining.com
Day and Time Formulas
1 =DATEDIF(Date1,Date2,Interval)
คานวณระยะเวลาระหวางชวงทกาหนด
Interval Code ความหมาย
"m" จานวนเดอนสะสม
"d จานวนวนสะสม
"y" จานวนปสะสม
"ym" จานวนเดอนทเหลอ เมอนบปชนป
"yd" จานวนวนทเหลอ เมอนบปชนป
"md" จานวนวนทเหลอ เมอนบเดอนชน
เดอน
2
=DATEDIF(วนเกด,NOW(),"y") & " years, " & DATEDIF(วนเกด
,NOW(),"ym") & " months, " & DATEDIF(วนเกด,NOW(),"md") & "
days"
คานวณอาย
225
Copyright of www.ExcelExpertTraining.com
3 =AND((TDate>=MIN(TDate1,TDate2)),TDate<=MAX(TDate1,TDate2))
ตรวจสอบวา TDate อยระหวาง TDate1 ถง TDate2
4
=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-
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 วนสดทาย ซงไมตองการนบเปน
วนทางาน
226
Copyright of www.ExcelExpertTraining.com
NWRange ตารางวนหยด
5
=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)-
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())))
นบวนเฉพาะวนธรรมดา ไมนบวนหยดสดสปดาหหรอวนหยดอน
6 =IF(OR(IDate2<RDate1,IDate1>RDate2),0,(MIN(IDate2,RDate2)-
MAX(IDate1,RDate1)+1))
นบจานวนวนทอยในทงสองชวงเวลาเหมอนกน
ชอ ความหมาย
IDate1 วนเรมตนของชวงแรก
IDate2 วนสดทายของชวงแรก
227
Copyright of www.ExcelExpertTraining.com
RDate1 วนเรมตนของชวงทสอง
RDate1 วนสดทายของชวงทสอง
NWRange ตารางวนหยด
7 =IF(OR(IDate2<RDate1,IDate1>RDate2),0,
ABS(NETWORKDAYS(MIN(IDate2,RDate2),MAX(IDate1,RDate1),NWRange)))
นบวนเฉพาะวนธรรมดา ไมนบวนหยดสดสปดาหหรอวนหยดอน
8 =MAX(0,NETWORKDAYS(MAX(D$5,$B6),MIN(DATE(YEAR(D$5),MONTH(D$5)+
1,0),$C6)))
สรปจานวนวนทางานแตละเดอน
9 =MAX(0,(MIN($C17,DATE(YEAR(D$16),MONTH(D$16)+1,0))-
MAX($B17,D$16)+1))
สรปจานวนวนแตละเดอน
228
Copyright of www.ExcelExpertTraining.com
1
0
=MAX(0,NETWORKDAYS(MAX(DATE(D$27,1,1),$B28),MIN(DATE(D$27,12,31
),$C28)))
สรปจานวนวนทางานแตละป
11 =MAX(0,(MIN($C39,DATE(D$38,12,31))-
MAX($B39,DATE(D$38,1,1))+1))
สรปจานวนวนแตละป
229
Copyright of www.ExcelExpertTraining.com
12 =FLOOR("5/"&DAY(MINUTE(B2/38)/2+56)&"/"&B2,7)-34
=FLOOR(DAY(MINUTE(B2/38)/2+56)&"/5/"&B2,7)-34
วน Easter
B2 เปนปทตองการหาวน Easter
13 =TRUNC(((B6-DATE(YEAR(B6),1,0))+6)/7)
เลขทสปดาห
14
=INT((A1-SUM(MOD(DATE(YEAR(A1-MOD(A1-2,7)+3),1,2),
{1E+99,7})*{1,-1})+5)/7)
=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 เปนวนทปกต
230
Copyright of www.ExcelExpertTraining.com
17
=DATE(IF(0+(LEFT(A1,2))<30,2000,1900)+LEFT(A1,2),1,RIGHT(A1,3))
-
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
19 =IF(ROW(A1),CALL("Xlcall32","Excel4","2JRJ",74))
=IF(ROW(A1:A4),CALL("Xlcall32","Excel4","2JRJ",74))
วนปรบปรงคาครงสดทาย
20
=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-
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 ")
ระยะเวลาเปนวนและชวโมง ระหวางชวงเวลาทกาหนด
231
Copyright of www.ExcelExpertTraining.com
ชอ ความหมาย ตวอยาง
StartDT วนทและเวลา
เรมตน
25-Oct-99
13:00
EndDT วนทและเวลา
สนสด
28-Oct-99
15:00
DayStart เวลาเรมงาน
ประจาวน 9:00
DayEnd เวลาเลกงาน
ประจาวน 17:00
HolidayList ตารางวนหยด H1:H10
21
=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))-
(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))))
นบจานวนชวโมงทางาน
232
Copyright of www.ExcelExpertTraining.com
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)
วนทสดทายของเดอนกอน
26 =DATE(Yr,Mon,1+((Nth-(DoW>=WEEKDAY(DATE(Yr,Mon,1))))*7)+
(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.
233
Copyright of www.ExcelExpertTraining.com
27 =DATE(Yr,1,1+(Nth-(Dow>=WEEKDAY(DATE(Yr,1,1))))*7)+
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)
เลขทไตรมาส
31 =TRUNC(((A1-DATE(YEAR(A1),1,1))/7))+1+
IF(WEEKDAY(DATE(YEAR(A1),1,1))>WEEKDAY(A1),1,0)
เลขทสปดาหของวนทกาหนด
234
Copyright of www.ExcelExpertTraining.com
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 เปนเลขนาท ซงตองการปดเขาส
35 =TIME(HOUR(A1),FLOOR(MINUTE(A1),B1),0)
=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))
235
Copyright of www.ExcelExpertTraining.com
นบจานวนเซลลทมวนทซ งอยในเดอนธนวาคม ป 2000
3
8
=SUMPRODUCT(N(A1:A20>DATE(2000,11,15))*N(A1:A20<=DATE(2000,12,
15)))
=countif(A1:A20,">=16/11/2000")-countif(A1:A20,">15/12/2000")
นบจานวนเซลลทมวนทซ งอยระหวางวนท 16 พฤษจกายน ถงวนท 15 เดอน
ธนวาคม
39 =(A1>B1)+B1-A1
หาระยะเวลาระหวางเวลาทกาหนด
40
A B C
1 TIME Time สตรทใช
2 1 0:01:00 =ROUNDDOWN(A2,-2) / 2400 + MOD(A2,100) /
1440
3 2 0:02:00 =ROUNDDOWN(A3,-2) / 2400 + MOD(A3,100) /
1440
4 3 0:03:00 =ROUNDDOWN(A4,-2) / 2400 + MOD(A4,100) /
1440
236
Copyright of www.ExcelExpertTraining.com
5 1200 12:00:00 =ROUNDDOWN(A5,-2) / 2400 + MOD(A5,100) /
1440
6 1201 12:01:00 =ROUNDDOWN(A6,-2) / 2400 + MOD(A6,100) /
1440
7 2400 0:00:00 =ROUNDDOWN(A7,-2) / 2400 + MOD(A7,100) /
1440
8 3359 9:59:00 =ROUNDDOWN(A8,-2) / 2400 + MOD(A8,100) /
1440
เปลยนเวลาแบบทหาร เปน เวลาแบบมาตรฐาน
41
=INT((A1-(DATE(YEAR(A1+(MOD(8-WEEKDAY(A1),7)-3)),1,1))-3+
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
237
Copyright of www.ExcelExpertTraining.com
เวลา 10 นาทถดไปจากเวลาปจจบน (1440 นาท / วน)
44 =NOW()+30/86400
เวลา 30 วนาทถดไปจากเวลาปจจบน (86400 วนาท / วน)
45
A2: =TODAY()
B2: =A2-MOD(A2-2,7)
C2: =B2
Monday week starting dates
46
=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"))))
=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
238
Copyright of www.ExcelExpertTraining.com
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")
เปลยนเวลาเปนรปแบบตวอกษร จะไดจดชดซายและยดขามขอบขวา
ออกไปได
5
1
(วนทแสดงในแบบของ US/Canada mm/dd/yyyy)
04/14/200
1 Sat 36995
First Day of Week 04/08/200
1 Sun =B1-WEEKDAY(B1)+1
Last Day of Week 04/14/200
1 Sat =B1-WEEKDAY(B1)+7
First Day of Month 04/01/200 Sun =DATE(YEAR(B1),MONTH(B1),1)
239
Copyright of www.ExcelExpertTraining.com
1
Last Day of Month 04/30/200
1
Mo
n =DATE(YEAR(B1),MONTH(B1)+1,0)
First Day of Year 04/01/200
1 Sun =DATE(YEAR(B1),MONTH(B1),1)
Last Day of Year 12/31/200
1
Mo
n =DATE(YEAR(B1)+1,1,0)
Closest Monday 04/16/200
1
Mo
n
=DATE(YEAR(B1),MONTH(B1),DAY(
B1)
+CHOOSE(WEEKDAY(B1),1,0,-1,-2,-
3,3,2,1))
Next Monday 04/16/200
1
Mo
n
=DATE(YEAR(B1),MONTH(B1),DAY(
B1)
+CHOOSE(
WEEKDAY(B1),1,7,6,5,4,3,2))
Next Monday 04/16/200
1
Mo
n
=A1-WEEKDAY(A1,2)+8
1st Monday of
Month
04/02/200
1
Mo
n
=DATE(YEAR(B1),MONTH(B1),
CHOOSE(WEEKDAY(DATE(YEAR(B1)
,
MONTH(B1),1)),2,1,7,6,5,4,3))
240
Copyright of www.ExcelExpertTraining.com
2nd Monday of Mont
h
04/09/200
1
Mo
n
=DATE(YEAR(B1),MONTH(B1),7
+CHOOSE(WEEKDAY(DATE(YEAR(B
1),
MONTH(B1),1)),2,1,7,6,5,4,3))
3rd Monday of
Month
04/16/200
1
Mo
n
=DATE(YEAR(B1),MONTH(B1),14
+CHOOSE(WEEKDAY(DATE(YEAR(B
1),
MONTH(B1),1)),2,1,7,6,5,4,3))
4th Monday of
Month
04/23/200
1
Mo
n
=DATE(YEAR(B1),MONTH(B1),21
+CHOOSE(WEEKDAY(DATE(YEAR(B
1),
MONTH(B1),1)),2,1,7,6,5,4,3))
5th Monday of
Month
04/30/200
1
Mo
n
=IF(MONTH(DATE(YEAR(B1),
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
Month
04/30/200
1
Mo
n
=DATE(YEAR($B$1),
MONTH($B$1)+1,1)-
WEEKDAY(DATE(YEAR($B$1),
241
Copyright of www.ExcelExpertTraining.com
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),"
")
5
2
A B E
Dates
format
mm/dd/yyy
y
สตรทใช
First ddd
of Month 03/01/1999 =DATE(YEAR(B18),MONTH(B18),1)
Last ddd
of Month 03/31/1999 =DATE(YEAR($B$18),MONTH($B$18)+1,1)-1
First
Sunday of 03/07/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(1+7-
242
Copyright of www.ExcelExpertTraining.com
Mo. WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
First
Monday 03/01/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(2+7-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
First
Tuesday 03/02/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(3+7-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
First
Wednesda
y
03/03/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(4+7-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
First
Thursday 03/04/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(5+7-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
First
Friday 03/05/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(6+7-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
243
Copyright of www.ExcelExpertTraining.com
First
Saturday 03/06/1999
=DATE(YEAR($B$18),MONTH($B$18),1)+
MOD(7+7-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18),1))
,7)
Last
Sunday of
Mo.
03/28/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
7))
Last
Monday 03/29/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
6))
Last
Tuesday 03/30/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
5))
Last
Wednesda
y
03/31/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
4))
Last
Thursday 03/25/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
3))
Last Friday 03/26/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
2))
244
Copyright of www.ExcelExpertTraining.com
Last
Saturday 03/27/1999
=DATE(YEAR($B$18),MONTH($B$18)+1,1)-
WEEKDAY(DATE(YEAR($B$18),MONTH($B$18)+1,
8))
Last
weeknum
of yr
53 =WEEKNUM(DATE(YEAR(B18),12,31),1)
53
Description สตร
The date for
Monday in the
previous week
=TODAY()-WEEKDAY(TODAY(),2)-6
The date for
Monday in the
current week
=TODAY()-WEEKDAY(TODAY(),2)+1
The date for
Monday in the next
week
=TODAY()-WEEKDAY(TODAY(),2)+8
Create a valid date =DATE(2002,12,24)
245
Copyright of www.ExcelExpertTraining.com
Create a valid date =DATEVALUE("1.1.1980")
Count of days in a
month =DAY(DATE(YEAR(A1),MONTH(A1)+1,0))
Last date in a
month =DATE(YEAR(A1),MONTH(A1)+1,0)
Determine which
quarter a date
belongs to
=CHOOSE(MONTH(A1),1,1,1,2,2,2,3,3,3,4,4,4)
54
=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",
IF(MOD(DAY(A1),10)=3, "rd","th"))))& " " &TEXT(A1,"mmmm,
yyyy")
Ordinal Date
246
Copyright of www.ExcelExpertTraining.com
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))
แสดงคาทใชนอยครงทสด
3
=INDIRECT(ADDRESS(ROW(Rng)+MATCH(C1,Rng,0)-1,COLUMN(Rng)-
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)
ตรวจสอบคาซา
247
Copyright of www.ExcelExpertTraining.com
6 =IF(COUNTIF(Range1,???)>1,"Duplicate","")
ตรวจสอบคาซา
7 =COUNTIF($A:$A,$A1)>1
ตรวจสอบคาซาในแถวตง
8
=SUM(N(OFFSET(E1,ROW(1:5)-1,-1*ROW(1:5)+1)))
=SUMPRODUCT(N(OFFSET(E1,ROW(INDIRECT("1:5"))-1,-
1*ROW(INDIRECT("1:5"))+1)))
=SUM(N(OFFSET(E1,ROW(INDIRECT("1:5"))-1,-
1*ROW(INDIRECT("1:5"))+1)))
sum A5:E1 ตามแนวทะแยงมม
9
=INDEX(Range2,MATCH(Value,Range1,0))
=LOOKUP(Value,Range1,Range2)
=VLOOKUP(Value,Range12,2,FALSE)
สตรคนหาคา
248
Copyright of www.ExcelExpertTraining.com
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)
เซลลซงไมใชตวเลข
249
Copyright of www.ExcelExpertTraining.com
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)
เซลลซงมคาสงสด
10 =OR( A1=LARGE($A$1:$A$30,1), A1=LARGE($A$1:$A$30,2),
A1=LARGE($A$1:$A$30,3) )
เซลลซงมคาสงสด 3 ลาดบแรก
250
Copyright of www.ExcelExpertTraining.com
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
เซลลซงไมไดเรยงลาดบ
16 =LEN( SUBSTITUTE(TRIM(A1), CHAR(32), CHAR(32)&CHAR(32)) )-
LEN(TRIM(A1))+1>1
เซลลซงมคามากกวา 1 คา
251
Copyright of www.ExcelExpertTraining.com
17 =LEN(A3)-LEN(SUBSTITUTE(SUBSTITUTE(A3,"A",""),"a",""))>0
เซลลซงมตวอกษรตว a
18 =AND($B$1:$B$4<>"")
เมอเซลลอนมคาครบแลว
1
9
=MATCH($A1&$B1&$C1&$D1,$F$6:$F$15&$G$6:$G$15&$H$6:$H$15&$I$6:
$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))
ปองกนการบนทกขอมลซากบขอมลบรรทดเหนอขนไป
252
Copyright of www.ExcelExpertTraining.com
3 =ISTEXT(A5)
รบเฉพาะตวอกษร
4 =A2>A1
รบคาซงมากขน
5 =LEFT(A2)="a"
รบคาซงนาดวยตว a
6 =COUNTIF(A3,"A????")=1
รบคาซงนาดวยตว a และม 5 ตวอกษร
253
Copyright of www.ExcelExpertTraining.com
Array Formulas
สตร Array ตอไปนตองสรางขนโดยกดป ม Ctrl+Shift+Enter จะเกดเครองหมายวงเลบปก
กาปดหวทายสตร
1
=SUM(IF(List>0,List,FALSE))
=AVERAGE(IF(List>0,List,FALSE))
=MIN(IF(List>0,List,FALSE))
=MAX(IF(List>0,List,FALSE))
หาผลลพธเฉพาะคาบวกเทานน สามารถละไมตองใส
คาวา FALSE ในสตร
2
=SUM(IF(List<>0,List,FALSE))
=AVERAGE(IF(List<>0,List,FALSE))
=MIN(IF(List<>0,List,FALSE))
=MAX(IF(List<>0,List,FALSE))
หาผลลพธเฉพาะคาทไมเทากบ 0 เทานน สามารถละ
ไมตองใสคาวา FALSE ในสตร
3 =SUM(IF((List>=LLim)*(List<=ULim),List,FALSE))
254
Copyright of www.ExcelExpertTraining.com
=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 เปนขดจากดบน
4
=IF(A1=B1,1,0)
=SUM(IF(A1:A10=B1:B10,1,0))
=SUM((A2:A10="Phone")*(B2:B10="Smith")*C2:C10)
=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
255
Copyright of www.ExcelExpertTraining.com
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
256
Copyright of www.ExcelExpertTraining.com
11 =SUM((A1:A10>=5)*(A1:A10<=10)*A1:A10)
รวมคาระหวาง 5 ถง 10
12 =SUM((A1:A10>=5)*(A1:A10<=10))
นบจานวนเซลลทมคาระหวาง 5 ถง 10
13
สตรนบ คนคา
=SUM((F4:F23="yes")+(F4:F23="no"))
นบจานวนเซลล
ทมคาวา yes
หรอ no
=SUM(MOD(G4:G23,2)) นบจานวนเซลล
ทมเลขค
=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)) นบจานวนเซลล
แบบและ
257
Copyright of www.ExcelExpertTraining.com
=SUM((F4:F23="yes")+(F4:F23="no")) นบจานวนเซลล
แบบหรอ
สงเกตวาคานวณแบบหรอ ใชเครองหมายบวก สวนแบบและ ใช
เครองหมายคณ
14
=SUM(IF(MOD(ROW($A$1:$A$20),N)=0,$A$1:$A$20,0))
=SUM(IF(MOD(ROW($B$3:$B$22)-
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,"")
258
Copyright of www.ExcelExpertTraining.com
แยกขอมลทอยในตารางหนง ซงไมซากบขอมลในอก
ตารางออกมาแสดง
18 =AVERAGE(IF((A1:A60>=Low)*(A1:A60<=High),A1:A60))
เฉลยคาทอยระหวาง Low ถง High
19 =AVERAGE(LARGE(A1:A60,ROW(1:10)))
=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
259
Copyright of www.ExcelExpertTraining.com
22
สตร คนคา
=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 ของแตละชด
=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)
รวมคาเฉพาะคา
แบบหรอ
260
Copyright of www.ExcelExpertTraining.com
23 =OFFSET(List,MAX(ROW(RevList))-ROW(),0)
กลบลาดบคาในแนวตง
24 =OFFSET(RowList,0,MAX(COLUMN(RevRowList))-
COLUMN())
กลบลาดบคาในแนวนอน
RowList เปนตารางขอมลเดมตามแนวนอน,
RevRowList เปนตารางเกบคาทจดลาดบกลบขาง
25
=OFFSET(CList,COLUMN()-MIN(COLUMN(RList)),0)
=OFFSET(CList,MAX(COLUMN(RevRList))-
COLUMN(),0)
ตะแคงตารางแนวตง CList เปนแนวนอน RList
RevRList เปนตารางแนวตงทสลบคา
26
=OFFSET(RowList,0,ROW()-MIN(ROW(TXList)))
=OFFSET(RowList,0,MAX(ROW(TList))-ROW())
261
Copyright of www.ExcelExpertTraining.com
ตะแคงตารางแนวนอน RowList เปนแนวตง TXList
TList เปนตารางแนวนอนทสลบคา
27 =ADDRESS(MIN(IF(NumRange=MIN(NumRange),ROW(NumRange))),
COLUMN(NumRange),4)
Address ของคาทนอยทสดคาแรก
28
=ADDRESS(MAX(IF(NumRange=MIN(NumRange),ROW(NumRange)*
(NumRange<>""))),
COLUMN(NumRange),4)
Address ของคาทนอยทสดคาสดทาย
29 =ADDRESS(MIN(IF(NumRange=MAX(NumRange),ROW(NumRange))),
COLUMN(NumRange),4)
Address ของคาทมากทสดคาแรก
30 =ADDRESS(MAX(IF(NumRange=MAX(NumRange),ROW(NumRange)*
(NumRange<>""))),COLUMN(NumRange),4)
Address ของคาทมากทสดคาสดทาย
262
Copyright of www.ExcelExpertTraining.com
31 =INDEX(Rng,MATCH(MAX(COUNTIF(Rng,Rng)),COUNTIF(Rng,Rng),0))
คาทใชซามากทสด
32 =(MAX((DataRange2<>"")*ROW(DataRange2)))-
ROW(DataRange2)+1
นบจานวนบรรทดทมขอมล
33 =INDIRECT(ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
COLUMN(DataRange2),4))
คนคาสดทายลางสดในแถวตงแถวแรก
34 =INDIRECT(ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
COLUMN(DataRange2)+1,4))
คนคาสดทายลางสดในแถวตงแถวทสอง
3
5
=SUM(IF(FREQUENCY(IF(LEN(Range1)>0,MATCH(Range1,Range1,0),""
),
IF(LEN(Range1)>0,MATCH(Range1,Range1,0),""))>0,1))
นบจานวนคาทเปน Unique
263
Copyright of www.ExcelExpertTraining.com
36 =SUM(1/COUNTIF(A1:A10,A1:A10))
นบจานวนคาทเปน Unique กรณไมม blank
37 =SUM(N(FREQUENCY(A1:A10,A1:A10)>0))
นบจานวนคาทเปน Unique ใชกบตารางตวเลขหรอ
เซลลวาง
38
=ADDRESS(ROW(DataRange2),COLUMN(DataRange2),4)&":"&
ADDRESS(MAX((DataRange2<>"")*ROW(DataRange2)),
COLUMN(DataRange2)+COLUMNS(DataRange2)-1,4)
แสดง range ทมขอมล data เชน DataRange2 เปนตารางขอมล
H7:I25 โดยเซลล H7:I17 มตวเลขอย นอกจากนนเปนเซลลวาง
39
=RIGHT(A1,LEN(A1)-
MAX(ROW(INDIRECT("1:"&LEN(A1)))
*(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="
")))
แสดงคาสดทายขวาสด
40 =MID(A10,SMALL(IF(MID(" "&A10,ROW(INDIRECT
("1:"&LEN(A10)+1)),1)="
",ROW(INDIRECT("1:"&LEN(A10)+1))),
264
Copyright of www.ExcelExpertTraining.com
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)
แยกคาออกจากประโยค ซงมเครองหมายวรรคแยกแตละคา
41
=MID(A10,SMALL(IF(MID(" "&A10,ROW(INDIRECT
("1:"&LEN(A10)+1)),1)="
",ROW(INDIRECT("1:"&LEN(A10)+1))),
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
42 =SUM(IF(WEEKDAY(A2-1+ROW(INDIRECT("1:"&TRUNC(B2-
A2)+1)))=C2,1,0))
นบจานวนวนจนทรหรอวนอนๆ จากชวงเวลาทกาหนด
A2 เปนวนเรมตน
B2 เปนวนสนสด
C2 เปนเลขทของวนในสปดาห (1=Sunday,
265
Copyright of www.ExcelExpertTraining.com
2=Monday,...,7=Saturday)
43
=IF(ROW()-ROW(NoBlanksRange)+1>ROWS(BlanksRange)-
COUNTBLANK(BlanksRange),"",INDIRECT(ADDRESS(SMALL(
(IF(BlanksRange<>"",ROW(BlanksRange),ROW()+
ROWS(BlanksRange))),
ROW()-ROW(NoBlanksRange)+1),COLUMN(BlanksRange),4)))
ตดเซลลวางออกจากตาราง BlanksRange ใหเปนตารางใหม
NoBlanksRange เหลอเฉพาะเซลลทมคาเทานน
44 =SUM(IF(IF(B$5>=F6:F10,F6:F10-F5:F9,$B$5-F5:F9+1)>0,
IF(B$5>=F6:F10,F6:F10-F5:F9,$B$5-F5:F9+1),0)*G5:G9)
Progressive Pricing คานวณจานวนเงนทงหมด ใชหลก FIFO
สตรนมประโยชนอยางมาก ใชกบปญหาอนๆ เชน อตราภาษแบบ
กาวหนา การตด Stock แบบ FIFO
E F G H
4 Quantity UnitPrice
5 1 5
6 10 4
7 30 3
266
Copyright of www.ExcelExpertTraining.com
8 60 2
9 100 1
10 9999999
11
45
A B C D E
1 Part# ALPHA
portion
NUMERIC
portion
2 ab2 ab 2
{=LEFT(A2,
MIN(IF(ISNUMBER(
MID(A2,{1,2,3,4,5,6},1)
*1),{1,2,3,4,5,6},7))-
1)}
=RIGHT(A2,
LEN(A2) -
LEN(B2))*1
3 OP30 OP 30
{=LEFT(A6,
MIN(IF(ISNUMBER(
MID(A3,{1,2,3,4,5,6},1)
*1),{1,2,3,4,5,6},7))-
1)}
=RIGHT(A3,
LEN(A6) -
LEN(B6))*1
267
Copyright of www.ExcelExpertTraining.com
4 OP1221 OP 1221
{=LEFT(A8,
MIN(IF(ISNUMBER(
MID(A4,{1,2,3,4,5,6},1)
*1),{1,2,3,4,5,6},7))-
1)}
=RIGHT(A4,
LEN(A8) -
LEN(B8))*1
แยกคาทเปนตวอกษรออกจากตวเลข
46
=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"))
=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"))
ตะแคงตารางเปนแนวตง
268
Copyright of www.ExcelExpertTraining.com
MyRange เปนตารางขอมล มขนาด M rows และ N
columns
CxRV เปนตารางผลลพธ
47
=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)
=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
49
=MMULT(N(ROW(INDIRECT("1:"&ROWS(A)))=TRANSPOSE(
ROWS(A)+1-ROW(INDIRECT("1:"&ROWS(A))))),A)
=MMULT(A,N(ROW(INDIRECT("1:"&COLUMNS(A)))=TRANSPOSE
269
Copyright of www.ExcelExpertTraining.com
(COLUMNS(A)+1-ROW(INDIRECT("1:"&COLUMNS(A))))))
กลบขางตาราง
50
=OR(A1=2,A1=3,ISNA(MATCH(TRUE,A1/ROW(INDIRECT(
"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
52
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.);
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,
270
Copyright of www.ExcelExpertTraining.com
the #VALUE error will appear in E1:E3.
solve a set of simultaneous equations
53
=SUM(N(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),
MID(A1,ROW(INDIRECT
("1:"&LEN(A1))),1),0)=ROW(INDIRECT("1:"&LEN(A1)))))=LEN(A1)
ตรวจสอบวาตวอกษรในเซลลมซากนหรอไม
54 =SUM(VALUE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*10
^(ROW(INDIRECT ("1:"&LEN(A1)))-1))
กลบขางหลกตวเลข
55
A1:D1 = {1,2,3,4}
A5:D5 = {5,6,7,5}
=SUM({1,2,3,4}*{5,7,6,5}) = 57
=SUM(A1:D1*INDEX(A5:D5,5-COLUMN(A5:D5)))
สตรเพยนโดยไมทราบสาเหต เมอสรางสตรสดทายลงในเซลลเดยวจะ
คานวณผด ตองสรางสตรลงในเซลล 2 เซลล
56 =ROWS(iRng)-
ROW(OFFSET($A$1,,,ROWS(iRng),)).
271
Copyright of www.ExcelExpertTraining.com
กลบตาแหนงเซลล
57
=IF(T(OFFSET(iRng,ROWS(iRng)-
ROW(OFFSET($A$1,,,ROWS(iRng),)),,,))="",N
(OFFSET(iRng,ROWS(iRng)-
ROW(OFFSET($A$1,,,ROWS(iRng),)),,,)),T(OFFSET
(iRng,ROWS(iRng)-ROW(OFFSET($A$1,,,ROWS(iRng),)),,,)))
กลบตารางแนวตง
58 =LARGE(IF(MATCH(Rng,Rng,0)=ROW(Rng)-
MIN(ROW(Rng))+1,Rng,""),N)
Nth largest unique value in a column range
59 =SUM(N(FREQUENCY(IF(lookupRange="specifStr",
MATCH(colRange,colRange,0)), MATCH(colRange,colRange,0))0))
นบจานวนขอมล unique ซงมตวอกษรตามกาหนด
60
=SMALL(IF(MATCH(TheList,TheList,0)=ROW(TheList),
ROW(TheList),""),
ROW(INDIRECT("1:"&SUM(N(MATCH(TheList,TheList,0)=
ROW(TheList))))))-1
แยกขอมล Unique item ออกมา
272
Copyright of www.ExcelExpertTraining.com
61 =IF(SUBTOTAL(3,OFFSET(Rge,ROW(Rge)-
MIN(ROW(Rge)),,1)),Rge,"")
create an array of filtered items in a column list.
62
=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),
"", 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)
สรางปฏทนของเดอน
63 =SUM((WEEKDAY(DATE($B$2,$A3,ROW(INDIRECT("1:"&
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))
จานวนเซลลทเปนตวอกษร
273
Copyright of www.ExcelExpertTraining.com
66 =SUM(IF(ISLOGICAL(data),1))
จานวนเซลลทเปน logical
67 =SUM(IF(EXACT(data,text),1))
นบจานวนเซลล ซงม text ตรงกน
68 =SUM(IF(LEN(data)-
LEN(SUBSTITUTE(data,text,""))>0,1))
นบจานวนเซลล ซงม text ตรงกน แมบางสวน
69
=(SUM(LEN(data))-
SUM(LEN(SUBSTITUTE(UPPER(data),UPPER(text),""))))/LEN(text)
=(SUM(LEN(data))-SUM(LEN(SUBSTITUTE(data,text,""))))/LEN(text)
นบจานวนเซลล ซงม text ตรงกน ทงหมดหรอแมบางสวน
70 =INDIRECT(ADDRESS(ROW(Data)+MATCH(MIN(ABS(Target-
Data)),ABS(Target-Data),0)-1,COLUMN(Data)+ColOffset))
Closest Match
274
Copyright of www.ExcelExpertTraining.com
71 =SUM((MATCH(Grades,{"F","D","C","B","A"},0)-
1)*CreditHours)/SUM(CreditHours)
GPA
72 =ADDRESS(ROW(Data)+MATCH(Target,Data,0)-
1,COLUMN(Data))
ตาแหนงเซลลทมคาอยในตารางแนวตง
73 =ADDRESS(ROW(Data),COLUMN(Data)+MATCH(Target,Data,0)-
1)
ตาแหนงเซลลทมคาอยในตารางแนวตง
74 =INDEX(Code,
MATCH(Make&Model,Range1&Range2,0))
2 value lookup
75
=INDEX(Data, SMALL(IF(Data>0,
ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data)))))
IF(ISERR( SMALL(IF(Data>0,
ROW(INDIRECT("1:"&ROWS(Data)))),
275
Copyright of www.ExcelExpertTraining.com
ROW(INDIRECT("1:"&ROWS(Data))))), "", INDEX(Data,
SMALL(IF(Data>0, ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data))))))
สรปคาบวก
76
=IF(ISERR(SMALL(IF(Data<>"",ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data))))),
"",INDEX(Data,SMALL(IF(Data<>"",
ROW(INDIRECT("1:"&ROWS(Data)))),
ROW(INDIRECT("1:"&ROWS(Data))))))
สรปคาทไมใชเซลลวาง
77
=IF(INDEX(Data,ROWS(Data) -
ROW(INDIRECT("1:"&ROWS(Data)))+1)="", "",
INDEX(Data,ROWS(Data) -
ROW(INDIRECT("1:"&ROWS(Data)))+1))
กลบตาแหนงคาในตารางแนวตง
78
=LARGE(Data,ROW(INDIRECT("1:"&ROWS(Data))))
=IF( ISERR( LARGE( Data, ROW( INDIRECT("1:"&ROWS(Data))))),
"", LARGE( Data, ROW( INDIRECT("1:"&ROWS(Data)))))
เรยงลาดบตวเลข จากมากไปนอย
276
Copyright of www.ExcelExpertTraining.com
79
=INDEX( data, SMALL( IF( MATCH(data,data,0) =
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 ลาดบแรก
81 =IF(OR(TheName=NameList),"Found","Not
Found")
ตรวจสอบวา มคา TheName อยใน NameList
82 =SUM(IF(MyData=YourData,0,1))
นบจานวนเซลลทมคาไมเทากน เมอเทยบ 2 ตาราง
83 =ADDRESS(MIN(IF(Data=MAX(Data),ROW(Data),
"")),COLUMN(Data))
ตาแหนงเซลลซงมคาสงสด
84 =MIN(IF(Data=MAX(Data),ROW(Data), ""))
277
Copyright of www.ExcelExpertTraining.com
เลขท 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
90 =SUM(VALUE(MID(ABS(A1),ROW(INDIRECT
("1:"&LEN(ABS(A1)))),1)))
278
Copyright of www.ExcelExpertTraining.com
รวมตวเลขทกหลกในคาจานวนเตม
91
=MID(A4,MATCH(0,(ISERROR(MID(A4,
ROW(INDIRECT("1:"&LEN(A4))),1)*1)*1),0),LEN(A4)-
SUM((ISERROR(MID(A4, ROW(INDIRECT(
"1:"&LEN(A4))),1)*1)*1)))
แยกเฉพาะสวนตวเลขออกจากตวอกษร
92 =INDEX(Data,MATCH(SMALL(ABS(Target-
Data),1),ABS(Target-Data),0))
คาทใกลเคยงทสดกบคาทตองการ
93 =INDIRECT(ADDRESS(MAX((ROW(4:503)*
(A4:A503<>""))),COLUMN(A:A)))
คาลางสดใน column A แมจะไมไดอยตดกน
94 =INDIRECT(ADDRESS(6,(MAX((TRANSPOSE(
ROW(1:256))*(6:6<>""))))))
คาขวาสดใน row 6 แมจะไมไดอยตดกน
279
Copyright of www.ExcelExpertTraining.com
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
97 =LEN(A1)+1-MATCH(" ",MID(A1,LEN(A1)+1-
ROW(INDIRECT("1:"&LEN(A1))),1),0)
ตาแหนง space ขวาสด
98
=SUM((SUBTOTAL(9, INDIRECT(ADDRESS( ROW(E3),COLUMN(E3)
)&":"& ADDRESS( ROW(E3),
ROW(INDIRECT(COLUMN(E3)&":"&COLUMN(AI3))) )))<=B3)*1)+1
จานวนเซลล ซงยอดรวม Cumulative Sum คาในเซลล C3:G3 มคา
มากกวาหรอเทากบ คาในเซลล B3
99 =INDEX(คาทงหมด,SMALL(IF(คาทงหมด<0,ลาดบตวเลข),ลาดบ
ตวเลข),1)
คาตดลบ
280
Copyright of www.ExcelExpertTraining.com
100
=INDEX(Product, SMALL(IF((Type=YourType) *
(Account=YourAcct) * (Date>=YourDate) * ROW(INDIRECT("1:"&
ROWS(Product)))<>0, (Type=YourType) * (Account=YourAcct) *
(Date>=YourDate) * ROW(INDIRECT("1:"&ROWS(Product)))),
ROW(INDIRECT("1:"&ROWS(Product)))),1)
แยกขอมลซงมประเภท เลขทบญช วนท ตามตองการ
101
=INDEX(Type, LARGE(IF( NOT(ISBLANK(Type)),
MATCH(Type,Type,0)) * (IF( NOT(ISBLANK(Type)),
MATCH(Type,Type,0))=ROW( INDIRECT("1:"&ROWS(Type)))),
ROW(INDIRECT("1:"&SUM( IF( NOT(ISBLANK(Type)),
1/COUNTIF(Type,Type))))) ) )
Unique List
102 =INDEX(Product, MATCH( MAX(COUNTIF(Product,Product)),
COUNTIF(Product,Product), 0),1)
คาซงใชบอยทสด
281
Copyright of www.ExcelExpertTraining.com
การกาหนดขอบเขตตารางแบบยดหยน
งานทสรางขนดวย 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 ใหยงยาก
ตวอยา
ตวอยาง
ดานขาง
B3:B5
ในเซลล
C3:G7
เปนตาร
แนวคขน
แทนทจ
Left ขย
มเพมขน
ดงน
1.
2.
3.
าง
งนเปนตารา
งซายของตา
ดานซายขอ
ล C3 สรางส
ยอมพบวาส
รางทอยในข
นานของ To
จะดดแปลง
ยายขอบเขต
น ใหดดแปล
คลกเลอกเซ
เลอกคาสง
แกตาแหนง
Cop
งสตรคณซง
าราง โดยใช
องตารางวา
สตร =Top*
สตร =Top*
ขอบเขตแนว
op กบ Left
Top กบ Le
ตใหมขนาดต
ลงตาแหนง
ซลล C3
Formulas
งอางองของ
pyright of ww
งนาตวเลข 2
ชวธตงชอเซ
Left
*Left แลวเม
*Left สามาร
วคขนานตดก
ใหคาตอบเ
eft ใหเปน D
ตามคาตวเล
อางองของ
> Name M
Top =C$2
282
ww.ExcelExp
2, 3, 4, 5 บ
ซลล C2:F2
มอ copy เซ
รถคานวณห
กนของ Top
เปน error ว
Dynamic Ra
ลขบนหวตาร
Top กบ Le
Manger
2 และ Left
pertTraining.c
บนหวตาราง
บนหวตารา
ซลล C3 ไป
าผลคณไดถ
p และ Left
วา #VALUE
ange ดวยส
รางและตวเล
eft ใหเปน D
=$B3
com
งมาคณกบต
างวา Top แ
paste ลงไป
ถกตองเฉพา
เทานน สวน
E!
สตร Offset
ลขขางซายข
Dynamic Ce
ตวเลข 10, 2
และตงชอเซ
ปในเซลลตง
าะพนท C3
นสตรในเซล
เพอทาให T
ของตารางท
ell โดยมขน
20, 30
ลล
งแต
:F5 ซง
ลลนอก
Top กบ
ทอาจจะ
นตอน
เมอ To
ยอมหม
ชทโดย
หากตอ
คณ B2
ตาแหน
บางสวน
ตวอยา
ในกรณ
ตวเลขบ
p =C$2 จะ
มายถงทกเซ
ไมจาเปนต
งการยายตา
:G7 แตตอง
งอางองของ
นของ หากค
าง
ทตองการเป
บนหวตาราง
Cop
ะทาให Exce
ซลลใน colu
องกาหนดข
ารางสตรคณ
งเลอก Cut
ง Top ทงแ
ครอบคลมพน
ปลยนส colu
งทเปนเลขค
pyright of ww
el ถอวาทกเ
mn B มชอว
ขอบเขตตารา
ณนไปยง row
row 2:7 ไป
นว row ท 2
นททง row
umn ในตาร
ค
283
ww.ExcelExp
เซลลทอยใน
วา Left ทาใ
างของ Top
w อน ไมสา
ปวางท row
2 ไปพรอมก
ท 2 ทงหม
รางสตรคณใ
pertTraining.c
น row 2 มช
ใหสามารถใ
p กบ Left ต
ามารถใชวธ
w อน หรอใช
กน เพราะ T
มด
ใหมสเฉพาะ
com
ชอวา Top แ
ใชสตร Top
ตามขนาดขอ
Cut เฉพาะ
ชวธ Insert r
Top มไดหม
ะแนวของ co
และเมอ Lef
*Left ไดทก
อมลอกตอไป
ะพนทตาราง
row เพอขย
ายถงแคพน
olumn ทอย
ft =$B3
กทใน
ป
งสตร
ยบ
นท
ยใต
ใหเลอก
แบบ Us
ขอใหสง
คขนาน
ใส $ หน
ซงไดแ
หารดวย
เซลลนน
ซงเปนเ
ประโยช
Format
ใชคาสง
Validat
กพนทตวเลข
se a formu
=MOD(C$
งเกตตาแหน
กบพนท C3
นาตว C เพอ
กเซลล C2,
ยเลข 2 แลว
นเปนเลขค
เลขค
ชนของวธทา
tting กาหน
งนกบทละเซ
tion ทกาหน
Cop
ขผลคณตงแ
ula to deter
2,2)=1
นงเซลล C$
3:G7 ทเลอก
อควบคมให
, D2, E2, F
ว หากเหลอ
ทาให Cond
าใหเซลล C
ดเงอนไขให
ซลลหรอทล
นด Allow แ
pyright of ww
แต C3:G7 แ
rmine whic
$2 ในสตรนว
กไว และตอ
Excel นาต
2, และ G2
เศษเทากบ
ditional Fo
C$2 เปน Dy
หกบทงตารา
ละ column
บบ Custom
284
ww.ExcelExp
แลวใชคาสง
ch cells to f
วาเปนเซลล
องกาหนดให
ตาแหนงเซล
นนคอตวเล
1 ยอมแสด
ormatting เป
ynamic Cell
างไดพรอมก
และยงสาม
m โดยใชสต
pertTraining.c
ง Home >
format แลว
ลแรกบนหวต
หใสเครองห
ลลถดไปใน
ลข 2, 3, 4,
ดงวาเลขในเ
ปลยนสเซล
l จะชวยทาใ
กนในทเดยว
ารถนาหลก
ตรตรวจสอบ
com
Conditiona
วใชสตรตอไ
ตารางดานบ
มาย $ ไวหน
row ท 2 ม
5, 6 ตามลา
เซลลบนหว
ลลผลคณทอ
ใหใชคาสง
ว โดยไมจา
การนไปใชก
การบนทกค
al Formatti
ไปน
บนซงอยในแ
นาเลข 2 แ
าใชในการค
าดบ ซงเมอ
วตารางดานบ
อยใตเลข 3
Conditiona
าเปนตองเสย
กบคาสง Da
คาไดเชนกน
ing
แนว
ตไมได
คานวณ
อนามา
บน
และ 5
al
ยเวลา
ata
น
วธใช
ตามปก
Insert/
พบวาตา
เฉพาะจ
ทกาหน
Excel ท
ทง colu
ใน Exce
2010 ไ
Table ห
เพมใหโ
Format
กอนทจ
ภาพนไว
(ตามภา
พสจนว
ตามปรม
เมอตงช
> Table
table h
Table ก
ตเมอสรางส
/Delete ทาใ
าแหนงอางอ
จานวนรายก
นดไวในสตร
ทวไปจงมกแ
umn เผอไว
el 2003 แล
ไดตงชอคาส
หรอ Home
โดยอตโนมต
tting, Data
จะใชคาสง T
วกอน โปรด
าพนคอ MyD
าไมจาเปนต
มาณขอมลท
ชอ Range N
e โดย Exce
has headers
Cop
าหนดขอ
สตรอางองก
ใหเซลลหรอ
องทกาหนด
ารของขอม
มไดขยายห
แกไขโดยสร
ว สงผลใหแ
ละรนกอนนน
สงใหมเปน T
> Format
ต ชวยทาให
Validation
Table ควรต
ดสงเกตวา R
Data, Id, N
ตองตงชอไว
ทเพมขน
Name ไวกอ
el จะเลอก =
s ไวดวยแล
pyright of ww
บเขตตาร
บตาแหนงเ
อตารางนนเ
ดไวในสตรม
ลในตารางน
หรอลดขอบ
รางสตรทมข
ฟมนนมขนา
น มคาสง Da
Table (เปน
as Table ท
หตาแหนงอา
n, หรอแมแต
งชอ Range
Range Nam
Name, Amo
วกอนกยงได
อนเรยบรอย
=$B$2:$E$
ว เมอกดป ม
285
ww.ExcelExp
รางโดยอ
ซลลหรอตา
เปลยนตาแห
การปรบตาแ
นนใหมจานว
เขตตารางต
ขอบเขตตาร
าดใหญและ
ata > List ไ
นคาสงทตาง
ทาให Excel
างองทกาห
ตใน Pivot T
e Name ให
me แตละชอ
ount และสา
ด) จงจะทาใ
ยแลว ใหคล
$3 เปนขอบ
ม OK จะเกด
pertTraining.c
อตโนมต
าแหนงตารา
หนงหรอมขน
แหนงตามให
วนรายการเพ
ตามปรมาณข
รางเผอไว บ
ะคานวณชาล
ไวใชชวยแก
จาก Data T
l ปรบขอบเข
นดไวในสต
Table ปรบข
หกบตารางฐ
อตองมขนาด
าเหตทไมตง
ให Table ข
กลงไปในต
บเขตตารางใ
ด Range Na
com
าง จากนนเม
นาดพนทตา
หเอง แตถา
พมลด จะพบ
ขอมลทมอย
บางคนถงกบ
ลงผดปกต
กปญหาดงก
Table) โดย
ขตตารางตา
ร, Format,
ขนาดตามให
านขอมลทา
ดอยางนอย
งชอใหกบเซ
ขยายขอบเข
ารางฐานขอ
ใหเองพรอม
ame ชอ Ta
มอมการยาย
างไปจากเด
ามการเปลยน
บวาตาแหนง
ยแตอยางใด
บใชตาแหนง
กลาว สวนใน
ยสง Insert
ามปรมาณข
Condition
หทนท
างดานซายม
2 เซลลขน
ซลลของ Co
ขตของชอตา
อมลแลวสง
มกบกาชอง
able2 มตาแ
ยหรอ
ม จะ
นแปลง
งอางอง
ด ผใช
งอางอง
น Excel
>
อมลท
al
มอของ
ไป
ost เพอ
าราง
Insert
My
แหนง
อางอง
จานวนค
เมอบนท
ขยายตา
Conditi
แมคาสง
ฐานขอม
แบบพเศ
=SUM(
ใหสตรท
สตร =S
การยกเ
Conver
=SUM(
จงขอแน
Structu
นอกจาก
เดยว จง
C3:C4,
เซลลวา
บนทกข
ปรมาณ
=$B$3:$E
ครงทใชคาส
ทกขอมลเพ
ามใหอยางอ
ional Form
ง Table จะ
มลทดเทาน
ศษทเรยกวา
(Table2[Co
ทเคยใช Str
SUM(Table
เลก Table ท
rt to range
(Sheet1!$E
นะนาใหใช
ured Refere
กนโปรดสงเ
งจาเปนตอง
และ D3:D
างนอาจทาง
ขอมลไวตงแ
ณขอมลทมจร
Cop
$3 สรางขน
สง Table)
พมขน จะพบ
อตโนมต ชว
atting, Dat
มประโยชน
นน และผใชง
า Structure
ost]) จะคนค
ructured R
e2[Cost]) แ
ทาไดงายๆโ
แตถาเปลย
E$3:$E$7)
Range Nam
ence
เกตวา ในตว
งตงชอ Ran
D4 ซงเผอไว
งานผดพลาด
แต 2 รายกา
รงโดยไมตอ
pyright of ww
นโดยอตโนม
บวาชอ Rang
วยทาใหตาแ
ta Validatio
อยางมาก แ
งานควรทรา
ed Referen
คาเปนยอดร
Reference แ
แกกลบมาเป
โดยคลกขวา
ยนใจสง Ins
ไมเปลยนก
me ทตงชอ
วอยางนกอน
nge Name ช
วถง row 4 ท
ดกได ดงนน
ารขนไป และ
องเผอเซลล
286
ww.ExcelExp
มต (ชอ Tab
ge Name ท
แหนงอางอง
on, หรอแม
แตกเหมาะก
าบเพมเตมอ
nce มาใชแท
รวมของ Cos
แกกลบมาใช
ปน =SUM(S
าลงไปในตา
sert > Tab
ลบไปเปน =
อขนมาเองไว
นการใชคาส
ชอ Id, Nam
ทเปนเซลลว
นเพอปองกน
ะตงชอ Ran
ลวางไวดวย
pertTraining.c
ble2 น จะม
ทงหมดมขอ
งทกาหนดไ
แตใน Pivot
บตารางเกบ
อกวา คาสงน
ทนตาแหนง
st หาตอมา
ชตาแหนงอา
Sheet1!$E$
ารางทเปน T
le ขนมาใหม
=SUM(Tab
วกอน จะยด
สง Table มข
me, และ Am
วาง ทาใหส
นปญหาน ค
nge Name
com
เลขตอทาย
บเขตของต
วในสตร, Fo
t Table ปรบ
บขอมลซงบ
นจะทาใหเก
อางองแบบ
มการสงยกเ
างองตามปก
$3:$E$7)
Table แลวส
ม จะพบวาส
ble2[Cost])
ดหยนและถา
ขอมลบนทก
mount ใหก
สตรทใชตาแ
ควรใชคาสง
ใหกาหนดข
เพมขนทละ
าแหนงอาง
ormat,
บขนาดตาม
นทกไวเปน
กดตาแหนงอ
ปกต เชน
เลก Table
กตใหเอง ท
สง Table >
สตร
แตอยางใด
าวรกวาการใ
กไวเพยงรา
กบเซลล B3
แหนงอางอง
Table กบต
ขอบเขตไวเท
ะ 1 ตาม
อง
ใหทนท
อางอง
จะทา
ทาให
>
ด ดงนน
ใช
ยการ
:B4,
งรวมถง
ตารางท
ทากบ
อยางไร
ตารางย
ตามจาน
ขอบเขต
ลดลง
วธใชส
ตามปก
ตารางไ
Range
ทาใหส
ตาราง ใ
สมมตวา
ฐานขอม
(หรอตา
เมอตอง
แลวพม
ใชสตร
รกตามหากม
ยงคงมขนาด
นวนรายการ
ตตารางตาม
สตร IF ห
ตในสตร VL
ไดเพยงตารา
Name ชอ
ตร VLooku
ใหใชสตร IF
า มตารางฐา
มลของแตล
างชทกน) แ
งการคนหาข
พรหสลกคา
IF(Class="
Cop
มการลบเฉพ
ดคงเดม ทง
ทลดลงแตอ
มปรมาณขอม
หรอ Choo
Lookup, Ma
างเดยวในวง
MyData เป
up หรอสตรฐ
F หรอ Choo
านขอมลขอ
ละกลมมหนา
แลวตงชอตา
ขอมล ใหพม
าลงไปในเซ
"A", ClassA
pyright of ww
พาะตวขอมล
Range Na
อยางใด จงเ
มลทเพมโด
ose กาหน
atch, Offse
งเลบของสต
ปนตาแหนงต
ฐานขอมลส
ose ซอนเข
องลกคาหลา
าตาตารางเห
ารางวา Clas
มพชอ Class
ซลล B14 จะ
A, IF(Class=
287
ww.ExcelExp
ลทงโดยไมไ
me และตา
เปนขอแมส
ดยอตโนมต
นดขอบเข
et, หรอสตร
ตร เชน สตร
ตารางฐานข
ตรใดๆสตรเ
ขาไปในสวน
ายๆกลมตาม
หมอนๆกน เ
ssA, ClassB
s A, B, หรอ
ะสามารถคน
="B", Class
pertTraining.c
ไดสง Delet
แหนงอางอ
าคญของกา
แตไมไดลด
ขตตาราง
ดานฐานขอ
ร =VLOOKU
อมลทตองก
เดยวสามารถ
นของ MyDa
มเกรดของล
เพยงแตจดเ
B, และ Clas
อ C ลงไปใน
นหาขอมลขอ
sB, ClassC
com
te Row จะพ
งทใชในสต
ารใช Table
ดขนาดตามป
มลใดๆ สาม
UP($H$3,M
การคนหาคา
ถคนหาขอม
ta
ลกคา ซงลก
เกบแยกตาร
sC
นเซลล B10
อง Name แ
) ) ซอนลงไ
พบวาขอบเข
ตร ไมไดลดข
วาจะชวยข
ปรมาณขอม
มารถรบตาแ
MyData,2,0
าตอบ ถาตอ
มลจากหลาก
กษณะของต
รางไวตางพ
0 ซงตงชอว
และ Amoun
ไปในสตร
ขต
ขนาด
ขยาย
มลท
แหนง
0) ใช
องการ
กหลาย
าราง
นท
า Class
nt โดย
VLooku
กลายเป
ในเซลล
=VLOO
ในเซลล
=VLOO
หากไมต
คนหาข
ตวอกษ
เกดประ
การใชส
ขนมาได
ใชตวเล
เมอตอง
Class แ
โดยใชส
สามารถ
ในเซลล
=VLOO
up เพอทาให
ปนสตรดงน
ล C14
OKUP( $B$
ล D14
OKUP( $B$
ตองการเสย
อมลไดทนท
ษรทอยซายส
ะโยชนชวยล
สตร IF เพอ
ดยากและกล
ลขทตาราง 1
งการคนหาข
แลวพมพรห
สตร CHOO
ถเลอกไดวา
ล C14
OKUP( $B$
Cop
หสามารถเล
$14, IF(Cla
$14, IF(Cla
ยเวลาพมพช
ท ใหใชสตร
สดของรหสม
ลดขนตอนใน
เลอกพนทต
ลายเปนสตร
1, 2, หรอ 3
ขอมล ใหพม
สลกคาลงไ
SE(Class,C
จะหาขอมล
$14, CHOO
pyright of ww
ลอกไดวาจะ
ass="A", C
ass="A", C
ชอ Class เพ
ร =Left(C14
มาใชเปนชอ
นการใชงาน
ตารางหลาย
รยาวขนเรอ
3 มาใชเปนเ
มพเลขท Cl
ปในเซลล B
Class1,Class
จากตารางใ
OSE(Class,
288
ww.ExcelExp
ะหาขอมลจา
ClassA, IF(C
ClassA, IF(C
พอเพมความ
4) สรางลงไ
อ Class ดงน
นอยางมาก
ๆแหงมาใช
ยๆ จงแนะน
เงอนไขแทน
ass 1, 2, ห
B14 จะสาม
s2,Class3)
ใดตามเงอน
,Class1,Cla
pertTraining.c
ากตารางใดต
Class="B",
Class="B",
มสะดวกใหใ
ไปในเซลล
นนการตงชอ
จะกลายเป
นาใหใหใชส
นชอตาราง A
หรอ 3 ลงไป
ารถคนหาข
ซอนลงไปใ
นไขเลขท Cl
ss2,Class3
com
ตามเงอนไข
ClassB, Cl
ClassB, Cl
ชรหสในเซล
B10 ซงตงช
อรหสใหมคว
นสตร IF ซ
สตร Choose
A, B, หรอ C
ปในเซลล B
อมลของ Na
ในสตร VLo
lass กลายเป
3), 2, 0)
ขชอ Class
lassC) ), 2
lassC) ), 3
ลล B14 เล
ชอวา Class
วามหมายจะ
ซอนกน ทาให
e แทน IF แ
C
10 ซงตงชอ
ame และ A
ookup เพอท
ปนสตรดงน
2, 0)
3, 0)
อก
s เพอดง
ะทาให
หสราง
แตตอง
อวา
Amount
ทาให
น
ในเซลล
=VLOO
หากไมต
คนหาข
ตามภาพ
เลขรหส
Match
ล D14
OKUP( $B$
ตองการเสย
อมลไดทนท
พตอไปนคอ
ส Id เฉพาะ
=VLOOKU
Cop
$14, CHOO
ยเวลาพมพเ
ท ตองสราง
อเซลล F10
รหสตวแรกข
P(B14,Clas
pyright of ww
OSE(Class,
ลขท Class
ตารางสรปค
:G12 โดยต
ของแตละก
ssTable,2)
289
ww.ExcelExp
,Class1,Cla
เพอเพมคว
ความสมพน
ตงชอวา Cla
ลม แลวใหใ
สรางลงไปใ
pertTraining.c
ss2,Class3
วามสะดวกให
ธระหวางรห
assTable ซง
ใชสตร VLo
ในเซลล B1
com
3), 3, 0)
หใชรหสใน
หสกบเลขท
งม column
okup แบบ
10 ซงมชอว
เซลล B14
Class ขนม
ซายสดเรย
Approachi
วา Class
เลอก
าใชงาน
ยงลาดบ
ing
วธใชส
สตร Ind
ทตองก
ในตาแห
กาหนด
เชน =I
ตารางช
สตร Ind
จาเปนต
สตรในเ
=INDE
•
•
•
•
•
สตร Inde
dex เปนสต
าร เชน ตาม
หนง row ท
ตาแหนง ro
ndex(Cust
ชอ CustId1
dex ยงมโค
ตองอาศยสต
เซลล C11 ใ
EX( (Class1
ในสตรน พน
TrNum เปน
=MATCH(B
เลข 2 คอ เ
Class เปนเ
=VLOOKU
CHOOSE(C
ตามเลขทข
Cop
ex กาหน
ตรทาหนาทด
มภาพตวอย
3 ตดกบ c
ow หรอ col
tId1,3) จะด
(ทงน Cust
ครงสรางสตร
ตร If หรอ C
ใชหาชอลก
1,Class2,Cl
นทตารางสว
นเลขทตาแห
B11, CHOO
เลขชตาแหน
ลขทตาราง
P(B11, Cla
Class, Cust
ของ Class
pyright of ww
นดขอบเข
ดงคาออกมา
างตอไปน =
olumn ท 2
กใหกาหนด
ดงรหส a003
tId1 มลกษ
รแบบพเศษ
Choose เขา
คา g ตามรห
ass3), TrN
วนของ (Cla
หนงรายการ
OSE(Class,
นง column
ซงหามาจา
assTable, 2
tId1,CustId
290
ww.ExcelExp
ตตาราง
าจากตาราง
=Index(Cla
2 ภายในพน
ดเลขตาแห
3 ออกมาเพ
ษณะเปน Sin
ซงชวยเลอ
ามาชวย เชน
หส b002 ท
Num, 2, Cl
ass1,Class2
รของรหส b
CustId1,C
ของชอลก
ก ClassTab
2)
d2,CustId3
pertTraining.c
ทกาหนดตา
ass1,3,2) จ
ทตารางชอ
นงรายการท
พราะรหสนมต
ngle Colum
อกตาแหนงต
น
ทพมพลงไป
ass)
2,Class3) เป
b002 ทพมพ
CustId2,Cus
คา
ble ดวยสตร
) ทาหนาทเ
com
ามตาแหนง
จะดงชอ c อ
Class1 หร
ทตองการแท
ตาแหนงเปน
mn จากเซลล
ตารางทตอง
ในเซลล B1
ปน 3 ตาราง
พไวในเซลล
stId3), 0)
ร
เลอกตาแหน
row และ c
ออกมาใหเพ
รอถาไมตอง
ทนเพยงคาเ
นลาดบท 3
ล B3:B7)
งการไดทนท
11
งทตองการเ
B11 มาจา
นงตารางรห
column
พราะอย
การ
เดยว
ใน
ทโดยไม
เลอก
กสตร
หสลกคา
นอกจาก
หรอแนว
=Index
จะไดคา
=Index
จะไดคา
วธใชส
สตร VL
ตารางซ
ชวยทาใ
แตจะไม
สวนการ
ตาแหน
สตร Of
และสาม
แตมขอ
รวมกบแ
จากภาพ
กนถาสรางส
วตงไดอกด
x(Class1, 0
าทก row ข
x(Class1, 3
าทก colum
สตร Offs
Lookup และ
ซงกาหนดขอ
ใหสตร VLo
มรบรขอบเข
รใชคาสง Ta
งอางองตาม
ffset เปนสต
มารถนาไปใ
จากดวา หา
แฟมปลายท
พนเมอตองก
Cop
สตร Index
วยโดยกาห
0, 3)
อง column
3, 0)
n ของ row
set กาหน
ะสตร Index
อบเขตไวตา
ookup และส
ขตใหมหากภ
able เหมาะ
มจานวนราย
ตรทชวยกาห
ใชกบตาราง
ากใชสตร O
ทางทใชสตร
การขอบเขต
pyright of ww
แบบ Array
นดเลขท ro
n ท 3 คอ ยอ
w ท 3 คอ รห
นดขอบเข
x มลกษณะ
ายตวอยแลว
สตร Index
ภายหลงมกา
ะสาหรบตาร
ยการ แตจะไ
หนดขอบเขต
ทกประเภท
Offset ดงขอ
รนดวยเสมอ
ตตารางตงแ
291
ww.ExcelExp
y จะทาหนาท
ow หรอ col
อด Amoun
หส a003 =
ขตตารางแ
การใชงานเ
ว แมจะนาส
สามารถเลอ
ารเพมลดจา
รางฐานขอม
ไมลดขนาดเ
ตตารางใหส
โดยไมจาก
อมลขามแฟม
อ
ต B3:D7 ให
pertTraining.c
ทหาตาแหน
umn ใหเท
nt ={10;20
{"a003","c
แบบยดห
หมอนกนปร
สตร IF หรอ
อกพนทตาร
านวนรายกา
ลซงมลกษณ
เวนแตวาผใ
สามารถเพม
กดวาจะตอง
มมาใช จะต
หใชสตร =O
com
นงตารางทงห
ากบ 0 เชน
;30;40;50}
c",30}
ยน (Dyn
ระการหนง ค
Choose เข
างจากตางพ
ร
ณะถกตองแ
ใชจะสง dele
ลดขนาดตา
เปนตารางฐ
ตองเปดแฟม
OFFSET($B
หมดตามแน
} หรอ
namic Ra
คอ ใชกบพน
ขามาชวยกเป
พนทกนมาใ
และจะชวยข
ete row
ามจานวนรา
ฐานขอมลเท
มตนทางขนม
B$3,0,0,5,3
นวนอน
ange)
นท
ปนเพยง
ใชงาน
ยาย
ยการ
ทานน
มาใช
3)
292
Copyright of www.ExcelExpertTraining.com
• $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 มขอมลอนซงไมเกยวของบนทกอย
293
Copyright of www.ExcelExpertTraining.com
เมอหาความสงของตารางดวยสตรไดแลว จากเดมทเปนสตร =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 แสดงคาหรอชตาแหนงไดถกตอง ใหตรวจสอบตาแหนงอางองทก
ตาแหนงในสตรวาเปน Absolute Reference เชน $B$3 และ $B:$B กอน จากนนจงนาสตรน
ไปตงชอใหเปน Formula Name โดยใชคาสง Formulas > Define Name ตอมาเมอตองการ
สรางสตร VLookup, Match, หรอ Index ใหนาชอ Formula Name ทตงขนนไปใชแบบ
เดยวกบการใชชอ Range Name โดยทวไป
ถาตองก
row, co
•
•
•
•
•
•
•
•
•
•
•
นอกจาก
(ไมจาเป
ทศทาง
การปรบสตร
olumn, ควา
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
=OFFSET(
กน ผใชสตร
ปนตองใชเซ
เพยงกาหน
Cop
ร Offset ให
ามสง และค
($B$3,2,0)
($B$3,4,2)
($B$3,2,0,1
($B$3,4,0,1
($B$3,2,0,2
($B$3,0,0,
($B$3,0,1,
($B$3,0,2,
($B$3,0,0,
($B$3,0,1,
($B$3, Cou
ร Offset สา
ซลล B3 ซง
นดจานวน ro
pyright of ww
คนคาเปนพ
วามกวางใน
หมายถง B
หมายถง D
1,3) หมายถ
1,3) หมายถ
2,3) หมายถ
CountA($B
CountA($B
CountA($B
CountA($B
CountA($B
untA($B:$B
ามารถกาหน
งเปนเซลลแ
ow ถดไปห
294
ww.ExcelExp
พนทตารางเพ
นสตร เชน
B5
D7
ถง B5:D5
ถง B7:D7
ถง B5:D6
B:$B)-1, 1)
B:$B)-1, 1)
B:$B)-1, 1)
B:$B)-1, 2)
B:$B)-1, 2)
B)-2,0,1,3)
นดตาแหนงเ
แรกของรายก
รอเลข colu
pertTraining.c
พยงบางสวน
) หมายถง B
) หมายถง C
) หมายถง D
) หมายถง B
) หมายถง C
หมายถง B
เซลลอางอง
การแรก) แล
umn ถดไปใ
com
น ใหปรบสว
B3:B7
C3:C7
D3:D7
B3:C7
C3:D7
B7:D7 หรอร
งเซลลแรกไ
ละยงสามาร
ใหเปนคาลบ
วนของตาแห
รายการสดท
ไวทเซลลใด
รถใชหาคาใน
บ
หนง
ทาย
ดกได
นทก
วธใช
แมสตร
ปรมาณ
ผใชงาน
จากภาพ
สามารถ
จากเดม
ทาใหตา
อาจกระ
มลาดบ
เรมตนจ
มมซาย
ตามลาด
นาตาแห
ตาแหน
สตร Ind
Text กา
Offset จะช
ณขอมลหรอจ
นอาจตองกา
พนสมมตวา
ถใชสตร =S
มกตองแกไข
าแหนงอางอ
ะทบกบพนท
เซลลทอาง
จากใชสตรใน
บนสด(First
ดบ
หนงอางองท
งอางอง $B
direct
Cop
หนดขอบ
ชวยกาหนดข
จานวนรายก
ารกาหนดขอ
ตองการหาย
SUM(B2:F1
ขตาแหนงอา
องในสตร S
ทตารางใกล
องไวผดเพ
นเซลล I2 แ
t)และเซลล
ทไดมาเชอม
B$2:$F$15
pyright of ww
บเขตตารา
ขอบเขตตาร
ารทบนทกไ
อบเขตตารา
ยอดรวมของ
5) ไดอยแล
างองในสตร
Sum ปรบตา
เคยงทอยใน
ยนไปจากท
และ I3 =Ce
หวมมขวาล
มตอกนในเซ
ซงมลกษณ
295
ww.ExcelExp
างแบบยด
รางใหอตโน
ไว ซงในบาง
างใหแปรเปล
งตวเลขในพ
ลว เมอตองก
ร หรอสง In
าม แตผลจา
นแนวเดยวก
ทควรกได
ell(“Addres
ลางสด(Last
ซลล I4 ดวย
ณะเปน Text
pertTraining.c
ดหยน (D
นมตกตาม แ
งกรณอาจไม
ลยนไปตาม
พนทตารางจ
การเพมลดข
nsert/Delete
กการ Inser
กนและทาให
ss”,cell) หา
t) จะไดตาแ
ยสตร =Firs
t ทบอกตา
com
Dynamic
แตขอบเขตท
มตรงกบควา
เงอนไขพเศ
จาก B2:F15
ขนาดตาราง
e Row หรอ
rt/Delete R
หตอง Copy
าตาแหนงอา
แหนงอางอง
stCell&":"&
แหนง พรอ
Range)
ทไดขนอยก
ามตองการ
ศษ
5 ซงตามปก
B2:F15 ให
อ Column ซ
Row หรอ C
y สตรทสราง
างองของเซ
$B$2 และ
&LastCell ท
อมทจะนาไป
บ
บางครง
กต
หตางไป
ซงยอม
olumn
งไวเดม
ซลลหว
ะ $F$15
าใหได
ปใชกบ
เมอตอง
=INDIR
สตรอนใ
หากตอ
ตองการ
จากภาพ
Sum หา
ประเดน
จากฝมอ
เปนตาแ
Offset
เมอซอน
คอเลข
งการหายอด
RECT($I$4
ใดกได โดย
งการปรบเป
ร
พนเมอยายเ
ายอดรวมใน
นสาคญมไดข
อของมนษย
แหนงของเซ
ซอนเขาไป
=CELL("Ad
นสตร INDE
22 จากพน
Cop
ดรวม ใหใชส
4) ไปตงชอเ
ยไมจากดเฉ
ปลยนขนาดต
เซลล First
นขอบเขตตา
ขนกบการสง
ย แตขนกบก
ซลลทกาหน
กจะไดตาแห
ddress",IN
EX(MyNum
ทตารางชอ
pyright of ww
สตรในเซลล
เปน Formu
พาะสตร Su
ตาราง ใหยา
กบ Last ไป
าราง C5:E9
งยายเซลลไ
การใชสตร =
นดไวภายใน
หนงเซลลแ
DEX(MyNu
,FirstRow)
MyNum ม
296
ww.ExcelExp
ล I6 =SUM
ula Name เพ
um
ายเซลล Fir
ปวางไวทเซ
9 ตามไปดว
ไปตาแหนง
=Cell(“Add
วงเลบของส
แปรเปลยนต
um,FirstRow
) เขาไปในส
าเปนการบอ
pertTraining.c
(INDIRECT
พอเพมความ
rst หรอ Las
ซลล C5 และ
ย
อน เพราะก
dress”,cell)
สตร เมอใชส
ามใหทนท
w))
สตร Cell จะเ
อกตาแหนง
com
T(I4)) หรอจ
มสะดวกในก
st ไปวางลง
ะ E9 ตามลา
ารสงยายเซ
ตางหาก เพ
สตร IF, Ch
เชน
เปลยนหนาท
เซลล B3
จะนาสตร
การนาไปใช
งในตาแหนง
าดบ จะทาใ
ซลลยอมตอ
พราะสตรนจ
oose, Inde
ทจากการห
ชรวมกบ
งท
ใหสตร
งเกด
จะคนคา
ex, หรอ
าคาท 2
ในหลก
งานบนท
รายละเ
คาทจาเ
มาแสดง
อยางไร
พนกงาน
คาสง D
เปลยนส
หากตอ
ซงเตรย
เลอก A
Formul
ให Exc
การบนทกข
ทกขอมลสน
อยดของสน
เปนตองพม
ง โดยใชสต
รกตามมบาง
นหลายๆคน
Data Valida
สเซลลทมค
งการสงให
ยมไวสาหรบ
Allow แบบ C
la โดยไมตอ
el ใชตาแห
Cop
ขอมลทดตอ
นคาทขาย จ
นคาไปใชทเ
พซามเพยง
ตร VLookup
งงานทผใช
นชวยกนบนท
ation เพอปอ
คาซา โดยใช
Excel เตอน
บบนทกขอม
Custom แล
องใสเครอง
นงถดไปใน
pyright of ww
การจ
งควบคมกา
จะมตารางบน
ซลลอน ไม
งรหส พอพม
p, Match, I
Excel อาจเ
ทกขอมล เค
องกนหรอเต
ชงานรวมกบ
นเมอมการพ
ล จากนนสง
ลวพมพสตร
หมาย $ ใน
การตรวจสอ
297
ww.ExcelExp
ดการ
ารบนทกคาซ
นทกรายละ
มจาเปนตองพ
มพรหสลงไป
Index, หรอ
เผลอพมพค
ครองมอทใช
ตอนการบนท
บสตร Count
พมพคาซา ใ
ง Data > D
=COUNTI
นสวนของ B3
อบใหเอง
pertTraining.c
คาซา
ซาใหเกดขน
เอยดของสน
พมพรายละ
ปแลวใหใชส
สตรอนๆดง
าซา โดยเฉ
ชชวยเตอนท
ทกซาและ C
tIF
หเรมจากเล
Data Valida
F($B$3:$B
3 ทอยดานท
com
นไดเทาทจา
นคาเอาไว จ
เอยดของสน
สตรดงขอมล
รายละเอยด
ฉพาะงานทต
ทนททมการ
Conditiona
ลอกพนทตาร
ation > Dat
B$15,B3)=1
ทายในวงเล
าเปนเทานน
จากนนเมอต
นคานนๆซา
ลของรหสส
ดของรหสมา
ตองกระจาย
รบนทกคาซา
l Formattin
รางตงแต B
ta Validatio
1 ลงไปในช
ลบของสตร
น เชนใน
ตองการ
าอก
สนคานน
าแสดง
ให
าไดแก
ng เพอ
B3:B15
on
ชอง
เพอทา
ถาตองก
Home
determ
คนคาเป
โปรดสง
กบ Con
=COUN
เพยงคา
เพอเตอ
Data V
Data V
เทานน
เมอใดก
ปราการ
ในภาพต
ชดเจนข
การเปลยนส
> Conditio
mine which
ปน True ยอ
งเกตวาถาใช
nditional Fo
NTIF($B$3
าเดยวคอนบ
อนเมอมคาซ
Validation เป
Validation จ
แตจะไมตร
กจะเหนสใน
รดานสดทาย
ตอไปหากต
ขน
Cop
สเซลลทมกา
onal Forma
cells to fo
อมแสดงวาส
ช Data Val
ormatting
:$B$15,B3
บแลวเทากบ
ซาคอเมอนบ
ปนเครองมอ
จะชวยตรวจส
วจสอบหาก
เซลลเปลยน
ยของการตร
ตองการเปลย
pyright of ww
ารบนทกคา
tting > Ne
rmat แลวใ
สตร CountI
idation จะใ
ตองเปลยนส
3)>1 เพราะ
บ 1 คาเทาน
บแลวทคามา
อทควรนามา
สอบคาซาให
กมการ copy
นแปลงตางไ
รวจสอบอกช
ยนสเซลลเพ
298
ww.ExcelExp
ซา ใหเรมจ
ew Rule โด
ชสตร =CO
IF นบขอมล
ใชสตร =CO
สมการจากเ
Data Valid
นน สวนการใ
ากกวา 1
าใชรวมกบ C
หตอเมอเกด
y คาซาวางล
ไปจากเดมจ
ชนหนง
พอชวยแสด
pertTraining.c
ากเลอกพน
ยเลอกใชเง
OUNTIF($B
ลแลวพบวาม
OUNTIF($B
เทากบ 1 เป
dation จะย
ใช Conditio
Conditiona
ดคาซาขนจ
ลงไปแตอยา
จากคาสง C
ดงตาแหนงข
com
นทตารางตงแ
งอนไขแบบ
$3:$B$15,
มคาซาจรง
B$3:$B$15
ปนมากกวา 1
อมใหบนทก
onal Forma
al Formattin
ากการพมพ
างใด ดงนน
Conditional
ขอมลรายกา
แต B3:B15
Use a form
B3)>1 ซงถ
,B3)=1 แต
1 แทน ดวย
กคาตอเมอน
atting จะเป
ng เสมอ เน
พลงไปในตา
นเมอเกดคาซ
Formattin
ารทตองการ
5 แลวสง
mula to
ถาสตรน
ตเมอใช
ยสตร
นบแลวม
ลยนส
นองจาก
ราง
ซาขน
g เปน
ใหเหน
ตารางด
ตงแต B
แบบ Us
เซลล G
ใชนจงก
ซงในสต
ดานซายมอเ
B3:E20 แลว
se a formu
G3 เปนเซลล
กาหนดตาแห
ตรนกาหนด
Cop
เปนตารางฐา
วสง Home
ula to deter
ลทใชกรอก
หนงแบบคง
ใหเลอนตา
pyright of ww
านขอมล ให
> Conditio
rmine whic
รหสทตองก
งท $G$3 เอ
แหนงไปเรอ
299
ww.ExcelExp
หเลอกพนท
onal Forma
ch cells to f
การใชสบอก
อาไว สวนเซ
อยๆใน colu
pertTraining.c
ตารางเฉพา
atting > Ne
format แลว
กตาแหนง ด
ซลล C3 เปน
umn C จงตอ
com
าะสวนของร
ew Rule โด
วใชสตร =$
งนนในสตร
นเซลลแรกข
องใช $C3
รายการทงห
ดยเลอกใชเง
$C3=$G$3
ร =$C3=$G
ของรายการ
มด
งอนไข
G$3 ท
รหส ID
การหา
สตร VL
หากนาไ
> Adva
รายละเ
สตร Mu
สตร Mu
ละเอยด
ขนตอน
ตารางด
a001 ถ
เหลานส
ไวในเซ
ตวอยาง
B3:B20
ตองการ
าเลขตาแ
Lookup และ
ไปใชกบตาร
anced หรอ
อยดของขอ
ultiple Matc
ultiple Matc
ดหลายครงห
นการสรางทล
ดานซายมอข
ถกบนทกไวใ
สามารถหาไ
ซลล L3:L12
งนใชการตง
0, C3:C20,
รคนหาตาแห
Cop
แหนงราย
ะสตร Match
รางทมขอม
Filter จะทา
อมลทซากน
ch
ch ถอเปนส
หลายโอกาส
ละขนกบตา
ของภาพนเป
ในรายการท
ไดดวยสตร M
2 แบบ Arra
งชอ Range
D3:D20, แ
หนงรายการ
pyright of ww
การขอมล
h มจดออนต
ลซาจะใหค
างานตอเมอ
ในทนททมก
สตรทถกถาม
สแลวกตาม
ตวเอง
ปนตารางฐา
1, 6, 9, 1
Multiple Ma
y
Name วา N
และ E3:E20
ร
300
ww.ExcelExp
ลทซาดวย
ตรงทสตรเห
าตอบของข
อถกสงใหมเ
การเปลยนแ
มกนบอยครง
มกไมเขาใจ
นขอมลซงม
1, และ 15
atch {=SM
Num, ID, N
0 ตามลาดบ
pertTraining.c
ยสตร Mu
หลานจะทาง
ขอมลรายกา
เปนครงๆไป
แปลง ตองห
งมาก ถงแม
จวาสตรนสร
มคาซากนบ
โดยตวเลขต
MALL(IF(ID
Name, และ
บ สวนเซลล
com
ultiple M
งานกบขอมล
รแรกทซาก
ดงนนหาก
หนมารจกกบ
ไดเคยเขยน
รางกนไดอย
นทกไว เชน
ตาแหนงราย
=G3,Num)
ะ Amount ใ
G3 เปนเซล
Match
ลทไมซาเท
กน สวนคาส
ตองการแสด
บสตรทเรยก
นอธบายไวอ
ยางไรหากไม
น ขอมลของ
ยการของรห
),Num)} ซ
ใหกบพนทข
ลลรบคารหส
านน
ง Data
ดง
กกนวา
อยาง
มไดเหน
งรหส
หส a001
งสราง
ขอมล
สท
เพอแสด
คานวณ
Step3 ด
Step1
Ctrl+Sh
True ค
Step2
J3:J20
ปกกาป
กลายเป
Step3
Small โ
Ctrl+Sh
เมอนาส
{=SMA
L3:L20
จานวน
จากนนใ
ดงใหเหนทไ
ณหลายขนตอ
ดงน (เวลาใ
: เรมจากเล
hift+Enter
ขนานตรงก
: ปรบตาแห
พรอมกนแล
ดหวทายสต
ปนเลขตาแห
: นาตวเลข
โดยเลอกเซ
hift+Enter
สตรจาก Ste
ALL(IF(ID=
ทยาวลงมา
row จากเซ
ใหใชสตร I
Cop
ไปทมาของ
อนและแตล
ใชงานจรงไม
ลอกเซลล I
จะมวงเลบป
บตาแหนงร
หนงทเปน T
ลวสรางสตร
ตรกลายเปน
หนงรายการ
ขตาแหนงรา
ซลล K3:K20
จะมวงเลบป
ep1 – Step
=G3,Num),N
าถง row 20
ซลล L3:L12
ndex ดงขอ
pyright of ww
งสตร {=SM
ะขนทาหนา
มจาเปนตอง
3:I20 พรอม
ปกกาปดหว
ายการทมรห
True จาก S
ร =IF(I3:I2
น {=IF(I3:I
1, 6, 9, 11
ายการจาก S
0 พรอมกนแ
ปกกาปดหว
3 มาซอนกน
Num)} ทงน
0 เชนทใชก
2 หรอ 10 ro
อมลตามลาด
301
ww.ExcelExp
MALL(IF(ID
าทหาคาอะไ
งสรางสตรเห
มกนแลวสร
วทายสตรกล
หส a001
Step1 ใหเป
20,Num) แล
I20,Num)}
1, 15 ขนมา
Step2 มาเรย
แลวสรางสต
วทายสตรกล
นจะกลายเป
นโปรดสงเก
บสตรใน St
ow เทาทคด
ดบรายการท
pertTraining.c
=G3,Num)
ไรบาง ขออธ
หลานแตอย
รางสตร =ID
ลายเปน {=I
นเลขทรายก
ลวกดป ม Ct
จะพบวาตา
าใหเหนแทน
ยงจากนอยไ
ตร =SMALL
ลายเปน {=S
ปนสตร Mult
กตวาไมจาเป
tep1 – Step
ดวารหสจะม
ทหาไดมาแส
com
),Num)} วา
ธบายสตรท
ยางใด)
D=G3 แลวก
ID=G3} คน
การ Num โ
trl+Shift+E
าแหนงทเคย
น
ไปมากโดยน
L(J3:J20,Nu
SMALL(J3:
tiple Match
ปนตองสราง
p3 แตอยาง
มโอกาสซาก
สดงตอไป
าเกดจากกา
สรางไวใน S
กดป ม
นคาออกมา
โดยเลอกเซ
Enter จะมว
ยเปนคา Tru
นาไปซอนใ
um) แลวกด
J20,Num)}
h ในเซลล L
งสตรลงไปใ
งใด แตใหเล
กนสงสดกค
ร
Step1 -
เปน
ลล
งเลบ
ue
นสตร
ดป ม
}
L3:L12
ในเซลล
ลอก
รงกพอ
การหา
Unique
รายการ
Match
ในภาพน
รหสราย
Array ใ
โดยสตร
ทาใหม
หรอนอ
Step1
สาเหตท
าเลขตาแ
e Item คอ ข
ร รายการแรก
เพยงมขนต
นตารางรหส
ยการท 1, 2
ในเซลล I3:
รนตองสราง
เครองหมาย
ยกวานกได
: สตร MAT
ทตองปรบให
Cop
แหนงราย
ขอมลทไมซ
กของแตละ
อนเพมขนอ
ส ID จาก C
, 3, 4, 5, 7
I12 { =SM
งพรอมกนลง
ยวงเลบปกก
แลวแตวาจะ
TCH(ID&""
หใช ID&""
pyright of ww
การขอมล
ซากบขอมล
ชดทซากนก
อกหนงขนต
3:C20 มรห
7, 10, และ
MALL( IF(M
งทเดยวไปใ
กาปดหวทาย
ะมจานวน U
",ID&"",0) ท
เพอทาใหส
302
ww.ExcelExp
ลทเปน U
อน ซงในกร
กคอ Uniqu
อน
หสบนทกไวซ
16 ซงหาตว
MATCH(ID&
ในเซลล I3:
ยสตรใหเอง
Unique Item
ทาหนาทหา
สตรนยงใชง
pertTraining.c
Unique It
รณทมการบ
e Item โดย
ซากน รหส
วเลขตาแหน
&"",ID&"",0
:I12 แลวกด
(ทงนใหเล
m ทงหมดม
าเลขตาแหน
งานไดหากม
com
tem
นทกรายกา
ยใชสตรคลา
ID ทเปน U
นงรายการเห
0) = Num,
ดป ม Ctrl+S
ลอกจานวนเซ
ากนอยเทาใ
นงรายการข
มเซลลวาง เ
ารซากนไวห
ายกบสตร M
Unique Item
หลานไดจาก
Num), Nu
Shift+Ente
ซลล I3:I12
ใด)
อง ID แตล
เชน เซลล C
หลาย
Multiple
m คอ
กสตร
m)}
r เพอ
2 มาก
ละตว
C20
Step2
แสดงคา
Step3
IF(MAT
Step4
เมอไดต
นอกจาก
Advanc
เซลล D
เซลล D
copy ส
http://w
duplica
: นาคาจาก
าเทากบ Tr
: เปลยนคา
TCH(ID&""
: เรยงเลขต
ตวเลขตาแห
กสตรขางตน
ced แบบ U
D3 สรางสตร
D4 ใหสรางส
ตรไปตอลง
www.get-d
ates-in-exc
Cop
ก Step1 ไป
ue คอตาแห
า True จาก
,ID&"",0) =
ตาแหนงราย
หนงรายการท
นแลว ยงมส
nique reco
ร =B3 เพอ
สตร Array {
ไปในเซลล
digital-help
el-from-on
pyright of ww
เทยบกบเล
หนงทเปน U
ก Step2 ใหเ
= Num, Nu
ยการทไดจา
ทเปน Uniq
สตรลดหาชอ
ords only
นารหสรายก
{=INDEX(I
ถดไปดานล
p.com/2009
ne-column/
303
ww.ExcelExp
ขลาดบ Nu
Unique Item
เปนเลขทรา
um)
าก Step3 ให
ue แลวใหใ
อรายการทเ
การแรกยกม
ID,MATCH
ลาง โปรดดร
9/03/30/ho
/
pertTraining.c
m จะพบวา
m
ายการดวยส
หเรยงจากน
ใชสตร Inde
ปน Unique
มาเปน Uniq
(0,COUNT
รายละเอยด
ow-to-extra
com
ตาแหนงราย
สตร
นอยไปมากด
ex แสดงชอ
e หรอจะใชค
que Item ไว
IF($D$3:D
ของสตรนไ
act-a-uniqu
ยการทตรงก
ดวยสตร Sm
อรหส ID ตอ
คาสง Data
วกอน จากน
D3,ID),0))}
ดจาก
ue-list-and
กน หรอ
mall
อไป
>
นนใน
แลว
d-the-
304
Copyright of www.ExcelExpertTraining.com
การคานวณยอดรวมเพอจดทารายงาน
การจดเกบขอมลไวในโครงสรางฐานขอมลทถกตอง เปนองคประกอบสาคญชวยทาใหเกด
ความสะดวกและงายในการหาคาตอบทตองการ แตผใช 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 เพอสรางตารางเปรยบเทยบตวเลขคาตอบ
ทางออ
กอนจะอ
กอน ทง
Sum เป
รวมจาก
ถาวร แล
เปลยนแ
ในภาพน
เซลล B
ไดคาตอ
หากตอ
กาหนด
แลวสรา
Sum เด
เนองจา
แทนทจ
เขาดวย
row แล
คานวณ
อกทดกว
อธบายสตร
งนไมใชเพร
ปนสตรทเหม
กตารางซงม
ละในอนาคต
แปลงโครงส
น เซลล B1
B2:B11 ดวย
อบยอดรวม
มามการปรบ
ใหหายอดร
างสตร =SU
ดมทหายอด
ากนายอดรว
จะเลอกใชส
ยกนเปน =B
ละใสคาใหม
ณคาผดพลาด
Cop
าการใชส
SubTotal ห
ราะสตร Sum
มาะสาหรบใ
โครงสรางแ
ตตองไมมก
สรางอกตอไ
2 หายอดรว
ยสตร =SUM
เทากบ 55
บโครงสราง
รวมของเซล
UM(B2:B6)
รวมทงหมด
มของ Sum
ตร Sum ตง
B2+B3+B4+
เพมเขาไปใ
ด เพราะสตร
pyright of ww
สตรบวกห
หลายคนอา
m เปนสตรง
ใชหายอด
แนนอน
าร
ไป
วมของ
M(B2:B11)
ตาราง โดย
ล B2:B6 เพ
ลงไปในเซ
ดเทากบ 55
m ในเซลล B
งแตแรก ถา
+B5+B6+B
ในเซลลเชน
รบวกยงคงเ
305
ww.ExcelExp
หรอสตร S
จจะสงสยวา
งายททกคนค
พม และใหแ
ซลล B7 ไดย
กลายเปนย
B7 ไปรวมเข
เปลยน =SU
B7+B8+B9
นทยกตวอยา
ลอกเฉพาะ
pertTraining.c
Sum
าทาไมจงไม
ควรรจกกนด
แทรก row ใ
ยอดรวมเทา
ยอดรวมใหม
ขาไปอก
UM(B2:B11
9+B10+B1
างขางตน ก
เซลลตามเด
com
มอธบายวธใ
ดอยแลวหรอ
ใหมระหวาง
กบ 15 แตจ
เทากบ 77
1) ไปสรางส
1 แลวหากภ
จะไมเกดปญ
ดมทกาหนด
ใชสตร Sum
อก แตเนอง
row 6 และ
จะสงผลใหส
ซงเปนคาต
สตรบวกแตล
ภายหลงมก
ญหาทาใหส
ดไวใหเสมอ
m ไว
งจาก
ะ row 7
สตร
อบทผด
ละเซลล
ารแทรก
สตรบวก
แตสตร
บวกกนท
วธทดก
การใช
หากแป
ของราย
ยอดรวม
กาหนด
=SubT
ตวเลขป
•
•
•
•
SubTot
จากเซล
ทละเซลลไ
วาการใชสต
ชสตร Su
ลคาวา Sub
ยการแตละก
มเทานน หา
ใหสตร Sub
Total( ตวเลข
ประเภทการค
101 กาหนด
102 กาหนด
103 กาหนด
109 กาหนด
tal มความส
ลลทมสตร S
Cop
มใชทางออ
ตรบวกหรอส
bTotal ร
bTotal กนต
กลมท Sub เ
ากยงสามารถ
bTotal คาน
ขประเภทกา
คานวณ กาห
ดให SubTo
ดให SubTo
ดให SubTo
ดให SubTo
สามารถพเศษ
SubTotal ม
pyright of ww
กทดนกหาก
สตร Sum ก
รวมกบคา
รงๆอาจเขา
เอาไว ซงกแ
ถดดแปลงให
วณหายอดต
ารคานวณ, พ
หนดตวเลขต
otal ทาหนา
otal ทาหนา
otal ทาหนา
otal ทาหนา
ษเหนอกวาส
าคานวณซา
306
ww.ExcelExp
กมเซลลทต
คอ การใชส
าส ง Filte
าใจวาสตร S
แปลงไดไม
หคานวณหา
ตวเลขไดถง
พนทเซลล
ตงแตเลข 1
าทแบบสตร
าทแบบสตร
าทแบบสตร
าทแบบสตร
สตร Sum ก
าอก
pertTraining.c
ตองการนาม
สตร SubTot
r และ Cu
SubTotal นท
ผดนก แตส
าคาเฉลยหร
ง 11 แบบตา
)
101 – 111
Average
Count
CountA
Sum
กลาวคอ Su
com
าบวกกนนบ
tal
ustom Vi
ทาหนาทหา
สตรนมไดหา
รอนบไดอกด
ามโครงสรา
แตเลขทใช
bTotal เปน
บพนนบหมน
iews
ายอดรวม To
าคาตอบใหเ
ดวย โดยเล
างสตรตอไป
ชกนทวไปได
นสตรทจะไม
นเซลล
otal
เฉพาะ
อก
ปน
ดแก
มนาคา
สงเกตว
และ B2
กาหนด
ยอดตว
เซลล B
ถานาสต
> Filter
เซลลอย
(Excel
การ Filt
สามารถ
หลงจาก
คาสง V
วาในเซลล B
2:B12 ตามล
ขอบเขตขอ
เลขรวมจาก
B7 มาคานวณ
ตร SubTota
r จะพบวา ส
ยเทานน (V
รนเกากวา E
ter เทานน
ถใชรวมกบ F
กทกรองหรอ
View > Cus
Cop
B7 และ B13
ลาดบ โดยใ
องตารางทต
กเซลล B2:B
ณซาอก ทา
al ไปใชรวม
สตร SubTo
Visible Cells
Excel 2003
แตถาใช Ex
Filter หรอจ
อจดโครงสร
stom Views
pyright of ww
3 ใชสตร Su
นเซลล B13
องการหายอ
B6 ไวกตาม
าใหยงคงได
มกบตารางท
tal แสดงตว
s Only) โดย
3 จะรบตวเล
xcel 2003 เ
จะซอน row/
รางตารางเพ
s > Add เพ
307
ww.ExcelExp
ubTotal เพ
3 ใชสตร =
อดรวมไวตง
สตร SubT
คาตอบเทา
ทถกซอน row
วเลขคาตอบ
ยตวสตรเอง
ลขประเภทก
เปนตนมาแน
/column เอ
พอแสดงผล
พอตงชอใหก
pertTraining.c
อหายอดรว
SUBTOTAL
งแตเซลล B
Total ในเซล
กบ 55
w/column
บเฉพาะทได
ไมไดตองเป
ารคานวณต
นะนาใหใชต
องไดอกดวย
ใหเหนบนจ
กบการแสดง
com
มของตวเลข
L(109,B2:B
B2:B12 ซงร
ลล B13 จะล
hide หรอก
ดมาจากเซล
ปลยนแปลง
งแตเลข 1
ตวเลข 101
ย)
อตามตองก
งผลตามทจ
ขจากเซลล
B12) แมวาไ
รวมถงเซลล
ละเลยไมนา
รองจากคาส
ลลทยงมองเ
งใหมแตอยา
- 11 และใช
– 111 แทน
การไดแลว ค
ดไว
B2:B6
ได
B7 ทม
คาใน
สง Data
เหนตว
างใด
ชรวมกบ
น จะ
ควรใช
จากนนเ
เลอกชอ
พรอมก
(นอกจา
การใช
Data >
และตอง
ตามกลม
ตองการ
ฐานขอม
เรมจาก
Data >
เมอตองการ
อแบบทตงไ
บสตร SubT
ากนน Custo
ชคาส ง D
> SubTotal
งเปนตาราง
มใหทนท พ
รใหอก และ
มลไดอยางไ
จดเรยงขอม
> Sort จากน
Cop
รแสดงโครง
ไวในชอง Vi
Total แสดง
om Views
Data > Su
ใชกบตารา
ซงไมมสตร
พรอมกบสรา
ะเมอนามาใช
ไมนาเชอ
มลเพอจดกล
นนคลกลงใน
pyright of ww
สรางตาราง
ews แลวกด
งตวเลขคาต
ยงชวยจากา
ubtotal
งฐานขอมล
รใดๆสรางไว
าง Outline เ
ชงานรวมกบ
ลมขอมลทต
นตารางขอม
308
ww.ExcelExp
ตามแบบใด
ดป ม Show
อบเฉพาะเซ
ารกาหนด P
ลซงจดเรยงข
ว เมอใชคาส
เพอใชคลก
บ Custom V
ตองการหาย
มลเซลลใดก
pertTraining.c
ด ใหสง View
จะไดโครงส
ซลลทยงมอ
Print Settin
ขอมลแยกต
สงนจะเกดส
เลอกแสดงร
Views จะเป
ยอดรวม แย
กได แลวสง
com
w > Custo
สรางตารางต
งเหนใหพร
g แตละแบบ
ามกลมทตอ
ตร SubTot
รายละเอยด
นเครองมอใ
กเฉพาะแตล
Data > Su
m Views แ
ตามแบบทต
อมกนไป
บใหอกดวย
องการไวกอ
tal หายอดร
ดทละขนตาม
ใชชวยงาน
ละกลมกอน
ubtotal
แลวคลก
ตงชอไว
)
อนแลว
รวมแยก
ม
น โดยสง
•
•
•
•
หากตอ
ครงแลว
Replace
ชอง At eac
Header นน
ชอง Use fu
ชอง Add s
กดป ม OK จ
งการสราง S
วเปลยน He
e current s
Cop
ch change
นๆ
unction: ให
subtotal to:
จะพบวา ม
Subtotal ระ
eader ใหมใ
subtotals อ
pyright of ww
in: ใหเลอก
หเลอก Sum
: ใหเลอกชอ
Row ใหมแ
ะดบรองซอน
นชอง At ea
ออก แลวกด
309
ww.ExcelExp
กชอ Heade
m
อ Header ข
แทรกขนเอง
น Subtotal
ach chang
ด OK
pertTraining.c
er ทตองกา
ของ Field ท
และมสตร S
ระดบแรก ใ
e in: แลวให
com
รหาผลรวมต
ทตองการหา
Subtotal คา
ใหสง Data
หตดกาเครอ
ตามกลมขอ
ายอดรวม
านวณยอดให
> Subtota
องหมายถกใ
อง
หทนท
al ซาอก
ในชอง
เมอกดป
หบ และ
Cells ให
ไป Pas
ขอดขอ
ยอนกล
หมายเห
Data >
ป มเครองหม
ะป ม Outlin
หเลอกพนท
ste จะไดเฉพ
งการใชคาส
บไปเปนตา
หต หากตอ
> Group
Cop
มายลบหรอป
e จะกลายเ
ทตารางแลวก
พาะพนททเ
สงน นอกจา
รางฐานขอม
องการสราง
pyright of ww
ป มหมายเลข
ปนเครองหม
กด F5 > Sp
หลอจากกา
าก Excel จะ
มลตามแบบ
Outline ขน
310
ww.ExcelExp
ขระดบชนข
มายบวกแท
pecial > เล
ารกดป ม Ou
ะสรางสตร S
บเดม ใหกดป
นมาใชเอง ใ
pertTraining.c
อง Outline
น หากตอง
ลอก Visible
utline เทาน
SubTotal ให
ป ม Remove
ใหเลอกเซล
com
ดานบนซาย
การ Copy เ
e cells only
น
หเองแลว ห
e All
ลทตอเนอง
ย รายการข
เฉพาะ Visib
จากนนสง
หากตองการ
งกนแลวใชค
อมลจะ
ble
Copy
สง
คาสง
การใช
จากภาพ
ตวเลขเ
> Cons
ป ม Add
เลอกจา
กาชอง
ชคาส ง D
พนตารางขอ
เรองเดยวกน
solidate จา
d แลวเลอกพ
ากตารางทอ
Crate links
Cop
Data > Co
อง Division
นจากหลายต
กนนคลกเล
พนทจากตา
อยตางชทหร
s to source
pyright of ww
onsolida
1 และ Div
ตารางเขาดว
ลอกพนทตา
ารางอนมา A
รอตางแฟมก
e data ใหค
311
ww.ExcelExp
ate
vision 4 มโค
วยกน ใหเรม
รางขอมลช
Add ซาจนก
กนกได) แล
รบเพอจะได
pertTraining.c
ครงสรางเห
มจากเปดชท
ดแรกใหแส
กวาจะครบท
ลวอยาลมกา
ดสตรลงคคา
com
มอนกน ถาต
ทใหมขนมา
ดงในชอง R
ทกตารางทต
าชอง Use la
าจากตาราง
ตองการหาย
ากอน แลวส
Reference
ตองการ (โด
abels in พร
ตนทางมาใ
ยอดรวม
ง Data
แลวกด
ยจะ
รอมกบ
ชดวย
กราฟ E
link คา
สตร lin
1.
2.
3.
4.
5.
ดวยวธเ
ทงตารา
1.
2.
3.
4.
5.
6.
Excel มความ
จากตารางไ
k ในแตละจ
สรางกราฟใ
คลกครงหน
เดม จะพบว
ใหคลกลงบ
คลกกลบไป
จะพบวาตว
เดยวกนน เร
าง เรมตนโด
เลอกตาราง
กด Shift พ
คลกลงไปใ
ไดเหนตารา
คลกลงไปใ
คลกกลบไป
กด Enter
Cop
วธ
มพเศษอยา
ไปทกราฟ ไ
จดไดโดยใช
ใหเสรจกอน
นง ลงไปทต
วา จดนนกล
บน formula
ปยงเซลลขอ
marker กล
ราสามารถส
ดย
งขอมลซงต
พรอมกบคลก
ในหนากราฟ
างชดเจนไม
ใน formula
ปยงพนทตา
pyright of ww
ธสราง
งหนง คอ แ
มวาจะเปนต
ชวธงายๆ ตอ
นตามวธปกต
ตว marker ห
ลายเปนกลอ
bar แลวพ
อมลตนตอใ
ลายเปนสตร
รางสตร link
องการนาไป
กเมนคาสง E
ฟ แลวสง Pa
มทบกบรปสว
bar แลวพม
รางขอมลซ
312
ww.ExcelExp
งสตรบ
แทบทกสงซ
ตว marker
อไปน
ต
หรอขอความ
อง
มพเครองห
ในตาราง แล
ร link ขอมล
k นาขอมลม
ปแสดงบนก
Edit > Cop
aste แลวยา
วนอนๆ
มพเครองหม
ซงสง copy
pertTraining.c
บนกรา
ซงประกอบก
หรอคาอธบ
มใดๆกไดบน
มายเทากบ
ลวกด enter
ลมาจากเซล
มาทงตาราง
ราฟ
py Picture แ
ายรปตารางไ
มายเทากบ
picture มาจ
com
าฟ
กนเปนรปกรา
บายแตละสว
นกราฟ แลว
=
ลล
นามาแสดง
แลวกดป ม O
ไปยงตาแหน
=
จะไดสตร lin
าฟ สามารถ
วน เราสามา
วคลกลงไปอ
งไวบนกราฟ
OK
นงวางๆบนก
nk มาทรป
ถนาสตร
รถสราง
อกทท
ฟไดเลย
กราฟ จะ
วธสรา
สตร Ex
เซลลอน
1.
2.
3.
4.
5.
างสตรเพ
xcel สามารถ
นมาแสดง โ
สรางตาราง
อนกได
ใชเมนคาสง
กาหนดให
เลอกเซลลว
เลอกตาแห
คลกลงไปใ
Cop
อดงรปภา
ถใช link รป
โดยเรมตนจ
งเกบรปภาพ
ง Formulas
Refers to:
วางๆเซลลใ
นงเซลลซง
ใน Formula
pyright of ww
าพ
ภาพมาแสด
าก
เซลลละรป
s > Define
สตร =IND
ใดกได แลว
งจะแสดงรป
a Bar พมพส
313
ww.ExcelExp
ดงผลไดเชน
ป แลวกาหน
Name สรา
DEX(PicTab
สง Home >
แลวสง Pa
สตร =Choo
pertTraining.c
นเดยวกบกา
นดชอตาราง
าง Formula
le,1,Sheet
> Copy as
ste จะไดรป
osePic
com
รสรางสตร
เกบรปนวา
Name ชอว
1!$A$1)
Picture
ปเซลลวางๆ
link เพอนา
PicTable ห
วา Choose
ๆทเรา copy
าคาใน
หรอชอ
Pic
มา
6.
7.
กาหนดเลข
ท copy มา
คลกขวาทร
Cop
ขทรปลงไปใ
รปเซลล แล
pyright of ww
ในเซลล A1
วจดรปแบบ
314
ww.ExcelExp
เชนใสเลข
บของสและเ
pertTraining.c
2 จะไดรปท
สนกรอบตา
com
ท 2 ถกนาม
มตองการ
มาแสดงในรป
ปเซลล
315
Copyright of www.ExcelExpertTraining.com
วธจดการกบความอวนอยอาย...ของแฟม
แฟม Excel ทเราเพงเปดใชงานขนใหมในวนน จะเรมมขนาดแฟมใหญขนเรอยๆ แลวเมอวน
เวลาผานไปสกปสองป คอมพวเตอรทใชอยกจะทางานชาลงไปจนผดสงเกตโดยมเหตมาจาก
แฟมใหญขนมากนแหละ ตวผใช Excel มกชอบวงไปบอกหวหนา ขอใหซอคอมพวเตอรเครอง
ใหมเพอจะไดทาให Excel ทางานเรวเหมอนเดม ซงถาผมเปนหวหนาของคณละกอ ... แทนท
จะเปลยนคอมพวเตอรเครองใหม ขอเปลยนตวพนกงานเปนคนอนจะดกวา !!! เพราะแมจะไดใช
คอมพวเตอรเครองใหมแลวกตาม ตอมาพอแฟมเรมใหญขนอก คอมพวเตอรกจะชาลงไปอก
แลวเรากตองซอเครองใหมทเรวขนกวาอกหรออยางไรกน
กอนทจะสายเกนไป ผใช Excel ควรเขาใจกอนวา ทวาแฟม Excel ใหญขนนน อะไรบางทเปน
เหตใหแฟมมขนาดใหญขน แลวอยานกตอไปวา แฟมใหญตองใชเวลาคานวณนานกวาแฟมท
เลกกวาเสมอไป ซงเมอเขาใจประเดนเหลานแลวเราตองหาทางออกแบบแฟมใหใหญพอดๆ ไม
ใหญ ไมเลกเกนไป และไมใชเวลาคานวณชาจนรอไมไหว
สงทมผลตอขนาดของแฟม
1. จานวนเซลลทใช
2. จานวนเซลลทถกอาง
3. รปแบบหรอ Format ทใช
จานวนเซลลทใช
แฟม Excel ในยคแรก มขนาดแฟมใหญมากเพราะกาหนดวา พนทตารางทกเซลลตงแตเซลล
A1 ไปจนถงเซลลหวมมขวาลางสดทมขอมลอยถอเปนพนทซ งถกใชงาน ตอมา Excel ได
พฒนาใหขนาดของแฟมไมตองนบจากเซลล A1 แตใหนบเฉพาะเซลลทถกใชงานเทานน สวน
เซลลทเราไมไดเขาไปแตะตองแกไขใสอะไรลงไป ไมมสวนกระทบตอขนาดของแฟมแตอยาง
ใด ซงชวยใหเราสามารถใชพนทตารางไดสะดวก ไมตองออกแบบตารางใหชดตดกนเปนพด
เพอหาทางลดขนาดแฟมอยางแตกอน
ขอใหสงเกตวา ขนาดของแฟม ไมไดขนอยกบจานวนอกขระทมอยในเซลล ไมวาจะพมพเลข 1
ลงไปในเซลล 100 เซลล หรอพมพเลข 123 ลงไปในเซลล 100 เซลล แฟมกยงคงมขนาด
316
Copyright of www.ExcelExpertTraining.com
ใหญเทากนเพราะใชจานวนเซลล 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) ทหาคาจากแฟม
Input.xls ในชท Sheet1 ตงแตเซลล B2:H200 น จะทาให Excel แอบสรางตารางทเรามองไม
เหนเกบขอมลจากแฟมตนทางทงหมดไวในแฟมปลายทางทมสตรนอย ซงตารางทมองไมเหนน
แหละเปน Cache Data
Cache Data ชวยทาใหเมอเปดแฟมปลายทางขนมาใชเพยงแฟมเดยว เรากสามารถใชสตร
VLookup คนหาขอมลจากแฟมตนทางไดโดยไมจาเปนตองเปดแฟมตนทางขนมาใชพรอมกบ
แฟมปลายทางแตอยางใด แตกทาใหแฟมปลายทางมขนาดใหญขน
รปแบบหรอ Format ทใช
การกาหนดรปแบบใหกบชททงชทพรอมกนทเดยวทกเซลล จะทาใหแฟมมขนาดเลกกวาการ
กาหนดรปแบบเพยงบางสวนของตาราง เพราะ Excel จะใชวธรบรทเดยววาชทนนๆใชรปแบบใด
317
Copyright of www.ExcelExpertTraining.com
แตถาในตารางมการกาหนดรปแบบตางกนไปในแตละสวน จะทาให 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 สวนในบทความนจะ
ไดอธบายเรองทแปลกไปจากเดม
มนษยนแหละตนเหตของความชาอยอาย
แมยคนเราใชเครองคอมพวเตอรแทนเครองคดเลขกนมากขน แตแทนทเครองคอมพวเตอรจะ
ชวยใหทางานไดเรวขน หลายๆคนกลบทางานเสรจชาลง จนแทบอยากจะยอนไปกดป มบน
เครองคดเลขทตนใชไดเรวกวา ทงนเนองจากคนเราไมชอบการเปลยนแปลง ชอบทาอะไรใช
318
Copyright of www.ExcelExpertTraining.com
อะไรทตวคนเคยมากอน พอจะใชคอมพวเตอรกคดไมออกวาจะใชโปรแกรมอะไร ฟงเขามาวา
ถาเรองของตวเลขตองใชโปรแกรม Excel แตถาเรองเกบขอมลตองใช Access แลวถาขอมลม
ทงตวเลขและตวอกษรละ จะใชโปรแกรมอะไรด บางคนอาจคดงายๆวา ถาขอมลมเลขมากกวา
กใหใช Excel หรอถาขอมลมตวอกษรมากกวาตวเลข กใหใช Access แลวกน
ในประเดนของการเลอกใชโปรแกรม Excel หรอ Access น ในเบองตนสาหรบคนทเพงจบ
คอมพวเตอร ขอแนะนาใหเลอกใช Excel กบงานทตองการความยดหยน หรองานทผใชยงไม
มนใจวาจะจดโครงสรางหนาตาของตารางขอมลทตองการเกบไวอยางไร เพราะ Excel มคาสง
ชวยสาหรบการโยกยายขอมลเตรยมไวพรอม และเราอยากจะยายตารางไปเกบไวทชทอนแฟม
อน กจะเหนผลทนทบนหนาจอกบตา แถม Excel ยงชวยแกไขสตรทเกยวของกบตารางซงถก
ยายใหเสรจ แลวตอมาภายหลงพอมขอมลปรมาณมากขน เรมมมาตรฐานของโครงสรางตาราง
แนนอนตายตวแลว จงคดถง Access
ครนเลอกใช Excel สรางตารางเกบขอมลตอไปสกพก คอมพวเตอรแสนเรวของเรากบผทใช
Excel กจะพรอมใจกนกอดคอทางานชาลงไปเรอยๆ โดยมสาเหตยอดนยมดงตอไปน
1. ออกแบบตารางเกบขอมลไมเปน พอเปดแฟมขนด แลวงงไปหมดวาขอมลอะไรอย
ตรงไหน
2. เกบขอมลทเกยวของกบวนท แตวนทซ งเกบบนทกไว ไมสามารถนามาใชคานวณตอได
3. เกบขอมลซาซอนกน พอจะแกไขเปนขอมลใหมตองเสยเวลาหาตาแหนงเซลลใหพบ
กอนวาอยทชทใดแฟมใด
4. แยกขอมลทเกบไวในตารางเดยวกนออกจากกนไมได ตองฝนบนทกขอมลตอไปเรอยๆ
นบพนนบหมนบรรทด
5. สรางสตรยากๆยาวๆแบบฉนเองคนสรางคนเดยวเทานนทจะแกะออก
6. เลอกใชสตรไมเปน ชอบใชสตรสนๆทคนชอบ แต Excel ไมชอบเพราะโปรแกรมจะ
ทางานชาลง
7. แยกตารางสตรทไมจาเปนตองคานวณพรอมกนออกจากกนไมได ทาใหตองเสยเวลารอ
การคานวณสตรซาโดยไมจาเปน
8. ไมรจกแยกคาตวแปรทอาจเปลยนแปลงภายหลงไวนอกสตร
9. สรางชททใชคานวณเรองเดยวกนซากนเตมไปหมด แตละชทมตารางหนาตาเดยวกน
ตางกนแตคาทนามาใชคานวณ
10. เลอกใช VBA กบงานทยงไมควรใช VBA แม VBA จะชวยใหเสรจงานเรวขน แตกไมใช
เรวขนไดเตมทอยางทควร
319
Copyright of www.ExcelExpertTraining.com
สาเหตยอดนยมเหลานแหละททาใหเราไดผลลพธจาก Excel ชาลง แตโดยทวไปผใช Excel ท
ไมเคยนาผลงานไปเปรยบเทยบกบผอนมกจะหลงภาคภมใจในผลงานของตน และเขาใจผดไป
วาตนไดใช Excel ชวยสรางผลงานทเรวขน ดงนนการใหพนฐานในเรองแนวทางการใช Excel
ทดและถกตองจงเปนเรองทสาคญมาก
แนวทางการใช Excel ทดและถกตอง
• เราตองมงหวงทจะใช Excel ใหไดผลงานมากขนและเรวขนแบบคอมพวเตอร นนคอ
ตองสามารถนาแฟมทสรางไวแลวกลบมาใชซาแลวซาอก โดยไมจาเปนตองแกไขสตร
หรอโครงสรางตารางทสรางไวแลวอกเลย
• แยกโครงสรางตารางเปน 3 ประเภท คอ ตารางทใชเกบขอมล(ตวเลขและหรอตวอกษร)
ตารางสาหรบสรางสตรคานวณ และตารางสาหรบแสดงเปนรายงาน
• พงระลกไวเสมอวา สกวนหนงขอมลในแฟมจะถกเกบไวจนทาใหแฟมใหญและ Excel
ทางานชาลง ดงนนตองเตรยมโครงสรางตารางทพรอมตอการโยกยายไปเกบไวทแฟม
อน
• ขอมลทเกบไวในตารางทใชเกบขอมลตองจดเกบไวในลกษณะโครงสรางฐานขอมลท
สามารถนาไปใชกบเมน Data หรอใชกบสตรพวก Lookup ไดทนท
• ขอมลทเปนตวเลข ตองมคาเปนตวเลขอยางแทจรง ซงมลกษณะทตองชดขวาของ
เซลลโดยไมจาเปนตองใช Format
• หามพมพขอมลใดๆซาโดยไมจาเปน แตใหใชสตรนาคาสงตอไปใชเมอตองการใช
ขอมลนนซา
• ในชทหนงๆ พยายามสรางสตรเดยวซงสามารถนาไปใชไดกบทกตาแหนงเซลลในชท
นนๆ ไมวาจะมการแกไขททาใหตาแหนงโครงสรางตารางเปลยนไปอยางไรกตาม
• สตรทสรางขนตองใชหลกการคานวณทงายตอการทาความเขาใจของตนเองและผอน
และเมอทเงอนไขเปลยนแปลงไปจากเดมกไมจาเปนตองแกไขโครงสรางสตรใหตางไป
จากเดมมากนก
• ตองใชสตรปรบคาในเซลลใหไดคาถกตองตามทตองการกอนแลวจงใชคาสง Format
ปรบการแสดงผลของคานนในภายหลง
• ในโครงสรางสตร หามใสคาคงทใดๆไวอยางเดดขาด
320
Copyright of www.ExcelExpertTraining.com
• แทนทจะสรางสตรยากๆยาวๆทมสวนการคานวณทซากนลงไปในตารางนบพนนบหมน
เซลล ซงทาใหแฟมใหญและคานวณชาลง ควรหาทางกระจายโครงสรางสตรออกเปน
สตรสนๆหลายๆเซลลแตใชการคานวณครงเดยว เพอทาใหแฟมเลกลงและคานวณเรว
ขน
• อยาลมวา ตารางทเปนสตร จะมขนาดแฟมใหญกวาตารางทเปนตวเลขหรอตวอกษร
ดงนนแทนทจะใชสตรคานวณคาใดๆทเปนคาคงท เชน เลขลาดบ แนะนาใหใชตารางท
เปนตวเลขผลจากการคานวณแทนไปเลยดกวา
• ในกรณทตองสรางสตรทอางองกบตารางแนวนอนแนวตง แนะนาใหเลอกตารางตาม
แนวนอนกอนตารางแนวตงเพอสรางมาตรฐานวธสรางสตรของตนเอง และนอกจากนน
ยงสอดคลองกบโครงสรางของสตร Excel เชน Index หรอ Offset จะใชตาแหนงอางอง
ตามแนวนอนกอนแนวตงเสมอ
• หากสรางสตรทตองนามาใชซาแลวซาอก ควรตงชอตาแหนงเซลล (Range name) ท
สอถงทไปทมาของสตร แทนการอางองกบตาแหนงอางองโดยตรง
• ควรแยกสตรทไมจาเปนตองคานวณพรอมกนออกเปนแฟมแยกจากกน (หรออกนยหนง
ใหเกบเฉพาะสตรทตองคานวณพรอมกนเทานนไวในแฟมเดยวกน) เพอทาใหเรา
สามารถเลอกเปดแฟมตามขอบเขตการคานวณทชดเจน และทาใหแฟมมขนาดเลกลง
• ใหเลอกใช VBA เฉพาะเมอตองการใช Excel ทเหนอกวาปกตจากสตรและเมนคาสงท
ทาได และรหส VBA ทใชตองสามารถใชไดตอเนองไปตลอดแมโครงสรางตารางจะ
เปลยนแปลงตางไปจากเดมกตาม
• ทกอยางมไดกตองมเสย ไดอยางกตองเสยอยาง ขอใหพจารณาเปรยบเทยบขอด
ขอเสยกอนทจะสรางงาน เพอใหเหมาะสมกบเงอนไขและสภาพแวดลอมของการ
ทางาน
แนวทางการลดความอวน
ลองคดดวา ถาเราเกบรายการขอมลลงไปในชทเตมทงหมดทก row แลว จะนาขอมลรายการ
ใหมไปเกบไวทไหน จะเรมตนเกบไวในชทใหมในแฟมเดมหรอจะเปดแฟมใหม?
ผใช Excel สวนมากชอบเกบขอมลไวเรอยๆในชทเดมแฟมเดมเพราะสะดวกในการคนหา
เรยกใช ซงหากใชคอมพวเตอรรนใหมมความเรวสงกไมตองรอนานนก แตถาเกบขอมลไวใน
แฟมเดมตอไปเรอยๆ สดทายเจาเครองคอมพวเตอรทวาทางานเรวกจะทางานชาลงชาลง นเปน
321
Copyright of www.ExcelExpertTraining.com
เพราะเราชอบเกบขอมลไวในแฟมเดมตอกนไป และกไมเคยมความจาเปนตองใชขอมลทงหมด
ทเกบไวพรอมกนสกครงเดยว
แลวสตรคานวณทสรางไว มนตองถกนามาคานวณใหมพรอมกนทกครงทมขอมลเปลยนแปลง
ไปแคเซลลเดยวหรอไม สตรทคานวณหาตนทนสนคาหรอคาใชจายซงมคาคงท ซงนานๆจงจะ
มคาเปลยนแปลงไปสกท จาเปนหรอทรวมตารางคานวณคาคงทเหลานนไวในแฟมซงมสตร
คานวณยอดกาไรจากการขาย
จากนนเมอถงคราวตองนาขอมลนบพนนบหมนบรรทด หรอตารางรายงานทตองพมพนบรอยนบ
พนหนามาแสดงใหดนน เราใชสายตาดตารางทงหมดหรอกระดาษทกแผนทพมพออกมาพรอม
กนทกหนาหรอไม?
ผสรางงานตองพจารณาถงประเดนดงกลาวขางตนไวเสมอ ตองพรอมทจะแยกขอมลทเกบไวใน
แฟมไปเกบไวในแฟมอน ขอมลใดทจาเปนตองเกบไวใช เพอหาผลลพธทตองการจากการ
คานวณรวมกนทกครง กควรจดเกบไวในแฟมเดยวกบตารางทเปนสตรคานวณ แตถาไม
จาเปนตองใชคานวณพรอมกนกควรแยกออกเปนแฟมตางหากทาใหแฟมมขนาดเลกลง แลวจง
ใชสตร link ขอมลขามแฟมมาใชคานวณตอตามแตวาเราจะเลอกเอาขอมลมาใชจากแฟมไหน
ซงจะชวยใหใชตารางสตรหนาเดยวตารางเดยวแตสามารถคานวณผลลพธไดตามแตขอมลท
link มาใชอกตอหนง
ในกรณท link ขอมลขามชท ใหใชสตร Indirect เลอกนาขอมลจากชอชททตองการมาใชใน
ชทคานวณ สวนกรณท link ขามแฟม ใหใชคาสง Change Source เพอเลอกชอแฟมทตองการ
มาใชในแฟมคานวณ
322
Copyright of www.ExcelExpertTraining.com
ผลจากสตรทมตอขนาดแฟมและความเรวในการคานวณ
ขอนาผลการทดสอบจากการใชสตรคานวณหลายหลายประเภทมาเลาสกนฟง และขอใหลอง
หาขอสรปกนเองวา สตรแบบไหนดกวากนและเพราะเหตใด (โดยการทดสอบนไดจากการสราง
สตรลงไปในตารางขนาดใหญตงแตเซลล 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 วนาท / ขนาดแฟม
5,168 KB เชน =SumProduct(--(IDRange=ID),--(KeyRange=Key),NumRange)
• สตร SumProduct แบบใสเครองหมายคณ ใชเวลา 2 นาท 33 วนาท / ขนาดแฟม
5,165 KB เชน =SumProduct((IDRange=ID)*(KeyRange=Key),NumRange)
323
Copyright of www.ExcelExpertTraining.com
• สตร SumProduct แบบใสเครองหมายคณทกตว ใชเวลา 2 นาท 42 วนาท / ขนาด
แฟม 5,166 KB เชน
=SumProduct((IDRange=ID)*(KeyRange=Key)*NumRange)
• สตร SumProduct แบบใสเครองหมายคณ 1 ใชเวลา 2 นาท 50 วนาท / ขนาดแฟม
5,171 KB เชน =SumProduct((IDRange=ID)*1,(KeyRange=Key)*1,NumRange)
กรณใชสตร 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 เพอคานวณสวนแรกแยกไวกอน
324
Copyright of www.ExcelExpertTraining.com
เมอตองเลอกระหวางขนาดแฟมหรอความเรวในการคานวณ
ประเดนเรองความอวนอยอายของแฟมตามทกลาวมาทงหมดในบทความนจะไมเปนสาระสาคญ
หากคดแตเพยงวา ถาแฟมใหญขน หรอคอมพวเตอรชาลง เรากซอคอมพวเตอรเครองใหมหรอ
ซอ RAM มาเพมหนวยความจาในเครองใหมากขนกแกปญหาไดแลว แตถาคดกนงายๆเชนน
ปญหาทเกดจากการใช Excel จะยงมความสลบซบซอนมากขน โดยเฉพาะอยางยงเมอใช
Excel 2007 ขนไป โดยในชทหนงมกวา 10,000 column และกวา 1 ลาน row ซงยอมทาให
ผใช Excel ทขาดความรพนฐาน และขาดวนยในการสรางงาน สรางแฟมงานทจะยอนกลบมาทา
รายตวเองในทสด
แตถาตองเลอกระหวางขนาดแฟมหรอความเรวในการคานวณ ในความคดเหนสวนตวขอเลอก
ความเรวในการคานวณวามความสาคญมากกวาเรองของขนาด เพราะปญหาเรองขนาดแฟมเปน
ปญหาทแกไขไดไมยาก แคหาทางแยกตารางทไมจาเปนตองถกเรยกใชงานพรอมกนออกไป
เกบเปนแฟมตางหากกทาใหแฟมเลกลงเรยบรอยแลว และแมจะแยกตารางออกเปนแฟมเลกๆ
ไมได เรายงสามารถจดเกบแฟมลงไปในสอไดหลายชนด ไมวาจะเปน USB Drive, CD, DVD,
หรอฮารดดสก ซงปจจบนมความจมากขนกวาแตกอนมากในขณะทมราคาลดลง
สวนประเดนในเรองความเรวของการคานวณนนแมถอวาสาคญกวาเรองขนาดแฟม แตความเรว
เปนเรองของความรสก เปนเรองยากทจะหาเกณฑมาวดวาอยางนเรวหรอชา มกใชความรสก
ของคนทตองนงรอคอยคาตอบเปนตวชวด ถายงรอกนได กยงไมเดอดรอนหาทางอนทจะทาให
แฟมคานวณเรวขน ดงนนประเดนเรองความเรวในการคานวณ จงตองถอเปนภาระหนาทของ
ผสรางงาน ตองคอยตดตามเสมอวาสตรหรอวธทตนเพงสรางใหมลงไปในตาราง สงผลใหแฟม
งานนนคานวณชาลงไปกวาเดมอยางผดสงเกตหรอไม และตองลองสรางสตรหลายๆแบบท
สามารถใหคาตอบเดยวกน แตใชเวลาคานวณเรวทสด ซงควรพจารณาผลในระยะยาวทมตอ
ตวเองหรอผอนทรวมใชแฟมงานเดยวกนดวยวา ทกคนสามารถใชแฟมงานไดสะดวก เมอ
ตองการยอนกลบมาปรบปรงแกไข ตองสามารถทาไดงายในระยะเวลารวดเรว แมจะทาใหแฟมม
ขนาดใหญขน และคานวณชาลงกตาม
325
Copyright of www.ExcelExpertTraining.com
การออกแบบโครงสรางตารางคานวณ
ในโปรแกรม Microsoft Excel มองคประกอบอยสองอยางแทบไมเปลยนแปลงเลยในหลายยค
หลายสมยทผานไป ไมวาจะเปน Excel รนใดกตามยงคงมสงนใชกนเรอยมา สงทวานกคอ
ตารางทประกอบดวยเซลลมหลาย row หลาย column และสตรสาเรจรปอกหลายรอยสตรตด
มาพรอมกบตวโปรแกรม ซงผใดสามารถนาตารางและสตรมาใชรวมกนไดเปนอยางด จะทาให
ใชโปรแกรม Excel ทมราคาไมกหมนบาททางานไดยดหยนกวาโปรแกรมสาเรจรปราคาแพง
เปนแสนเปนลานบาททเดยว
บทความนจะแนะนาคณใหหาทางใชตาราง Excel อยางสรางสรรค เพอใชคานวณหาผลลพธใน
ปญหาตางๆไดสารพด เพยงแคนาตารางและสตรสาเรจรปของ Excel มาใชรวมกนอยางม
หลกการ อยางเปนขนเปนตอน และอยางมเหตผล จะชวยใหคณไดรบประโยชนมากขนกวาแต
กอน เชน
1. สามารถคานวณหาคาตอบในปญหาทไมเคยคดวา Excel จะทาไดมากอน
2. สตรสนลง และสามารถแกไขสตรไดงายและรวดเรว
3. สามารถตรวจสอบความถกตองของการคานวณในทกขนตอน
4. สามารถขยายขนาดหรอเคลอนยายตาแหนงเซลล เพอนาตารางไปใชซาในเซลลอน ชทอนหรอแฟมอนไดทนท
5. สามารถนาตารางไปใชในงานคานวณอนทใชหลกการเดยวกนไดทนท หรอหลงจากผานการปรบปรงเพยงเลกนอย
6. สามารถนาตารางไปใชงานรวมกบเมนคาสงของ Excel ไดทกเมอ แมแตการนาขอมลไปแสดงผลตอในรปกราฟ
7. แฟมคานวณเรวและมขนาดแฟมเลกลง แมจะมตารางขนาดใหญกตาม
ตารางคานวณคออะไร
เพอทาใหเขาใจตรงกน จงขอใหคาจากดความในความหมายของตารางคานวณกอนวา ตาราง
คานวณในบทความนมไดหมายถงพนทตารางวางๆทคณจะเหนทนทบนจอเมอเปดโปรแกรม
Excel ขนมาใชงาน แตตารางคานวณในทนมความหมายถงตารางซงคณสรางขนมาเองโดยม
ขอมลบนทกไวแลว อาจเปนขอมลตวเลข ตวอกษร หรอสตรใดๆกได ทงนมเจตนาเพอใชพนท
326
Copyright of www.ExcelExpertTraining.com
เซลลหรอตารางนนในการคานวณหาคาตอบทคณตองการโดยเฉพาะ เชน ตารางคานวณคาแรง
ทตองจายใหลกจางทางานในแตละกะ ตารางคานวณยอดตนทนขายแบบ Fist-in First-
out ตารางคานวณหาจานวนสนคาทตองวางแผนสงผลต (Material Requirements Planning)
หรอตารางคานวณเพอวางแผนการลงทน (Feasibility Study) เปนตน
ตารางทไมถอวาเปนตารางคานวณในบทความน ไดแก ตารางฐานขอมลซงใชบนทกขอมลดบ
(ไมมสตร) ตารางรายงานทจดโครงสรางเพอพมพในกระดาษหรอแสดงผลใหเหนบนจอ หรอ
ตารางท Excel จดโครงสรางใหเองอตโนมตจากการใชคาสงบนเมน SubTotals หรอ Pivot
Table
ตารางคานวณโดยทวไปประกอบดวยพนทตารางยอย 2 สวน สวนแรกเปนพนทตารางสาหรบ
เกบคาตวแปรทใชในการคานวณ และพนทตารางอกสวนหนงใชสาหรบสรางสตรคานวณซงรบ
คามาจากคาตวแปรในพนทสวนแรกนนเอง โดยผใชงานจะใชพนทสวนแรกในการพมพคาตว
แปรตวใหมลงไป จากนนจะแสดงคาตอบจากการคานวณใหเหนในตารางสวนทเปนสตรคานวณ
ขอควรพจารณากอนเร มสรางตารางคานวณ
สมมตวาคณกาลงหาทางคานวณคาแรงทตองจายใหลกจางทางานในแตละกะ จะตองคด
พจารณาอะไรบาง
1. กาหนดขอบเขตของความตองการของคณทเปนไปไดวามอะไรบาง เชน ตองการใชตารางในชทหนงเพอคานวณคาแรงของพนกงานคนหนงซงทางานในวนหนง หรอตองการใชตารางในชทหนงเพอคานวณคาแรงของพนกงานคนหนงซงทางานในเดอนหนงโดยแสดงเปนรายวนตอเนองกนไป หรอตองการคานวณคาแรงของพนกงานทกคนในวนหนงๆ หรอตองการคานวณคาแรงใหกบพนกงานทกคนในเดอนหนงโดยแสดงเปนรายวนตอเนองกนไป หรอมความตองการอนๆอกบางไหม ทงนเพอหาทางสรางตารางคานวณเพยงตารางเดยวแตตองมความยดหยนสามารถนาไปใชคานวณไดทกกรณตามทคณตองการ(ทงทเคยตองการในอดตและอาจจะมมากขนในอนาคต)
2. คนหาเงอนไขทงหมดทเกยวของในการคานวณ ซงโดยทวไปผทคลกคลกบการบรหารการจางแรงงานยอมตองมเงอนไขทตนนาไปใชในงานอยแลว เชน เงอนไขเกยวกบชวงเวลาหรอกะทกาหนดใหทางานในแตละวนแบงเปนกชวง แตละชวงใชเวลาทางานมากนอยเพยงไร แบงเปนชวงเวลาหยดพกกครง แตละครงใหหยดพกไดนานเทาใด ลกจางตองตอกบตรหรอบนทกการเขาทางานไว อยางไร บรษทมเงอนไขในการจายคาจางแรงงานเปนอยางไร ซงเงอนไขเหลานจะตองหาทางนามาใชในการคานวณ
327
Copyright of www.ExcelExpertTraining.com
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 ขนมาแลว คณจะเรมตน
ออกแบบตารางกนอยางไรด ซงลกษณะของตารางคานวณนเองทจะชใหเหนฝไมลายมอวาใคร
เยยมยทธกวากน ถาเทยบกบการสรางบานสกหลงหนงแลว ขอพจารณาทผานไปเปนเพยงแค
328
Copyright of www.ExcelExpertTraining.com
การออกแบบคราวๆและเตรยมซออปกรณกอสราง หน ทราย ปนซเมนต เตรยมไวไมใหขาด
ไมใหเกนกวาความจาเปน ขนจากนเปนหนาทของสถาปนกและวศวกรทจะตองลงมอกอสราง
บานของจรงใหสวยหร ดด อยสบาย อากาศถายเทสะดวก และสามารถตกแตงตอเตมใหนาอย
ไปชวลกชวหลาน
กอนอนผมจาเปนตองขอเตอนใหทราบขอผดพลาดทผใช Excel ทวไปมกคดออกแบบตาราง
อยางรวบรดเกนไป โดยการพยายามนาตารางคานวณไปรวมกบตารางทใชพมพออกไปเปน
รายงานหรอแสดงผลลพธทตองการบนหนาจอคอมพวเตอรไวเปนตารางเดยวกน ซงความคด
เชนนจะกลายเปนอปสรรคสาคญทาใหไมสามารถใชเซลลตอเนองกนเพอจดการคานวณทละ
ลาดบ จงขอแนะนาใหคดแยกตารางคานวณออกเปนพนทตางหากแยกจากตารางทใชพมพ
รายงาน แมตองทาใหเสยพนทเซลลมากขนโดยอาจตองแยกออกเปนชทหลายๆชท แตจะชวย
ทาใหสามารถออกแบบโครงสรางตารางคานวณไดอยางอสระ แลวตอเมอตารางคานวณน
สามารถคานวณหาคาตอบไดตามทตองการแลว จงคอยนาผลลพธทได link ไปประกอบกนเปน
ตารางรายงานในทสด
โครงสรางพนฐานของตารางคานวณ ประกอบดวยสวนทเปนพนทตารางสาหรบรบคาตวแปร
และพนทตารางสาหรบสรางสตรคานวณ โดยใหยดหลกวาสตรทสรางขนในตารางคานวณนน
หากเปนไปไดขอใหคดสรางสตรลงไปในเซลลแรกเซลลเดยวทหวมมซายบนสดของตาราง
จากนนเมอ copy สตรนไปใชทเซลลสวนอนในตารางตองสามารถใชสตรเดมนนไดโดยไม
จาเปนตองแกไขสตรใหแตกตางกนไปจากเดมแตอยางใด หรออกนยหนงใหใชสตรเดยวกบทก
เซลลในตารางคานวณใหได แตถาไมสามารถสรางสตรเดยวทเซลลหวมม กขอใหพยายาม
สรางสตรเดยวในแตละแนว row หรอ column
เพอทาใหเหนโครงสรางตารางคานวณแบบงายๆ ขอยกตวอยางการสรางตารางคานวณสตรคณ
มาพจารณากนตามรปตอไปน
329
Copyright of www.ExcelExpertTraining.com
รปตารางนเปนตวอยางการคานวณสตรคณแม 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)
330
Copyright of www.ExcelExpertTraining.com
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 ชน
331
Copyright of www.ExcelExpertTraining.com
ตารางคานวณตองมากอน สวนสตรลดมาทหลง
ทกวนนคณสามารถคนหาสตรคานวณเพอหาคาตอบในปญหาตางๆไดโดยตรงจากอนเตอรเนต
หรอยกคาถามไปหารอในฟอรมถามตอบปญหา Excel ไดไมยาก หลายๆครงทเดยวทจะไดรบ
คาตอบเปนสตรซอนกนยาวเหยยดเปนหนา จนอดทงในความสามารถของคนทสรางสตร
เหลานนไมไดวาเขาคดสตรกนมาไดอยางไร
หากจะไลเรยงลาดบความเกงเกยวกบการใช Excel แลว การทเกงมความสามารถสรางสตร
ยากๆยาวๆได ถอวาเปนความเกงขนสงทมกเปนความสามารถเฉพาะตว ยากทคนอนจะ
เลยนแบบหรอเขาใจทไปทมาของสตรทนามาซอนกน เพราะคนเกงแตละคนมกเลอกใชสตรท
ตนถนดแตกตางกนไป แตอยางไรกตาม ในเรองสตรทตวผมเองคดขนนน หลายๆครงทเดยวท
พบวาไมสามารถแกะสตรยาวๆทตวเองเปนคนตนคด จงเปนสงทนาเปนหวงอยางยงวา ในเมอ
แมแตตวผทคดสตรขนเองยงไมสามารถเขาใจทไปทมาของแตละสวนในสตรยาวๆไดเลย แลว
ไฉนผอนจะเขาใจสตรทตนไมไดสรางเองหรอสามารถนาสตรไปดดแปลงใชงานไดเลา ดงนน
การสรางสตรยากๆยาวๆใหแกผอ นใช จงเปนการสรางปญหาระยะยาวใหเกดขนกบผใชสตรท
ตนเองไมไดเปนคนสราง เพราะวาเมอใดทเงอนไขในการคานวณแตกตางไปจากเดม เมอนนก
จาตองยอนกลบมาตงคาถามใหคนอนชวยสรางสตรใหมใหอก
แทนทจะใชสตรลดซงเปนสตรซอนกนยาวเหยยด แนะนาใหกระจายการคานวณออกเปนหลาย
เซลลเพอแยกคานวณแตละอยางกอน แลวจงนาผลลพธทไดไปคานวณหาผลลพธสดทาย จะ
เปนวธชวยสรางความเขาใจใหเกดขนถงทไปทมาของสตรวาคดกนมาไดอยางไร
ยกตวอยางสตรคานวณหาชอแฟม ซงดแลวยากทจะจา และไมมทางรวามหลกการคดมาได
อยางไร
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filenam
e"))-FIND("[",CELL("filename"))-1)
สตรนมทมาจากสตร
=MID(ขอความทมช อแฟม, เลขตาแหนงเครองหมาย [, เลขจานวนตวอกษรของชอ
แฟม)
แยกคานวณแตละสวนไดตามรปตอไปน
332
Copyright of www.ExcelExpertTraining.com
แทนทจะใชสตรยาวจนจาแทบไมไหวในเซลล B7 ใหเรมจากการใชสตรหาคาทเกยวของกบ
การแยกคาทละขน ดงน
1. เซลล A1 ใชสตร =CELL("filename") เพอหาชอแฟม โดยคาตอบทไดจะแสดงทงชอ drive ชอโฟลเดอร ชอแฟม และชอชท
2. เซลล B3 และ B4 ใชสตร =FIND("[",$A$1) และ =FIND("]",$A$1) เพอคานวณหาตาแหนงของเครองหมายวงเลบ [ ] ตามลาดบ
3. เซลล B5 ใชสตร =MID(A1,B3+1,B4-B3-1) เพอแยกเฉพาะสวนทเปนชอแฟมออกมาใชงาน
333
Copyright of www.ExcelExpertTraining.com
การออกแบบโครงสรางตารางคานวณรวมกบสตรลด
จากสตร = MAX(0,MIN(F4,D4)-MAX(E4,C4)) ซงใชคานวณหาระยะเวลาทใชในกะซงได
อธบายทไปทมาของแตละสวนในสตรแลววาเปนอยางไร จากนขอใหคณคดตอไปอกวาจะนา
สตรนไปใชในการวางแผนโดยจาเปนตองนาสตรนไปใชรวมกบตวแปรอนๆ เชน ชวงเวลาของกะ
อนๆ ชวงเวลาเขางานในวนอนๆหรอเวลาเขางานของลกจางคนอน ตลอดจนหาทางคานวณ
คาแรงทตองจายออกเปนตวเงนนน ตองออกแบบตารางคานวณใหมหนาตาอยางไรด
ตวอยางนขอสมมตวาในกาหนดเวลาทางานแตละวน ตงแต 6:00-24:00 น.นน ถกแบงออกเปน
8 กะ แตละกะเรมจากชวงเวลา 6:00, 8:00, 10:00, 12:00, 13:00, 17:00, 19:00, และ
22:00 โดยกาหนดคาแรงในชวงกะทเรม 8:00, 10:00, 13:00, และ 17:00 ใหใชอตราคาแรง
ปกต สวนกะอนๆมอตราคาแรง OT 1.5 เทาของอตราปกต
แรกสดผมตดสนใจวา จะยงไมนาประเดนเรองคาแรงมาใชในการคานวณ โดยตองการคานวณ
ใหไดระยะเวลาทใชในแตละกะใหไดกอน เพอเผอวาจะสามารถใชตวเลขระยะเวลาไปใชในงาน
วางแผนอนทอาจเกยวของไดอก เชน หากตองการวดประสทธภาพในการทางาน กอาจนา
ระยะเวลาทใชในแตละกะไปคณกบอตรากาลงผลตมาตรฐาน แลวนามาเปรยบเทยบกบผลงานท
ผลตไดจรงในแตละกะวาดกวาหรอตากวามาตรฐานอยางไร
ในการออกแบบตารางคานวณใหเลอกวางแนวตารางทอาจจะมรายการเพมใหเพมไดใน
แนวนอน จะสะดวกกวาการวางตารางทเพมไวตามแนวตง ดงนนจงกาหนดใหแบงหวตารางท
เปนกะตางๆไวตงแตเซลล E5:L5 เพราะเชอวาสวนนคงไมมการปรบเพมจากเดมมากนก แลว
กาหนดใหใชตารางดานซายสดเรยงลาดบงานแตละงานไปเรอยๆ จากเซลล B6:D10
334
Copyright of www.ExcelExpertTraining.com
ตวเลขเวลาเรมกะทบนทกไวในเซลล E5:L5 นน ยงถกนาไปกระจายแยกเปนเวลาเรมกะ
(From) และเวลาสนสดของกะ (To) ไวทเซลล E2:L3 เพอแสดงใหเหนชดเจนขนวาแตละกะม
เวลาเรมตนและสนสดอยางไร และยงเผอไวใชกบสตรคานวณหาระยะเวลาทใชในกะอกดวย จะ
ไดทาใหสตรมการใชตาแหนงอางองในแนวเดยวกนไปตลอด ชวยใหสรางและแกะทไปทมาได
งายขน
สวนดานของรายละเอยดการทางานนน ในชวงแรกนใชเลขทงานเรยงไปเรอยๆไวกอนในเซลล
B6:B10 ซงในอนาคตอาจเปลยนจากเลขทงาน ไปเปนชอคน หรอเลขเครองจกรแทนกได ทงน
เพอใชแสดงชอรายการเทานนวาเปนการทางานของใคร และสามารถพมพรายการตอไปไดอก
นบหมนรายการตามแนวนอน
กาหนดใหบนทกเวลาเรมงาน (Start) และออกจากงาน (Stop) คขนานกบเลขท Job ไวใน
เซลลตงแต C6:C10 และ D6:D10 ตามลาดบ
ตารางตงแตเซลล E6:L10 ใชสตร =MAX(0,MIN( E$3, $D6 ) - MAX( E$2, $C6 )) เพอ
คานวณหาระยะเวลาททางานในแตละกะ โดยสรางสตรนลงไปในเซลล E6 เซลลเดยวแลว
copy ไป paste เพอใชคานวณทกเซลลตงแต E6:L10
เพอแสดงใหเหนเฉพาะตวเลขเวลาทคานวณได ไมใหแสดงตวเลขเวลาทเทากบ 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 ชวยชชดวาแตละกะมเวลาใด ชวยให สรางสตรคานวณไดงายขนและยงทาใหมความเขาใจชดเจนมากขนสาหรบผใชงานทวไป ซงในอนาคตหากไมตองการแสดงพนทสวนนกสามารถโยกยายไปซอนทอน
335
Copyright of www.ExcelExpertTraining.com
4. จดเดนของโครงสรางตารางซงชวยใหสามารถคานวณคาแรงในแตละอตราได คอ การใชตารางแบงออกเปนแตละกะเพอแยกคานวณหาระยะเวลาทใชในกะนนๆกอน และยงชวยใหสามารถตรวจสอบความถกตองของการคานวณไดงาย ชดเจนกวาการคดสตรยากๆยาวๆเพยงเพอคานวณแยกแตละกะใหแลวเสรจในเซลลเดยว
5. ในแงของเลขตวเงนคาแรงทโดยทวไปถอเปนเรองปกปด ไดถกแยกคานวณในตาราง Q6:R10 ชวยใหสามารถใชตารางสวนนในการบรหารคาแรงไดโดยตรงและสามารถโยกยายตารางไปแยกเกบไวเปนเรองลบในชทอนหรอแฟมอน
6. เลขท Job ในตาราง B6:B10 นน ในอนาคตสามารถบนทกรหสหรอชอลงไปแทน จากนนจงนาสตร Vlookup หาเวลาทางานมาแสดงโดยอตโนมตในตาราง C6:D10 ไดดวย หรออาจใชคาสง Data > Table เพอสงตวแปรลงไปแทนเลขท Job เพอคานวณลดหายอดคาแรงไดทนทโดยไมจาเปนตองยอนกลบมาเพมรายการใหม
7. สามารถใชกบการคานวณหาคาแรงไดหลายกรณ เชน คาแรงของลกจางคนหนงในวนหนง หรอคาแรงของลกจางคนหนงรายวน หรอคาแรงของลกจางเรยงตวไปทกคนในแตละวน ซงคณอาจใชชทเดมชทเดยวคานวณ หรอ copy เปนชทใหมเพอคานวณแยกตามรายบคคล
หมายเหต :
1. การไลลาดบงานในตวอยางนเปนการไลจากบนมาลางหรอจากซายไปขวา ซงในแงการวางแผนกาหนดการณแลว เรยกวา แบบ Push เพอหากาหนดเวลาทงานเสรจ
2. ถาไลลาดบงานจากลางไปบนหรอจากขวามาซาย จะกลายเปนแบบ Pull เพอหากาหนดเวลาทตองเรมงาน
3. หากตองการแทรกระยะเวลาหยดพกของแตละ Job ซงยอมมผลทาให กาหนดเวลาเรมตนของ Job ถดไปชาลง สามารถปรบเพมไดงายๆโดยสรางสตรหากาหนดเวลาเรมงานใน Job ถดไปใหมคาเทากบ เวลาออกจากงานของ Job กอนบวกดวยระยะเวลาทหยดพก
4. ผสนใจตารางคานวณหาระยะเวลาทใชในกะ สามารถเรยนรไดจากการอบรมหลกสตรประยกตใช Excel เพอวางแผนความตองการวสด(MRP)และจดตารางการผลต หรอหลกสตรฉลาดใชสารพดสตร Excel อยางมออาชพ หรอ download ตวอยางไดฟรจาก http://www.excelexperttraining.com/extreme/files/timeplan/timeconsume.xls
336
Copyright of www.ExcelExpertTraining.com
การออกแบบโครงสรางตารางคานวณ ภาค 2
ตารางคานวณในภาคแรกเกดจากการใชสตรทมโครงสรางเดยวกนซาในทกเซลลของตาราง
คานวณ โดยกาหนดใหหาทางสรางสตรขนเพยงสตรเดยวในเซลลแรกตรงหวมมซายบนสดของ
ตาราง แลวจดการ Copy สตรไปใชทงตาราง และจากการทใชสตรทมโครงสรางเดยวกนไป
ตลอดนยอมแสดงวาเปนสตรทคานวณหาคาตอบในเรองเดยวกน จากนนเราจงใชโครงสรางของ
ตารางเปนตวชวยในการเลอกใชคาตอบจากตาแหนงของเซลลทเกยวของกบคาตอบ ซงตาราง
คานวณแบบแรกนไมเหมาะกบการคานวณทมความสลบซบซอนมากนก
ในบทความภาคท 2 จะนาโครงสรางตารางคานวณทมความซบซอนมากขนมาใหศกษากนโดย
ขอเรยกตารางคานวณแบบนวา ตารางคานวณแบบ Module ซงสามารถนาไปใชงานกนได 2
แบบ คอ แบบ Module เดยว (Single Module) และแบบ Module รวม (Compound Module)
ความหมายของ Module
ผทเคยใช Excel สรางตารางคานวณงบการเงนมากอน ตองทราบดวากวาจะคานวณหายอด
กาไรขาดทนมาไดตองคานวณผานยอดรายรบหกตนทนขายเปนกาไรขนตน จากนนจงนายอด
ตวเลขกาไรขนตนไปหกดวยคาใชจายตางๆและภาษเพอเปนยอดกาไรขาดทน ซงลกษณะของ
การคานวณงบการเงนนแหละคอลกษณะของตารางคานวณแบบ Module
ในงานดานวางแผนการผลตมลกษณะการใช Excel แบบ Module เชนกน นบตงแตรบคาสงซอ
แลวตองนายอดไปเปรยบเทยบกบสนคาคงคลงเพอคานวณหายอดวตถดบทตองใชตามกาลง
การผลตทมอย อกทงตองกาหนดเวลาใหกบตวเลขการสงผลตหรอจดหาวตถดบตามโครงสราง
ผลตภณฑใหไดอกวา ตองการใชในปรมาณเทาใดและตองเรมสงของเมอใดเพอใหสามารถ
ดาเนนการตามขนตอนการผลตแลวไดสนคาสาเรจรปตามเวลาทกาหนด
Module คอ ตารางทประกอบดวยเซลลสตรคานวณหลายๆเซลลซง
คานวณตอเนองกนไปทละขน โดยผลการคานวณทไดในแตละขนไม
จาเปนตองมความหมายใดเลยกได แตเมอนามาคานวณรวมกนหรอ
คานวณตอเนองกนแลวตองทาใหไดผลลพธตามตองการ
337
Copyright of www.ExcelExpertTraining.com
จากคาจากดความของ 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 แฟม แตถาเปนงานท
ตองใชตดตอกนไปหลายปหรอแบงรายงานตามวตถดบนบรอยนบพนชนด เหนทยอมทาใหม
จานวนชทหรอจานวนแฟมทมการคานวณแบบเดยวกนซามากจนจดจากนไมไหว
338
Copyright of www.ExcelExpertTraining.com
ตารางคานวณแบบ Single Module เปนตารางคานวณเพยงตารางเดยวทคณสามารถกาหนดให
ตารางคานวณนนเลอกรบตวแปรตางไปจากเดมไดตามตองการ ทาใหสามารถใชตารางคานวณ
เพยงตารางเดยวหรอหนาเดยวเพอแสดงผลการคานวณเปลยนไปเปนตารางคานวณรายละเอยด
ของเดอนทตองการหรอวตถดบทตองการ โดยใชโครงสรางตารางแบงออกเปน 3 สวน ดงน
1. สวนของตาราง Input ใชสาหรบเกบตวแปรทตองการตามรายเดอนหรอแตละชด ซงตาราง Input นใชจดเกบขอมลรายเดอนหรอแตละชดไวเปนแนวนอนหรอแนวตงตดกนกได
2. สวนของตารางสตรตวกลางใชดงขอมล เพอเลอก Input ตามเลขเดอนหรอเลขทของชด ซงมกใชสตร Index เพอเลอกดงขอมลจากตาราง Input ในชทเดยวกน หรอใชสตร Indirect เพอเลอกดง Input จากตารางทแยกชทกน
3. สวนของตารางคานวณ เพอคานวณตามคาทรบมาจากตารางสตรตวกลาง
339
Copyright of www.ExcelExpertTraining.com
ตวอยางโครงสรางตารางคานวณแบบ Single Module ในชทเดยว
(Download ตวอยางไดจาก
www.ExcelExpertTraining.com/extreme/files/database/singlemodule.xls)
ตวอยางนเปนการคานวณงบกาไรขาดทนจากตวอยางประกอบการอบรมหลกสตรสดยอดเคลด
ลบและลดของ Excel ซงกาหนดใหมตารางทตองการคานวณตามยอดขายและตนทนทตางกน
ไปอย 3 case แตละ case กาหนดใหแปรเปลยนยอดขายและตนทนตางกนไป ดงนนแทนท
จะตองสรางตารางคานวณขน 3 ตารางเพอแยกคานวณแตละ case ขอใหออกแบบตารางในชท
เดยวกนแบงเปน 3 สวน
สวนแรกใชสาหรบบนทกตวแปรแตละ case ซงในภาพใชตารางดานขวาสดตงแต
เซลล I3:K6 (ตงชอ Range Name ตารางสวนนวา MyData) แบงแยกใหแตละ column
บนทกตวแปรของแตละ case เชน case1 เปนพนทตงแตเซลล I3:I6 โดยกาหนดใหเรยงลาดบ
ตวแปรของยอดขายและตนทนตอกนไปใน column เดยวกน แลวใช column ถดไปบนทกตว
แปรของ case ตอไปในทานองเดยวกน
สาเหตทตองจดใหบนทกตวแปรของแตละ case ไวในแนวตงเดยวกนนน เพอทาใหสามารถใช
สตร Index ดงขอมลตวแปรทเกบไวในแนวตงเดยวกนไปพรอมกน โดยสรางสตร Index
ตอไปนไวในเซลล F3:F6 แบบ Array (โดยเลอกเซลล F3:F6 แลวสรางสตร จากนนกดป ม
Ctrl+Shift+Enter พรอมกนเพอบนทกสตรลงไปทเดยวทกเซลล จะพบเครองหมายวงเลบปก
กาปดหวทายสตรใหเอง)
340
Copyright of www.ExcelExpertTraining.com
=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 คอยๆสงตวเลขตว
341
Copyright of www.ExcelExpertTraining.com
แปร 1, 2, 3 บนหวตารางดานบนไปทเซลล F2 หรอ CaseNum ทละคา จากนนสตร Index จะ
ทาหนาทดงตวแปรแตละตวตามเลข case สงไปคานวณในงบกาไรขาดทนดานซายสด แลวจง
สงผลลพธกลบมาแสดงในพนทตาราง I12:K18 ตาม case บนหวตารางดานบนของพนทซ งสง
Data > Table นนเอง (การใช Data > Table รวมกบสตร Index นจะทาให Data > Table
สามารถสงตวแปรไปใชคานวณไดไมจากดจานวนตวแปร ถอเปนเคลดการใช Excel ทนอยคน
นกจะใชเปน)
342
Copyright of www.ExcelExpertTraining.com
ตวอยางโครงสรางตารางคานวณแบบ Single Module แบบแยก Input
ไวในชทอน
ในกรณทการคานวณมความสลบซบซอนมากขนหรอมจานวนตวแปรมากขน คณสามารถแยก
ตารางสวนของการคานวณผลลพธไปไวในชทอนตางหาก เพอทาใหสามารถจดโครงสราง
ตารางไดยดหยนและแยกชทเกบขอมลใหแยกเปนสวนๆไดชดเจนยงขน
ในตวอยางตอไปเปนการคานวณทางสถตของการวด (Calibration) กอนอนขอเลาทไปทมา
ของตวอยางตอไปนกอนวา แตเดมทนนแฟมมขนาดใหญมากเพราะมชทนบรอยชท แตละชทม
สตรคานวณทางสถตยากๆยาวเหยยดหลายๆเซลล
ทกครงทมการผลต ทางโรงงานตองสมสนคาทผลตไดสงมาตรวจสอบคณภาพกอน โดยวดผล
ออกมาเปนตวเลขแลวนาไปคานวณทางสถตวาเปนตวเลขทอยในชวงทยอมรบไดหรอไม ทก
ครงทจะคานวณ กตองเปดชทใหมแลว copy ตารางคานวณจากชทเกามาแกตวเลขตามการวด
ทเกดขนใหม ดงนนถาตองคานวณกนทกวน วนละหลายๆครง ยอมทาใหมชทใหมเกดขนทก
ครง
นอกจากแฟมจะมขนาดใหญเพราะมชทหลายๆชทแลว สงทนาหวงคอทกครงทตองสรางตาราง
คานวณในชทใหมนน อาจสรางตารางทมสตรคานวณผดเพยนไปจากสตรทสรางไวในชทเดม
หรอแมคานวณไดถกตอง แตนานไปอาจพลงเผลอยอนกลบไปแกไขบางเซลลในบางชทใหตาง
ไปจากทเคยเปน และเนองจากมชทหลายชท จงเปนไปไดวาเมอทาการแกไขไปแลว อาจ
หลงลมจาไมไดวาแกไขชทชอใด และแกไขอะไรทเซลลใดไปบาง ยงกวานนเมอใดทตองการ
แกไขโครงสรางตารางคานวณตามหนาตาใหมทผบรหารกาหนด กตองเสยแรงเสยเวลา
ยอนกลบไปแกไขชทเกาทงหมดทอาจมถงนบรอยนบพนชทเขาไปแลวทเดยว
แทนทจะตองเปดชทใหม ขอใหใชหลกการสรางตารางคานวณแบบ Single Module โดยใช
โครงสรางตารางแบงออกเปน 3 สวน ดงน
1. สวนของตาราง Input ใชสาหรบเกบตวแปรทตองการตามการวดคณภาพสนคาแตละครง ซงตาราง Input นใชจดเกบขอมลการวดแตละครงไวเปนแนวตงตดกน
2. สวนของตารางสตรตวกลางใชดงขอมล เพอเลอก Input ตามเลขทของเลขครงในการวด โดยใชสตร Index เพอเลอกดงขอมลจากตาราง Input ในชทเดยวกน
3. สวนของตารางคานวณ เพอคานวณตามคาทรบมาจากตารางสตรตวกลาง แตเนองจากมการคานวณทซบซอนและเปนรายงานทตองใชตารางขนาดใหญ จงใหใชชทอกชทหนงเปนสวนของการคานวณโดยเฉพาะ
343
Copyright of www.ExcelExpertTraining.com
จากเดมซงตองมหลายชท จงกลายเปนแฟมใหมซงมชทเพยง 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 มาจากชทตารางคานวณทางสถต
344
Copyright of www.ExcelExpertTraining.com
โครงสรางภายในชทสาหรบคานวณทางสถตของการวด
เซลล 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 กจะพมพรายงานตามรายการทตองการโดยอตโนมต
345
Copyright of www.ExcelExpertTraining.com
การออกแบบโครงสรางตารางคานวณ ภาค 3
ตารางคานวณแบบ Single Module ในภาคนเปนตารางคานวณในกรณทแยกชทหรอแยกแฟม
เพอใชกบงานทมการคานวณสลบซบซอนมากกวาเดม แทนทจะมตารางคานวณเพยงตาราง
เดยวแลวใชขอมลตวแปรสงคาใหมไปคานวณในตารางนนๆในชทเดยวกน คราวนผมจะนาเสนอ
วธการสรางตารางคานวณพรอมกนในหลายชทหรอหลายแฟม จากนนจงเลอกนาผลการคานวณ
จากชทหรอแฟมทตองการไปนาเสนอผลงานตอไป
ผใช Excel ตองคดไวเสมอวา แมวนนขอมลทเกบไวยงคงมไมมากและสามารถใชชทเดยวเกบ
ขอมลทงหมดไวดวยกน แตในอนาคตขอมลทตองเกบไวจะตองมปรมาณของขอมลมากขนไป
เรอยๆ จากเดมทเคยเกบไวในชทเดยว จะกลายเปนตองเกบไวในชทหลายชท และในทสดเมอ
แฟมมขนาดใหญมากแลวใชเวลาคานวณชาลง กตองหาทางโยกยายขอมลแยกออกไปเกบไว
ในแฟมใหมในทสด พฤตกรรมเชนนถอเปนววฒนาการของการใช Excel ทเราทกคนหลกหนไป
ไมพน
ดงนนการออกแบบโครงสรางตารางคานวณทด จงตองหาทางออกแบบตารางตงแตแรกใหใช
พนทตารางแยกเปนสวนๆ เพอสามารถโยกยายตารางจากเดมทเกบอยในชทเดยว ไปแยกเกบ
ในชทใหมหรอแฟมใหมไดทนททตองการ
หมายเหต บทความในภาคนเปนเรองตอเนองกบเรองเดมทไดเขยนอธบายไปกอนแลว จงขอ
แนะนาใหผอานเรมตนศกษาจากบทความภาคแรกเปนลาดบไปจาก
www.ExcelExpertTraining.com/blogs/ หรอนตยสาร EWorld ฉบบเดอนกนยายน 2551 เปน
ตนมา
ลกษณะของตารางคานวณ Single Module แบบแยกชทหรอแยกแฟม
1. ตารางคานวณทแยกชทน มไดหมายความวาใหแยกแตละลาดบของการคานวณใหใช พนทตางชทแลวสงผลการคานวณไปคานวณตอในชทอนตอกนไป แตเปนการรวมลาดบการคานวณทงหมดไวในชทเดยวกน จากนนจงสรางชทใหมใหมตารางคานวณซากบตารางคานวณทมอยในชทเดม เพยงแตวาการคานวณทเกดขนในแตละชทจะเกดจากตวแปรทตางกน เชน ชทเดมใชคานวณตวเลขในอดต สวนชทใหมใหใชคานวณตวเลขในปจจบน จากนนจงนาผลทคานวณไดนามาเปรยบเทยบหาความแตกตางระหวางอดตและปจจบน
2. เมอใดทใชชทหลายๆชทแยกตารางคานวณ ยอมแสดงวาชททงหมดยงคงอยในแฟมเดยวกน เมอนนยอมทาใหแฟม Excel มขนาดใหญขน ซงหากในการใชงานไมได
346
Copyright of www.ExcelExpertTraining.com
ตองการใหทกตารางทาการคานวณพรอมกน กไมจาเปนตองเกบชททงหมดไวในแฟมเดยวกน กหาทางแยกชทไปแยกเกบเปนแฟมไดทนท จากนนเมอใดทตองการใหแฟมใดคานวณกจดการเลอกเปดเฉพาะแฟมทตองการขนมาสงคานวณ
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 ถอเปนสวนสาคญ
347
Copyright of www.ExcelExpertTraining.com
ทจะชวยใหสตรทใชดงขอมลจากชททตองการสามารถทาไดงายขนดวย ดงรปตอไปนซ งเปน
ชทชอ 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. เมอนาผลลพธคาวา Case2! มาเชอมกบคาวา $F$3 ดวยสตร "Case"&$F$2&"!"&ADDRESS(ROW(),COLUMN()) จงไดชอชทกบตาแหนงเซลลทตองการออกมาเปนคาวา "Case2!$F$3"
3.4. สตร Indirect จงหาคาจากชอชทและตาแหนงเซลล "Case2!$F$3" ไดตวเลข 200 ตามตองการ
4. เมอหาคาดวยสตร Indirect ในเซลล F3:F6 ไดแลว จงสงคาตอไปคานวณในตารางคานวณงบการเงนในพนทตารางดานซายสด D3:D6 เพอใชคานวณหา Margin
เคลดลบทใชรวมกบโครงสรางตารางคานวณ Single Module แบบแยกชท
1. กรณตองการสรางชทหลายชทใหมหนาตาแบบเดยวกนโดยการสรางงานพรอมกนเพยงครงเดยว ใหเรมจากกดป ม Ctrl พรอมกบคลกท Sheet Tab เพอเลอกชททตองการ หรอหาก
348
Copyright of www.ExcelExpertTraining.com
ตองการเลอกทกชททตดกน ใหเรมจากอยในชทแรกแลวกดป ม 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
349
Copyright of www.ExcelExpertTraining.com
ข นตอนการปรบโครงสรางตารางคานวณ 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, =
350
Copyright of www.ExcelExpertTraining.com
[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 กลบมาแฟมปลายทาง จะพบวาสตรเกาถกแกไขใหดงขอมลมาจากแฟมตนทางใหมให
351
Copyright of www.ExcelExpertTraining.com
เองทนท
ขอควรระวงในการใชขอมลท link ขามแฟม
1. โครงสรางภายในของแฟมตนทางตองเหมอนกนทกแฟม โดยตาแหนงเซลลใดเปนขอมลอะไรกตองกาหนดใหทกแฟมใชตาแหนงเซลลเดยวกนทงหมด
2. หากแฟมตนทางมชทเดยวแตใชชอชทตางกนเชนในตวอยางนใชชอชทวา Case1, Case2, และ Case3 เมอสง Change Source จะพบวา Excel สามารถปรบสตร link ขามแฟมใหถกตอง แตถาแฟมตนทางมหลายชท ตองตงชอชทใหตรงกนทกแฟมดวย มฉะนน Excel จะมขนตอนเปดจอขนมาถามวาใหจบชอชทใดแทนดวยชอชทใด
3. ถาตองการแกไขโครงสรางตารางโดยเฉพาะตาแหนงเซลลในแฟมตนทาง กอนจะแกไขใดๆใหเปดทกแฟมท link กน ทงแฟมตนทาง แฟมปลายทาง รวมทงแฟมตนทางใหมทยงไมได link ขนมาบนจอใหครบทงหมดกอน จากนนจงคอยทาการแกไข เพอทาให Excel ไลแกตาแหนงอางองในสตรทอางถงแฟมทเกยวของใหเอง (ถาไมไดเปดแฟม Excel จะละเลยไมสนใจตามไปแกไขใหแมแตนอย)
4. ถาตองการ Save เพอตงชอแฟมใหมหรอยาย Folder ทเกบแฟม ใหสง Save แฟมตนทางกอนแลวจง Save แฟมปลายทางทหลง (แตถาไมไดแกไขชอแฟมหรอยาย Folder จะ Save แฟมใดกอนกได แตตอง Save ใหครบทกแฟม)
352
Copyright of www.ExcelExpertTraining.com
การออกแบบโครงสรางตารางคานวณ
แบบ Compound Module
เคยมคากลาววา Excel ไมสามารถนามาใชกบการวางแผนความตองการวสดไดหรอก เราตอง
หนไปซอโปรแกรมสาเรจรปราคาแพงเปนแสนเปนลานบาทมาใชในการวางแผนการผลต ซง
โรงงานผลตสนคาหลายๆแหงอาจคดวาไมแพง เพราะเมอนาราคาโปรแกรมสาเรจรปไปเทยบ
กบมลคาของโรงงานและสนคาทผลตแลวถอวาเปนสดสวนทนอยมาก แลวเมอนาโปรแกรม
สาเรจรปเหลานมาใช กลบพบวาไมสามารถนามาใชกบการวางแผนการผลตไดอยางสมบรณ
เสยอก ครนจะขอใหผขายโปรแกรมสาเรจรปชวยแกไขดดแปลงโปรแกรมใหใหมกถกคด
คาใชจายเปนเงนอกมากมาย ทแยทสดกคอ พอซอโปรแกรมมาใชไดสกพก เจาตวบรษททขาย
โปรแกรมใหกลบปดตวเลกกจการไปแลว เปนเหตใหโปรแกรมสาเรจรปทไดมาถกนามาใชงาน
แคครงๆกลางๆหรอถงกบเลกใชไปเลยกม
คนทเกงคอมพวเตอรไมวาจะเปนโปรแกรมเมอรหรอผทคลกคลอยในแวดวง IT มกเขาใจวา
ปญหาการคานวณยากๆ ตองหาทางเขยนโปรแกรมหรอหาซอโปรแกรมสาเรจรปทถกสราง
ขนมาเพอใชแกปญหายากๆเหลานนโดยเฉพาะ แมแตคนทเกง Excel กตาม มกชอบคดวาตอง
ใชโปรแกรม VBA (Visual Basic for Applications) เปนทางออกสดทายเมอไมสามารถใชสตร
หรอคาสงบนเมนของ Excel ชวยในการแกปญหาทวายากนนได ซงถาวาไปแลวกไมใชการคด
ทไมมเหตผล เพราะปญหาการคานวณยากๆ ยกตวอยางเชนการวางแผนการผลต มสงทตอง
คานงถงหลายอยางทเกยวของกบการวางแผน เชน เงอนไขทเกยวของกบยอดสนคาคงเหลอ
ตนงวดปลายงวด ยอดวตถดบทตองสงซอซงยงสมพนธกบโครงสรางผลตภณฑหรออตรา
สวนผสม หากวตถดบขาดมอกตองสงซอมาสารองไวใหเพยงพอซงเกยวของกบเงอนไขการ
ขายของผขายเขาไปอก และทงหมดนยงตองหาทางกาหนดเวลาทจะตองสงผลตเพอใหได
จานวนสนคาตามตองการ ณ กาหนดเวลาทตองการ .... แคเหนปญหาทเกยวของเหลานกแทบ
ไมอยากจะคดดวยสมองแลวใชไหม หลายตอหลายคนจงพากนตอบวา หนไปซอโปรแกรม
สาเรจรปมาใชกนดกวา
จากประสบการณทผมคลกคลอยกบ Excel มานานกวายสบปพบวา คนทเกง Excel มากๆมก
ขาดความรเรองการวางแผนการผลต สวนคนทเกงในการวางแผนการผลตกมกจะไมเกง Excel
จงทาใหไมมใครทสามารถนาความรทง Excel และการวางแผนการผลตมาใชงานรวมกนเสยท
ทางสมาคมสงเสรมเทคโนโลย (ไทย-ญป น) ไดกรณาใหผมเขาอบรมหลกสตรการวางแผนการ
353
Copyright of www.ExcelExpertTraining.com
ผลตทสมาคมจดขน ทาใหเกดแนวทางใช Excel โดยออกแบบตารางคานวณแบบ Compound
Module นข นมา จงใครขอใชโอกาสน ขอบคณสมาคมสงเสรมเทคโนโลย (ไทย-ญป น) เปน
อยางยง ซงคงไมเปนการกลาวทเกนไปวา ในโลกนมแตประเทศไทยของเราเทานนทม
เทคโนโลยการออกแบบตารางคานวณแบบ Compound Module หรอหากประเทศอนทาไดก
นาจะเรยนรมาจากเราอกตอหนง
ลกษณะโครงสรางตารางคานวณแบบ Compound Module
โครงสรางตารางคานวณแบบ Compound Module เกดจากแนวความคดทจะใชตาราง Excel
หลายๆเซลลตอกนสาหรบการคานวณทตอเนองกนหลายๆขน พอเซลลหนงคานวณขนหนง
เสรจ กใหสงคาไปคานวณตอในอกเซลลหนง แลวสงคาตอๆกนไปยงเซลลทอยในพนทตาราง
คานวณชดเดยวกน ซงในตารางคานวณชดเดยวกนนอาจตองใชจานวนเซลลตงแต 2 เซลลขน
ไปจนถงนบรอยนบพนเซลลกเปนไดเพอใหไลคานวณตงแตตนจนจบ
แนวความคดดงกลาวนฟงดแลวกไมเหนเปนเรองแปลกใชไหม คณเองกใชตาราง Excel ใน
แบบทกลาวนเปนกนอยแลว เพยงแตวาแทนทจะใชตารางคานวณเพยงชดเดยวเพอคานวณให
ผลลพธทตองการแลวเสรจ เรายงตองหาทางใชตารางคานวณชดถดไป ทมหนาตาตาราง
เหมอนกบตารางคานวณชดแรก เพอใชในการคานวณซาแบบเดยวกบการคานวณในตาราง
คานวณชดแรกซาตอไปอกใหได โดยหาทางสรางสตรในตารางคานวณชดถดไปใหสามารถรบ
คาจากตารางคานวณชดกอน (Simple Compound Module) หรอเลอกรบคาตารางคานวณชด
ใดๆกไดมาใชคานวณซาอก (Dynamic Compound Module)
องคประกอบสาคญทเปนสวนชวยใหเราสามารถสรางตารางคานวณขนเพยงชดเดยว จากนน
สามารถสง Copy แลวนาไป Paste ใหเกดตารางคานวณชดตอไปซงมสตรซากบตารางคานวณ
ชดแรกทกเซลลกคอ ขอใหหลกเลยงการกาหนดตาแหนงอางองใดๆในสตรแบบ Absolute
(เชน $A$1) แตใหใชการกาหนดตาแหนงอางองแบบ Relative (เชน A1) แทน หรอถา
หลกเลยงไมได กขอใหใชตาแหนงอางองแบบ Mixed ในแบบควบคมตาแหนง Column ให
คงท (เชน $A1) โดยใหใชใหนอยทสด เพราะถากาหนดตาแหนงอางอง $A1 ไว จะตอง Paste
ตารางคานวณชดถดไปในแนว Column เดมเสมอ มฉะนนการอางองจะผดเพยนจากตาแหนงท
ตองการ
ผทคนเคยกบการสรางตารางคานวณตองทราบถงประโยชนของการใสเครองหมาย $ เพอชวย
ควบคมตาแหนงอางองในสตรวามความสาคญเพยงใด แมเครองหมาย $ จะชวยใหเราสรางสตร
354
Copyright of www.ExcelExpertTraining.com
แลว 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 ชวโมง
ปญหาทตองคานงถงในการกาหนดขนตอนการผลตในตวอยางนกคอ เราตองหาทางสราง
ตารางคานวณทสามารถจดลาดบการผลตกอนหลงแบบใดกได อกทงตองหาทางสรางสตรให
355
Copyright of www.ExcelExpertTraining.com
กาหนดเวลาเรมผลตในแตละขนตอนของสนคาแตละตว ตอเนองกบเวลาผลตเสรจในขนตอน
กอนหนา หรออกนยหนงหามสงผลตสนคาชนดถดไป หากสนคาชนดแรกยงอยในกระบวนการ
ผลตขนตอนนนๆ ดงรปตอไปน
ขอใหพจารณาภาพ Gantt Chart ในลาดบการผลตของ Process 2 จะพบวาเมอสนคา A ผลต
เสรจในเวลา 8:30 นาฬกา แตยงไมสามารถนาสนคา D มาผลตตอใน Process 2 ไดทนท
เพราะในขณะนนสนคา D ยงอยในกระบวนการผลตของ Process 1 อย ตองรอจนถงเวลา 8:40
นาฬกา จงเรมผลตสนคา D ใน Process 2 ตอไปได แลวตอเมอสนคา D ผลตเสรจใน Process
2 กสามารถนาสนคา C และ B มาผลตตอใน Process 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
356
Copyright of www.ExcelExpertTraining.com
เซลลสาคญทสดททาให Compound Module สามารถนาไปใชงานตอไปไดในตารางชดอนคอ
เซลล D14 มสตร =MAX(D10,C15) โดยขอใหสงเกตวาตาแหนงเซลล D10 ทกาหนดไวใน
สตร MAX นเปนตาแหนงเซลลทอยเหนอขอบเขตของตาราง Module (B12:Z15) เพอใหใช
ตาแหนงเซลล D10 ซงไมไดกาหนดเครองหมาย $ ไวหรออกนยหนงคอเซลลทอยเหนอพนท
ตาราง Module ขนไปอก 2 เซลล สาหรบนาเวลา Stop Time ของ 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 ดานบนมาใชตอไปนนเอง
357
Copyright of www.ExcelExpertTraining.com
ตวอยางตารางคานวณ 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 เปนโครงสรางในการผลต หาก
ในภายหลงมวสด G เพมเตม หรอเลกใชวสด B หรอใชวสดอนมาแทนท และหากตวเลขจานวน
358
Copyright of www.ExcelExpertTraining.com
การใชวสดและ 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 และใชเซลล C6 บนทกชอ Parent โดยใชเซลล 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 จะคานวณจานวนวสดทตองการและกาหนดเวลาทตองเรม
สงผลตเพอใหไดสนคาหรอวสดเสรจตามกาหนดใหทนท
359
Copyright of www.ExcelExpertTraining.com
หลกการคานวณทใช เกดจากการหาตาแหนงเลขท row สดทายของแตละ Module (Last Row
of Module) ใน Column D ใหไดกอน จากนนจงใชเลขเลขท row สดทายของแตละ Module
สาหรบดงตวเลขการสงผลตจาก Module ของ Parent ไปใชในการสงผลตของ Module ทเปน
Child
เพอทาใหเหนลาดบการคานวณไดชดเจนยงขน ขอใหด Row 14 ซงเปนการสงผลตวสด E
ใหกบวสด C พอคณบนทกชอวสด C ลงไปในเซลล C14 จะพบวาในเซลล D14 คานวณหาเลข
9 มาให ซงเกดจากสตร =MATCH(C14,B$1:B$1001,0)+1 โดยสตร Match จะนาชอ Parent
C ไปเทยบหาตาแหนงจากพนท B1:B1001 พบวาชอ C อยในลาดบท 8 จากนนนาไปบวก 1
ใหกลายเปนเลขท Row 9 ซงเปนตาแหนงเลขท row สดทายของ Module (Last Row of
Module) ทม Child ชอ C
พอไดเลข 9 ในเซลล D14 แลว จากนนจงใชสตรดงตวเลข 150 จากเซลล N9 สงตอมาใชท
เซลล N14 โดยใชสตร =INDIRECT(ADDRESS($D14,COLUMN()))*$E14 โดยในการผลต
วสด C จานวน 1 หนวย ตองอาศยวสด E จานวน 2 หนวย (เซลล E14 = 2) จงตองสงผลต E
จานวน 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 แทน
360
Copyright of www.ExcelExpertTraining.com
วธนา 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 สาหรบวางแผนความตองการวสดและจดตารางการผลต ทจดอบรมขน ณ
สมาคมสงเสรมเทคโนโลย (ไทย-ญป น)
361
Copyright of www.ExcelExpertTraining.com
ตวอยางในแฟม CompoundModuleMRP(Ans).xls นอกเหนอจากแสดงการใช Compound
Module แบบซบซอนโดยนาโครงสรางผลตภณฑ 2 โครงสรางมาใชรวมกนแลว ยงแสดงวธการ
สรางตารางฐานขอมลเพอเกบคาตวแปร แลวใชสตรดงคาจากตารางตวแปรไปยงเซลลรบคาใน
Module ใหเองอกดวยเพอชวยอานวยความสะดวกในการกรอกขอมลและลดโอกาสผดพลาด
จากการกรอกขอมลผดชอง จากนนเมอไดผลลพธทคานวณใน Compound Module เสรจ
เรยบรอยกยงแสดงวธใชสตรดงผลลพธไปสรปเพอเปรยบเทยบกบจานวนการผลตทเกดขนจรง
ทอาจแตกตางจากแผนการผลตทวางไว
บทสงทาย
การออกแบบตารางคานวณทนามาอธบายน นาจะเปนการจดประกายความคดใหผใช Excel
สามารถสรางสรรคงานไดหลายหลายรปแบบมากขน ผมเชอวาหลกการหรอแนวความคดทได
ใหไปแลวนยอมเปนสงทสาคญมากกวาตวอยางทมประโยชนจากดแคใชกบการแกไขปญหา
หนงเสรจแลวกแลวกนไป ขอเพยงสามารถนาหลกการหรอแนวความคดไปพฒนาตอ ยอมเปน
แนวทางใหสามารถใช Excel แบบคอมพวเตอร สามารถนา Excel ไปประยกตใชกบงานทหลาย
คนคดวาทาไมไดมากอน หาทางสรางตารางคานวณทสะดวกตอการนามาใชงานซาแลวซาอก
งายตอการแกไข และทสาคญคอเปนหลกการทงายตอความเขาใจ
Copyright
ถาผใดประสงคจะนาขอมลในเวบ XLSiam.com น ไปเผยแพรโดยการพมพแจก หรอทาสาเนา
ผานสอใดๆ เพอใชในการศกษาของตนเอง หรอเพอนาไปแจกผอนเปนวทยาทานโดยไมคด
มลคา และเปนการกระทาทใชการลงทนลงแรงของตนเอง ผนนกรณาพมพไดหรอทาสาเนาได
โดยไมตองขออนญาตแตอยางใด ขอเพยงระบทมาของขอมลเหลานนไวเสมอ
สาหรบขอมลสวนของผซ งรวมใชเวบนในการเขยนบทความ ถอเปนสทธของผเขยนบทความ
หรอผใหคาตอบ ทจะนาขอมลสวนของตนเองไปใชตามทตนตองการ และผนนสามารถเลอกท
จะกาหนดเงอนไขในลขสทธในสวนขอมลของตนเอง ในการยนยอมใหผอ นนาขอมลของตนไป
ใช ใหแตกตางไปจากขอกาหนดในลขสทธของเวบนหรอไมกได หากมไดกาหนดเงอนไขใดๆ
ไว ถอวาใหเปนไปตามขอกาหนดของลขสทธของเวบนทกาหนดไว
หามผอนใดนาขอมลบนเวบ XLSiam.com นไปเผยแพรเพอประโยชนใดๆกตาม ทเกยวของกบ
การมงคาหากาไรทงทางตรงและทางออม หรอมสวนไดเสยหรอหวงผลอน ซงมใชความพง
พอใจจากการใหเพอเปนวทยาทาน
หากทาเพอการจาหนายหรอเกยวของกบการแสวงหาผลประโยชนอนใด ไมวาจะเปนการหา
รายไดหรอชวยลดคาใชจายของตนหรอบรษทของตนทตองรบภาระ เชน นาเนอหาทงหมดหรอ
บางสวนไปรวบรวมเปนเลมเพอขายรวมกบเรองอน หรอนาไปใชเปนเอกสารหรอใชประกอบสอ
ใดๆในการอบรมแทนทจะลงทนจดหาตารามาเอง หรอใชการลงทนลงแรงของผอน ซงไมใช
การลงทนลงแรงของตนเอง ขอสงวนลขสทธขอมลทงหมดในเวบนตามกฎหมาย
สมเกยรต ฟงเกยรต
20 เมษายน 2556
Recommended