บทความนี้คือส่วนหนึ่งของโครงการ ร่วมสร้าง “หนังสือคู่มือ Excel ที่เจ๋งที่สุด” ใครที่มี comment เพื่อแนะนำ ปรับปรุงหนังสือได้ คุณจะได้เครดิตในฐานะผู้ร่วมเขี
ในส่วนนี้จะปูพื้นฐานฟังก์ชั่นที่จำเป็นมากๆ ต่อการใช้งานส่วนใหญ่ในชีวิตจริง ทั้งใช้ในการเขียนสูตรปกติ และใช้ในเครื่องมืออื่นๆ ของ Excel เช่น Conditional Formatting, Advanced Filter เป็นต้น
ฟังก์ชั่นที่ใช้ในการคำนวณสรุปผล
การ “สรุปผล” จากข้อมูลจำนวนมาก สามารถทำได้หลากหลายวิธี เช่น หาผลรวม (SUM) , หาค่ามากที่สุด (MAX), ค่าน้อยที่สุด (MIN), หาค่ากลางของข้อมูล ซึ่งมีหลายประเภท เช่น ค่าเฉลี่ย(AVERAGE) ฐานนิยม (MODE) มัธยฐาน(MEDIAN), หาค่าการกระจายตัวของข้อมูล ซึ่งก็มีหลายประเภทอีกเช่นกัน เช่น ค่าพิสัย, ค่าเบี่ยงเบนมาตรฐาน
การสรุปผลแบบ Basic
การหาค่ากลางของข้อมูล คุณเองจะต้องเข้าใจความหมายของตัวสรุปผลแต่ละตัว และใช้ให้เหมาะกับแต่ละสถานการณ์ เพื่อตีความข้อมูลที่มีอยู่อย่างถูกต้อง โดยเฉพาะการสรุปผลข้อมูลโดยใช้การวัดค่ากลางหรือการกระจายของข้อมูล ซึ่งมีให้เลือกอยู่หลายตัว และไม่ตรงไปตรงมาเหมือนการหาผลรวมธรรมดา ซึ่งจริงๆ แล้วเป็นสิ่งที่คุณน่าจะเคยเรียนมาในวิชาคณิตศาสตร์ หรือวิชาสถิติเบื้องต้นกันบ้างแล้ว แต่ใครไม่เคยเรียนหรือลืมไปแล้วก็ไม่เป็นไร เดี๋ยวผมจะทวนให้แบบเร็วๆ ครับ
เราวัดค่ากลางของข้อมูล เพื่อใช้เป็น “ตัวแทน” กลุ่มของข้อมูลนั้นๆ เพื่อความสะดวกในการตีความและทำความเข้าใจ ซึ่งค่ากลางนั้นมีอยู่หลายแบบ แต่ตัวที่เป็นที่นิยม มีดังนี้
- Mean (ค่าเฉลี่ยเลขคณิต)=AVERAGE
- เป็นค่ากลางที่นิยมที่สุด คำนวณโดยเอาข้อมูลทุกค่าบวกกันแล้วหารด้วยจำนวนข้อมูล
เช่น = AVERAGE(A1:A5) มันจะเอา (A1+A2+A3+A4+A5)/5 - ถ้ามีค่ามากหรือน้อยผิดปกติอาจจะดึงค่า MEAN ไปในทิศทางนั้นๆ อาจให้ผลไม่ดีได้
- เป็นค่ากลางที่นิยมที่สุด คำนวณโดยเอาข้อมูลทุกค่าบวกกันแล้วหารด้วยจำนวนข้อมูล
- Mode (ฐานนิยม) = MODE
- เป็นการวัดค่ากลาง โดยจะแสดงข้อมูลที่เกิดขึ้นบ่อยที่สุด (มีความถี่สูงสุด)
- Median (มัธยฐาน)= MEDIAN
- เป็นการวัดค่ากลาง โดยจะนำค่ามากเรียงกันจากน้อยไปมาก แล้วดูตำแหน่งตรงกลาง
- สามารถใช้ได้แม้กับข้อมูลที่มีค่าที่มากหรือน้อยผิดปกติ เพราะค่าเหล่านั้นจะไม่ส่งผลใดๆ ต่อการคำนวณเนื่องจากจะถูกเรียงลำดับอยู่ที่หัวและท้าย
- มีฟังก์ชั่นคล้ายๆ กัน คือ QUARTILE (ควอไทล์) และ PERCENTILE (เปอร์เซ็นต์ไทล์) ซึ่ง Concept คล้ายกัน แต่จะแบ่งช่วงข้อมูลต่างกัน
การหาค่าการกระจายของข้อมูล
เราวัดการกระจายของข้อมูล เพื่อดูว่าข้อมูลแต่ละตัวกระจายกันหรือห่างกันมากแค่ไหน กลุ่มข้อมูลที่กระจายกันมากๆ ค่ากลางหรือตัวแทนของข้อมูลอาจจะไม่ได้ใกล้เคียงกับข้อมูลบางตัวก็ได้
เช่น เรามีกลุ่มข้อมูล 2 กลุ่ม มีค่าเฉลี่ยเท่ากัน คือ 70 แต่กลุ่มแรกมีการกระจายตัวน้อย (ข้อมูลมีการเกาะกลุ่มอยู่ที่ใกล้ๆ 70) อีกกลุ่มมีการกระจายตัวมาก เช่น อาจกระจาย 40-100 เลยก็ได้
การวัดการกระจายตัวที่นิยม มีอยู่ 3 แบบ คือ
- Range (พิสัย) คือการหาผลต่างของค่าสูงสุดและค่าต่ำสุดของข้อมูลนั้น
- ดังนั้นสามารถใช้สูตร MAX มาลบด้วย MIN ได้ เช่น =MAX(A1:A10)-MIN(A1:A10)
- ข้อมูลที่ได้จะค่อนข้างหยาบ เพราะใช้ข้อมูลแค่ 2 ตัวคือ ค่าสูงสุดและต่ำสุดเท่านั้น
- Standard Deviation (ส่วนเบี่ยงเบนมาตรฐาน) เป็นการวัดการกระจายที่มีความนิยมมากที่สุด หลักการคล้ายๆ การหาค่าเฉลี่ยของระยะห่างระหว่างข้อมูลแต่ละตัวกับค่าเฉลี่ยเลขคณิต
- STDEV หรือ S ใช้กับข้อมูลที่เป็นกลุ่มตัวอย่าง (S=Sample) และ
- STDEVP หรือ P เอาไว้ใช้กับข้อมูลทั้งหมด (P=Populations)
ฟังก์ชั่นกลุ่มตรรกศาสตร์ TRUE/FALSE (จริง/เท็จ)
เรื่องของตรรกะ (การใช้เหตุผล) เป็นสิ่งที่หลายๆ คนคิดว่าคงได้เจอแค่ในวิชาคณิตศาสตร์ แต่ความจริงแล้วใน Excel ก็มีหลายครั้งที่เราจะต้องใช้ฟังก์ชั่นตรรกศาสตร์มาช่วย โดยเฉพาะในเครื่องมือต่างๆ มักจะต้องใส่สูตรที่เป็นตรรกะเข้าไปทั้งสิ้น ดังนั้นเรามาทวนความรู้ตรรกศาสตร์พื้นฐานกันดีกว่าครับ
ก่อนอื่นต้องบอกว่า ในฟังก์ชั่นทางตรรกศาสตร์ของ Excel นั้น จะใช้กับเนื้อหาหรือ Input ที่ให้ผลเป็น TRUE/FALSE (จริง/เท็จ) ได้อย่างใดอย่างหนึ่งเท่านั้น (วิชาตรรกศาสตร์เรียกสิ่งนี้ว่า Propositions หรือ ประพจน์ แต่ช่างมันเหอะ ไม่ต้องไปสนใจศัพท์ยากๆ นั่นหรอกครับ)
ดังนั้นเราต้องแยกให้ออกก่อน ระหว่างสิ่งที่ให้ผลเป็น TRUE/FALSE ได้ กับอะไรที่ไม่สามารถให้คำตอบแบบนั้นได้ ดังตัวอย่างต่อไปนี้
ตัวอย่าง : ให้ผลเป็น TRUE/FALSE อย่างใดอย่างหนึ่งเท่านั้น
สังเกตว่าจะต้องมีเครื่องหมายเปรียบเทียบ (COMPARISON OPERATOR) อยู่ด้วย เพื่อทำให้ค่าออกมาเป็น TRUE หรือ FALSE เช่น = เท่ากับ, < น้อยกว่า, > มากกว่า, <> ไม่เท่ากับ, >= มากกว่าหรือเท่ากับ, <= น้อยกว่าหรือเท่ากับ
ตัวอย่าง : ไม่สามารถให้ผลเป็น TRUE/FALSE หรือเป็นเรื่องที่ขึ้นอยู่กับผู้มอง (Subjective)
การคำนวณเกี่ยวกับ ค่า TRUE/FALSE
เมื่อเรารู้ Input แต่ละตัวแล้วว่าสามารถออกผลเป็น TRUE หรือ FALSE ได้ เราก็สามารถเอา input แต่ละตัวมาเชื่อมกันได้ด้วยฟังก์ชั่นทางตรรกศาสตร์ เพื่อดูว่าเมื่อ Input รวมกันทุกอันแล้ว ผลลัพธ์สุดท้ายจะเป็นค่า TRUE หรือ FALSE เพื่อนำไปใช้กับฟังก์ชั่นอื่นๆ เช่น IF หรือใช้ในเครื่องมืออื่นๆ เช่น Conditional Formatting, Data Validation ต่อไป
แม้ว่าในวิชาตรรกศาสตร์จะมีตัวเชื่อมอยู่มากมาย เช่น
แต่ว่าใน Excel เราจะมีแค่ 3 แบบ ที่เป็นรูปแบบพื้นฐานที่สุดเท่านั้น คือ
~(นิเสธ) แทนด้วย ฟังก์ชั่น NOT :
กลับจริงเป็นเท็จ เท็จเป็นจริง
เงื่อนไข | NOT(เงื่อนไข) |
TRUE | FALSE |
FALSE | TRUE |
การใช้งาน =NOT(logical)
=NOT(3>5)
=NOT(FALSE) จะได้ TRUE เพราะกลับทิศจากเท็จเป็นจริง
“และ” แทนด้วย ฟังก์ชั่น AND
ถ้าเงื่อนไข Input ทุกอันเป็นจริง จะได้ค่าออกมาเป็นจริง กรณีอื่นจะเป็นเท็จ ตรงกับภาษาพูดว่า “และ”
เงื่อนไข1 | เงื่อนไข2 | AND(เงื่อนไข1,เงื่อนไข2) |
TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE |
FALSE | TRUE | FALSE |
FALSE | FALSE | FALSE |
การใช้งาน =AND(logical1, [logical2], …)
=AND(3>5,10-3<8)
=AND(FALSE,TRUE) จะได้ FALSE เพราะมีตัวใดตัวหนึ่ง FALSE
“หรือ: แทนด้วย ฟังก์ชั่น OR
ถ้าอย่างน้อยเงื่อนไขใดเงื่อนไขหนึ่งจริง จะได้ค่าออกมาเป็นจริง (ต้องเท็จทุกอันจึงจะออกมาเป็นเท็จ) คล้ายกับภาษาพูดว่า “หรือ”
เงื่อนไข1 | เงื่อนไข2 | AND(เงื่อนไข1,เงื่อนไข2) |
TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
การใช้งาน =OR(logical1, [logical2], …)
=OR(3>5,10-3<8)
=OR(FALSE,TRUE) จะได้ TRUE เพราะมีตัวใดตัวหนึ่ง TRUE
จะเห็นว่า OR แบบนี้ไม่เหมือนกับ กรณีพนักงานเสิร์ฟมาถามคุณว่าจะเอา “ชา หรือ กาแฟ” ดีคะ? ซึ่งปกติจะหมายถึงให้เลือก Choice อันใดอันหนึ่งเท่านั้น (เรียกว่า Exclusive OR)
inwTips : ให้เลือกแค่อันใดอันหนึ่ง หรือ Exclusive OR
ถ้าเราจะให้เลือกได้แค่อย่างใดอย่างหนึ่ง ใน Excel ไม่มีฟังก์ชั่นนี้ตรงๆ เราจะต้องผสมฟังก์ชั่นเอง
ซึ่งเราจะต้องเข้าใจเงื่อนไข นั่นคือ การที่ให้เลือกอันไหนก็ได้ได้อันใดอันหนึ่ง แปลว่า “เลือกอันไหนก็ได้ และ ต้องห้ามเป็นจริงพร้อมกัน” ดังนั้น เราต้องเขียนดังนี้
Exclusive OR = เลือกอันไหนก็ได้ และ ไม่เป็นจริงพร้อมกัน (ห้ามเลือกพร้อมกัน)
=(OR(เงื่อนไข1,เงื่อนไข2) AND NOT(AND(เงื่อนไข1,เงื่อนไข2))
=AND(OR(เงื่อนไข1,เงื่อนไข2),NOT(AND(เงื่อนไข1,เงื่อนไข2)))
เงื่อนไข1 | เงื่อนไข2 | Exclusive OR (เงื่อนไข1,เงื่อนไข2) |
TRUE | TRUE | FALSE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
การใส่เงื่อนไขด้วย IF
IF คือฟังก์ชั่น ที่ทำหน้าแสดงผลลัพธ์ 2 แบบ ขึ้นอยู่กับเงื่อนไขที่เราระบุลงไปว่าจริงหรือเท็จ? ถ้าเงื่อนไขมีผลลัพธ์เป็นจริง (TRUE) จะทำการคำนวณผลลัพธ์แบบหนึ่ง ถ้าเงื่อนไขเป็นเท็จ (FALSE) จะคำนวณผลลัพธ์อีกแบบหนึ่ง
ผมแนะนำให้มองว่า IF 1 ตัว สามารถแตกกิ่งก้านสาขาการตัดสินใจ (Decision Tree) ออกไปได้ 2 กิ่ง ดังนั้นการใช้ IF 1 ตัว จะมีผลลัพธ์ได้ 2 อย่าง คือ TRUE และ FALSE ดังนั้นถ้าหากเราต้องการให้มีผลลัพธ์การตัดสินใจที่มากกว่า 2 อย่าง เราก็จะต้องแตกกิ่งมากกว่านี้ โดยเอา IF หลายตัวมาซ้อนกันซึ่งจะอธิบายในช่วงหลังของฟังก์ชั่นนี้
Tips : การแตกผลลัพธ์ที่มีมากกว่า 2 ตัว เราสามารถใช้ฟังก์ชั่นอื่นนอกจาก IF มาช่วยได้ เช่น CHOOSE หรือ VLOOKUP ซึ่งจะขออธิบายภายหลังครับ
IF เป็นฟังก์ชั่นที่เรา “ต้องเขียนให้เป็น” เพราะมีประโยชน์ในการทำงานจริงมากและใช้บ่อยที่สุด อีกทั้งยังเป็นจุดเริ่มต้นที่ดีในการฝึกคิดอะไรที่เป็นเหตุเป็นผล โดยมันจะมีวิธีเขียนดังนี้
วิธีใช้งาน
=IF(logical_test, [value_if_true], [value_if_false])
หลักการเขียนสูตร IF
- เงื่อนไขที่เราโยนเข้าไปให้ทดสอบ ใน logical_test จะต้องออกมาเป็นจริง (TRUE) หรือเท็จ (FALSE) เหมือนตอนที่เราศึกษาเรื่องตรรกศาสตร์ก่อนหน้านี้เลยครับ
- นอกจากค่า TRUE/FALSE แล้ว IF จะตีความเลข 0 เป็น FALSE เลขอื่นๆ เป็น TRUE
- ค่าผลลัพธ์เมื่อเงื่อนไขจริง (Value if true) และ ผลลัพธ์เมื่อเงื่อนไขเท็จ (Value if false) สามารถใส่สูตรที่เราเรียนรู้มาลงไปได้เลย ตัวเลข ตัวหนังสือ ฟังก์ชั่น โดยสามารถเชื่อมด้วยตัวดำเนินการต่างๆ ได้ทุกอย่างตามปกติ
- ถ้าดูดีๆจะเห็นว่า [value_if_true], [value_if_false] เป็นค่า Optional ซึ่งแปลว่าหากเราไม่ระบุอะไรลงไป กรณีจริงมันจะออกมาเป็นคำว่า TRUE กรณีเท็จมันจะออกมาเป็นคำว่า FALSE ให้ครับ
ตัวอย่าง 1
ถ้าคุณไปท้าเพื่อนว่า “ถ้า ฉันสอบตก ฉันจะเลี้ยงข้าว ไม่งั้น เธอเป็นคนเลี้ยงข้าว” และเราตกลงกับเพื่อนไว้ว่า คำว่าสอบตก คือ ได้คะแนนน้อยกว่า 50 แล้วให้เราบันทึกคะแนนสอบลงในช่อง A1
เราก็จะเขียนสูตร IF เพื่อรองรับเงื่อนไขข้างบนได้ว่า
=IF(A1<50,“ฉันเลี้ยงข้าว”, “เธอเลี้ยงข้าว”)
แปลว่า มีกิ่งการตัดสินใจ 2 กิ่ง คือ
กิ่งเงื่อนไขเป็นเท็จ : หากค่าใน A1 มากกว่าหรือเท่ากับ 50 (สอบไม่ตก) จะแสดง คำว่า เธอเลี้ยงข้าว
กิ่งเงื่อนไขเป็นจริง : หากค่าใน A1 น้อยกว่า 50 (สอบตก) จะแสดงค่าออกมาเป็นคำว่า ฉันเลี้ยงข้าว
ซึ่งในตัวอย่างข้างบน ในช่อง A1 มีค่า 30 ซึ่งทำให้เงื่อนไขเป็นจริง ผลลัพธ์จึงเป็นคำว่า “ฉันเลี้ยงข้าว”
Tips: ที่ต้องเขียนว่า “ฉันเลี้ยงข้าว” หรือ “เธอเลี้ยงข้าว” ในเครื่องหมายคำพูด เพราะ หากไม่ใส่เครื่องหมายคำพูด Excel จะตีความคำว่า ฉันเลี้ยงข้าว หรือ เธอเลี้ยงข้าว เป็นชื่อ (Defined Name) ที่ตั้งไว้ ซึ่งถ้าเราไม่ได้มีการตั้งไว้จริง ก็จะได้ผลผิดๆ ดังนั้นต้องใส่เครื่องหมายคำพูด เพื่อให้ Excel จะตีความว่าเป็น Text ธรรมดาตัวหนึ่ง
ตัวอย่าง 2
สมมติว่าเรามีข้อมูลมาว่า น้ำหนักมาตรฐานของชายไทย หญิงไทย เป็นไปตามสูตรดังนี้
น้ำหนักมาตรฐาน = [ความสูง (cm.) -100] แล้วคูณด้วยตัวคูณพิเศษ ซึ่งแยกเป็น 2 กรณี คือ
ผู้ชาย : ? X 0.9 แต่ถ้าเป็น ผู้หญิง : ? X 0.8 เราสามารถเขียนสูตรใน Excel ได้ดังนี้
หรือจะเขียนแบบข้างล่างนี้ก็ได้ เขียนสูตรได้สั้นกว่าด้วย โดยดึงเอาสิ่งที่เหมือนกันไปไว้นอก IF
วิธีแรก : เขียนทุกอย่างอยู่ใน IF | วิธี#2 : เขียน IF เฉพาะส่วนที่ต่างกัน |
สิ่งที่ Excel จะทำคือดูว่าค่าใน B7 เป็นคำว่า “ชาย” หรือไม่?
- หากค่าใน B2 เป็น “ชาย” –> เงื่อนไขเป็นจริง –> ใช้สูตร (B5-100)*0.9 –> คำนวณได้ 63 kg
- หากค่าใน B2 ไม่ใช่ “ชาย” –> เงื่อนไขเป็นเท็จ –>ใช้สูตร (B5-100)*0.8 –> คำนวณได้ 56 kg
การผสมฟังก์ชั่นเบื้องต้น
การเขียนสูตร Excel นั้น ความยากไม่ได้อยู่ที่ว่าแต่ละฟังก์ชั่นใช้งานอย่างไร แต่ยากตรงที่ว่าในสถานการณ์ปัญหาที่พบอยู่จะเลือกใช้สูตรไหนหรือฟังก์ชั่นไหนมาแก้ช่วยปัญหามากกว่า และในหลายๆ ครั้ง สูตรหรือฟังก์ชั่นเดียว เดี่ยวๆ ก็ไม่สามารถแก้ปัญหาได้ ดังนั้นการผสมฟังก์ชั่นเพื่อนำความสามารถของฟังก์ชั่นแต่ละตัวมารวมพลังกันจึงเป็นสิ่งจำเป็นที่ต้องเรียนรู้
โดยหลักการผสมฟังก์ชั่นอยู่ที่ว่า เราต้องรู้ว่า
- แต่ละ Argument ของฟังก์ชั่นต้องการ INPUT เป็นข้อมูลประเภทไหน และ
- แต่ละฟังก์ชั่นให้ OUTPUT ผลลัพธ์ออกไปเป็นข้อมูลประเภทไหน (อันนี้พอจะสังเกตได้)
เมื่อรู้ 2 ข้อข้างบน เราก็จะรู้ว่าจะสามารถเอาฟังก์ชั่นไหน มาใส่ใน Argument ของอีกฟังก์ชั่นหนึ่งได้
เช่น การใช้ IF ผสมกับ AND
ในส่วนของ Logical_test ของฟังก์ชั่น IF นั้นต้องการข้อมูลประเภท Logical (ตรรกะ) นั่นคือค่า TRUE/FALSE ซึ่งฟังก์ชั่นหมวดตรรกศาสตร์ อย่างพวก AND, OR, NOT นั้นจะให้ผลลัพธ์เป็น TRUE/FALSE เช่นกัน แบบนี้แปลว่าเราฟังก์ชั่น AND มาผสมไว้ในส่วนของ Argument นี้ได้
ตัวอย่าง : การเขียน IF แบบมีหลายเงื่อนไขด้วยการผสมกับฟังก์ชั่นทางตรรกศาสตร์
หากเราต้องการใช้สูตร IF แบบมีหลายเงื่อนไข เราสามารถเอาแต่ละเงื่อนไขมาเชื่อมกับฟังก์ชั่นทางตรรกศาสตร์ก่อนที่จะเอาไปใส่ใน IF ได้ ยกตัวอย่างเช่น
หากนักเรียนสอบ Final ได้คะแนนน้อยกว่า 50 คะแนน และ ทำกิจกรรมเพื่อสังคม ไม่ถึง 3 ครั้ง ครูจะให้นักเรียนสอบตก นอกนั้นถือว่าสอบผ่าน
สมมติให้คะแนนสอบ Final อยู่ในช่อง A1 และ จำนวนครั้งของการทำกิจกรรมเพื่อสังคมอยู่ช่อง B1
จะสามารถเขียน logic ได้ดังนี้
เงื่อนไข1 (A1<50) | เงื่อนไข2 (B1<3) | AND(เงื่อนไข1,เงื่อนไข2) |
TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE |
FALSE | TRUE | FALSE |
FALSE | FALSE | FALSE |
สมมติให้ผลลัพธ์แสดงในช่อง C1 ว่า =IF(AND(A1<50,B1<3), “สอบตก”, “สอบผ่าน”)
สิ่งที่ Excel จะทำคือดูว่าค่าใน A1 น้อยกว่า 50 และ B1 น้อยกว่า3 หรือไม่?
หากดูตารางการแปลความของฟังก์ชั่น AND จะได้ผลลัพธ์ดังนี้
- สมมติว่าค่าในA1เป็น15และB1เป็น4
- AND(TRUE,FALSE) –> FALSE เงื่อนไขเป็นเท็จ –> แสดงค่า “สอบผ่าน” ในช่อง C1
- สมมติว่าค่าในA1เป็น40และB1เป็น2
- AND(TRUE,TRUE) –> TRUE เงื่อนไขเป็นจริง –> แสดงค่า “สอบตก” ในช่อง C1
ซึ่งการทำการเชื่อมฟังก์ชั่น IF กับ AND, OR, NOT นั้น ถือว่าเป็นก้าวแรกของการพัฒนาทักษะการผสมฟังก์ชั่น ซึ่งเป็นทักษะสำคัญที่จะต้องเรียนรู้ต่อไปในอนาคต
ตัวอย่าง : การเขียน IF ซ้อน IF
ในเมื่อเราผสมฟังก์ชั่นได้แล้ว และทำไมเราจะใช้ IF ซ้อนกันเองไม่ได้ล่ะ!
เทคนิคการเขียน IF ซ้อนกันหลายตัว
- ให้มองว่า IF แต่ละตัว คือตัวเงื่อนไข ซึ่งสามารถแตกกิ่งการตัดสินใจ (Decision Tree) ได้ 2 กิ่ง คือ จริง และ เท็จ
- ในแต่ละกิ่ง ที่ จริง /เท็จ เราสามารถเลือกที่จะใส่ IF ซ้อนลงไปอีกหรือไม่ก็ได้
- จำนวนวงเล็บเปิดต้องเท่ากับวงเล็บปิด (ในตัวอย่างข้างล่างนี้มี 3 คู่ คือเปิด-ปิดอย่างละ 3 อัน)
ตัวอย่าง : การแยกกิ่งขั้นที่สองจากแค่เงื่อนไขที่เป็นเท็จใน Step แรก
=IF(เงื่อนไข1,TRUE1,IF(เงื่อนไข2,TRUE2,FALSE2))
สังเกตว่ามี IF 2 ตัว จึงต้องมีวงเล็บเปิด 2 รอบ และวงเล็บปิด 2 รอบ เท่ากัน
ตัวอย่าง : การแยกกิ่งขั้นที่สองจากทั้งเงื่อนไขที่เป็นจริงและเงื่อนไขที่เป็นเท็จใน Step แรก
=IF(เงื่อนไข1,IF(เงื่อนไข2,TRUE2,FALSE2),IF(เงื่อนไข3,TRUE3,FALSE3))
สังเกตว่ามี IF 3 ตัว จึงต้องมีวงเล็บเปิด 3 รอบ และวงเล็บปิด 3 รอบ เท่ากัน
ตัวอย่าง : การใช้งานจริง
หากคุณต้องการจะจัดเกรดจากคะแนนดิบของนักเรียน โดยมีเกณฑ์ดังนี้
- คะแนน <50 : F
- 50 <= คะแนน<60 : D
- 60 <= คะแนน<70 : C
- 70 <= คะแนน<80 : B
- คะแนน >= 80 : A
สมมติคะแนนดิบอยู่ในช่อง A2 และเราจะใส่เกรดในช่อง B2
ในช่อง B2 เราสามารถตีความเป็น Diagram ได้แบบนี้
=IF(A2<50,“F”,IF(A2<60,“D”,IF(A2<70,“C”,IF(A2<80,“B”,“A”))))
อธิบายแนวคิด
ให้ใส่เงื่อนไขทีละ Step อันแรกสูตร IF ก็จะเช็คว่าค่าใน A2 น้อยกว่า 50 หรือไม่? ถ้าน้อยกว่าให้แสดงเกรด F ถ้าไม่น้อยกว่า สูตร IF ก็จะเช็คต่อว่าค่าใน A2 < 60 หรือไม่?… ถ้าน้อยกว่าให้แสดงเกรด D
ที่ทำแบบนี้ได้โดยไม่ต้องเขียนว่าต้องน้อยกว่า 60 และมากกว่า 50 อีกทีหนึ่ง เพราะว่าถ้ามันน้อยกว่า 50 จะกลายเป็น F ไปแล้วใน Step แรก จึงถือว่าเป็นเหตุการณ์ที่จะไม่รอดมาถึง Step ที่สองนี้
Step ถัดไป ถ้าไม่น้อยกว่า 60 สูตร IF ก็จะเช็คต่อว่า < 70 หรือไม่? …ทำแบบนี้ไปเรื่อยๆ จนถึง Step สุดท้าย ซึ่งถ้าค่า A2 น้อยกว่า 80 ก็จะเป็นเกรด B และถ้าไม่น้อยกว่า (คือ มากกว่าหรือเท่ากับ 80) ก็จะแสดงเกรด A ได้เลย
การใช้ฟังก์ชั่นตรรกศาสตร์ซ้อนกัน
ผมขอลองยกตัวอย่างการเอา AND มาซ้อนกับ OR ดูบ้างนะครับ
เช่น =AND(เงื่อนไข1,OR(เงื่อนไข2,เงื่อนไข3))
อันนี้อาจจะดูงง แนะนำให้ ไล่ดูจากวงเล็บที่อยู่ในสุดก่อน จากนั้นค่อยไล่ออกไปชั้นนอก นะครับ
ผมทำตารางสรุปการคิดมาให้แล้ว วิธีอ่านไล่จากซ้ายไปขวานะครับ
(ผมเอาส่วนวงเล็บชั้นในไว้ทางซ้ายให้แล้ว)
เงื่อนไข2 | เงื่อนไข3 | =OR(เงื่อนไข2,เงื่อนไข3) | เงื่อนไข1 | =AND(เงื่อนไข1,OR(เงื่อนไข2,เงื่อนไข3)) |
TRUE | TRUE | TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE | TRUE | TRUE |
TRUE | TRUE | TRUE | FALSE | FALSE |
TRUE | FALSE | TRUE | FALSE | FALSE |
FALSE | TRUE | TRUE | TRUE | TRUE |
FALSE | FALSE | FALSE | TRUE | FALSE |
FALSE | TRUE | TRUE | FALSE | FALSE |
FALSE | FALSE | FALSE | FALSE | FALSE |
- แปลว่า หาก เงื่อนไข2หรือ3 อันใดอันหนึ่งเป็นจริง ผลจาก OR จะได้จริง
- และ เงื่อนไข1 ต้องเป็นจริง ด้วย เมื่อ AND กันสุดท้ายจึงจะออกมาจะเป็นจริง