---
title: ทำอย่างไรเราถึงจะมี Logic ดีขึ้น? ตอนที่ 2
url: https://www.thepexcel.com/better-logic-pt2/
type: post
date: 2020-02-13
updated: 2020-04-10
author: Sira Ekabut
categories: [Personal]
tags: [logic]
---

# ทำอย่างไรเราถึงจะมี Logic ดีขึ้น? ตอนที่ 2

[ในตอนที่แล้ว](https://www.thepexcel.com/better-logic-pt1/)เราได้เรียนรู้คร่าวๆ ไปแล้วว่าคนเราสามารถพัฒนาให้ Logic ดีขึ้นได้ ในบทความนี้เราจะมาฝึกแปลงความคิด หรือข้อความธรรมดาๆ ให้เป็นข้อความเชิง Logic กัน

 

การอ้างเหตุผลที่เกี่ยวข้องกับใน Excel นั้น จะเป็นการอ้างเหตุผลประเภท **Deductive Reasoning** แปลไทยว่า การให้เหตุผลแบบนิรนัย ซึ่งก็คือการ**สรุปจากเหตุที่มีไปหาผล** (หรือ Top-Down) ซึ่งจะเป็นแนวทางแบบเดียวกับวิชาคณิตศาสตร์

 

ซึ่งจะต่างกับ **Inductive Reasoning** ซึ่งใช้ผลลัพธ์ที่สังเกตจากหลายๆ เหตุการณ์ แล้วหารูปแบบหา Pattern จากนั้นนำมาสรุปเป็นกฎหรือสาเหตุ พูดง่ายๆ คือ สรุปจากผลไปหาเหตุ (หรือ Bottom-Up) ซึ่งจะเป็นแนวทางของวิชาวิทยาศาสตร์

 

ดังนั้นเราจะมาลงลึกด้วยการอ้างเหตุผลแบบ Deductive Reasoning กันครับ เพราะมันคือรูปแบบที่เราใช้กันใน Excel นี่แหละ

 

## วิธีการแปลงข้อความในชีวิตประจำวันให้เป็น TRUE/FALSE Statement

 

เอาล่ะขั้นต่อไปที่เราจะต้องทำให้ได้ คือการหัดแปลงข้อความธรรมดาๆ ให้กลายเป็นตัวแปรสัญลักษณ์ทาง Logic ให้ได้ก่อน

 

ทีนี้มันจะมีอยู่ 2 ส่วนหลักๆ คือ

 
1. **ประพจน์ หรือ Propositions** : ส่วนประโยคย่อยที่ให้ค่าออกมาเป็น TRUE/FALSE ได้ แปลว่ามันมีความแน่นอนชัดเจน ไม่ใช่ความคิดเห็น ไม่ใช่ประโยคคำถาม 
    - ใครตอบก็จะต้องได้ TRUE/FALSE แบบเดียวกัน (กรณีใช้ Excel แสดงว่าคนตอบก็คือ Excel นั่นแหละ)
    - ถ้าเป็นใน Excel เราเรียกว่าเป็นข้อมูลประเภท Logic
    - **ซึ่งค่า TRUE/FALSE มักจะเกิดจากการใช้เครื่องหมายเปรียบเทียบ** ไม่ว่าจะเทียบตัวเลข หรือเทียบข้อความก็ตาม เช่น A1>1000, A2=”แมว”
2. **คำเชื่อม Logic** : เราต้องหัดดูให้ออกว่า คำเชื่อมในประโยคมันเป็นเงื่อนไขแบบไหน AND, OR, NOT, IF…Then… (ถ้า แล้ว), ก็ต่อเมื่อ ซึ่งใน Excel ก็จะมีตัวเชื่อม Logic ให้เหมือนกันดังนี้

 

## ตารางค่าความจริงเมื่อใช้ตัวเชื่อม logic

 ![1](https://www.thepexcel.com/wp-content/uploads/2020/02/truth-table-1024x313.png) 

ตารางค่าความจริงที่คนใช้ Excel ควรจะแม่นก็คือตัวที่ผมใส่สีเหลืองไว้ สรุปคือ

 
- **เงื่อนไขแบบและ (AND) **จะใช้กรณีที่เงื่อนไขย่อย**ทั้งหมด**จะต้องเป็นจริงเท่านั้น (จึงจะให้ผลลัพธ์เป็นจริง) ถ้าให้เทียบก็**เหมือนคนที่เรื่องมาก spec เยอะ** ต้องได้ทุกอย่าง
- **เงื่อนไขแบบหรือ (OR) **จะใช้กรณีที่เงื่อนไขย่อย**อย่างน้อยตัวใดตัวหนึ่ง**ต้องเป็นจริง (จึงจะให้ผลลัพธ์เป็นจริง) ซึ่งในทีนี้จะเป็นจริงหลายตัวก็ได้ ถ้าให้เทียบก็**เหมือนคนสบายๆ อะไรก็ได้**
    - **Tips :** จะมีอีกตัวคล้ายกันคือ XOR (Exclusive OR) ที่แปลว่าให้เลือกได้แค่อย่างเดียวเท่านั้น ห้ามเป็นจริงทั้งคู่ แต่ใน Excel เรามักจะไม่เจอแบบนี้เท่าไหร่
- **NOT** คือการกลับจริงเป็นเท็จ เท็จเป็นจริง อันนี้ง่ายมาก เขียนได้ว่า (NOT P หรือ ~P ก็ได้)
- นอกนั้นเป็นเรื่องของกลุ่มเงื่อนไข (Condition) ที่จะพูดถึงถัดไป

 

## Gang เงื่อนไขให้ Logic ดี

 

ทีนี้มันจะมี Gang เงื่อนไขระหว่างสองเหตุการณ์ ซึ่งบางทีอาจเกิดความสับสนได้ ดังนั้นเราจะมาพิจารณาดูกันดีๆ นะครับ

 

ถ้าเอาจริงๆ มันจะมี 3 ตัว ซึ่งผมไม่ค่อยอยากแปลเป็นไทยมากนัก เพราะอาจเข้าใจผิด คือ

 
1. **if…A…then…B **: ถ้ามีเหตุ A เกิดขึ้นก็**เพียงพอที่จะ**ทำให้เกิดผล B ขึ้นแน่นอน (เขียนได้ว่า A->B)
2. **B only if A **: ผล B เกิดขึ้นมาได้ **จำเป็นต้องมี**เหตุ A   
  (แต่ว่า มีเหตุ A อาจไม่มีผล B ก็ได้ เพราะเหตุอาจไม่เพียงพอ)   
  ดังนั้นสรุปได้แค่ว่ามี B ต้องมี A แน่ๆ จึงเชียนได้ว่า B->A  
  เช่น “ไฟไหม้ **จำต้องต้อง (only if)** มีออกซิเจน” สามารถสรุปได้ว่า  
  **เทียบเท่ากับ** if ไฟไหม้ then มีออกซิเจน (ดังนั้นจะมองในรูป if..then.. ก็ได้)
3. **A if and only if B** : A และ B ต่างเป็นตัวที่ทำให้เกิดอีกตัวนึงทั้งคู่ (A<->B)  
  เช่น ผมจะได้รับปริญญา ก็ต่อเมื่อ(if and only if) ผมเรียนจบ  
  แปลว่า ถ้าเรียนจบ ก็ได้รับปริญญาชัวร์  
  ถ้าได้รับปริญญา ก็แสดงว่าเรียนจบชัวร์  
  (มองได้ทั้ง 2 ทาง)

 

แต่ใน Excel เราจะเป็นแบบ **if** …A… **then** ….B…. (ทิศเดียว) ดังนั้นมาดูรายละเอียดกันครับ

 

### **IF…Then…. **เชิง Logic

 

if A then B (ซึ่งเขียนได้อีกแบบว่า A->B)

 

**แปลว่าเมื่อมีเหตุ A จะเกิดผลลัพธ์ B ขึ้นอย่างแน่นอน**   
ตรงนี้ตีความหมายได้หลายอย่าง อ่านดีๆ นะ

 
- เหตุ A** เพียงพอ**แล้วที่จะ Trigger (เหนี่ยวไก) ทำให้เกิดผล B ได้เลย
- ถ้าไม่เกิดผล B แสดงว่าเหตุ A ไม่ได้เกิดขึ้น (เพราะถ้า A เกิดขึ้น B ต้องเกิดแน่นอน)
- ไม่ได้แปลว่า ถ้า A ไม่เกิด แล้ว B จะไม่เกิดไปด้วยนะ (เพราะ B อาจจะเกิดจากเหตุอื่นก็ได้** เพราะ A เป็นสาเหตุที่เพียงพอ แต่ไม่ใช่สาเหตุที่จำเป็น**)

 

**ตัวอย่าง:** ทั้งหมดคือความหมายเดียวกัน (ผมสอบผ่าน=A, ผมได้รางวัล=B)

 
- ถ้าผมสอบผ่าน ผมจะได้รางวัล (A->B)
- ผมจะได้รางวัล ถ้าผมสอบผ่าน (แค่สลับประโยค แต่ logic เดิม) (A->B)
- ถ้าผมไม่ได้รับรางวัล แสดงว่าผมสอบไม่ผ่าน (Not B->Not A) (เพราะถ้าสอบผ่าน มันต้อง trigger ให้เกิดการรับรางวัลไง)

 

## IF ใน Excel

 

ซึ่งเงื่อนไข if…then…ที่อธิบายข้างบนนี่ คล้ายกับฟังก์ชัน IF ใน Excel มากๆ เลย นั่นคือ  
**ถ้าเงื่อนไขเป็นจริงแล้วจะให้ผลเป็นอะไร** ซึ่งผลนั้นจะเกิดขึ้นเสมอเมื่อเงื่อนไขเป็นจริง (เงื่อนไขคือเหตุที่เพียงพอแล้ว ที่จะทำให้เกิดผล)

 

**อย่างไรก็ตาม ในฟังก์ชัน IF ของ Excel เราจะต้องระบุผลกรณีที่เงื่อนไขไม่จริงด้วย ว่าจะให้แสดงผลลัพธ์ยังไง**   
  
**พูดง่ายๆ คือใน Excel เป็นแบบ if…then…else…**  
ถ้า…เงื่อนไข…then…จะทำอะไรถ้าเงื่อนไขเป็นจริง…  
else…จะทำอะไรถ้าเงื่อนไขเป็นเท็จ

 

=IF(logical_test,value_if_true,[value_if_false])   
=IF (เงื่อนไข,ผลลัพธ์กรณีจริง,[ผลลัพธ์กรณีไม่จริง])

 

**Tips**: ถ้าเราไม่ระบุกรณี else มันจะให้ค่ากลับมาเป็น FALSE ซึ่งเดี๋ยวก็งงอีก

 

**Tips2**: ใน Excel เรามักใส่ผลลัพธ์กรณี false ให้ไม่เหมือน true (ไม่งั้นจะใช้ if ทำไม จริงมะ?)  
แต่ถ้าในเชิง Logic จริงๆ กรณีเงื่อนไขไม่จริง ผลลัพธ์อาจจะไม่ใช่ตัวที่ตรงข้ามกับ value_if_true ก็ได้นะ มันอาจจะเป็นอะไรก็ได้เลย หรืออาจะเหมือน true ก็ได้

 

## **ปัญหา**ตัวอย่าง

 

#### **ปัญหาตัวอย่าง1**

 

“ถ้าทำยอดขายได้มากกว่า 1000 เธอจะได้โบนัส”

 
- A = (เธอ)ทำยอดขายได้มากกว่า 1000
- B = เธอได้โบนัส
- **สรุป Logic เป็น** : **if** A **then** B   
  หรือเขียนว่า A ->B ก็ได้ แต่ผมจะใช้ if…then… เพื่อให้คล้าย Excel ที่สุด
- if ทำยอดขายได้มากกว่า 1000 then เธอได้โบนัส   
  (assume ว่าถ้าทำไม่ได้ ก็ถือว่าไม่ได้โบนัสไป)

 ![2](https://www.thepexcel.com/wp-content/uploads/2020/02/logic5.png) 

#### ****ปัญหา**ตัวอย่าง2**

 

“ร้านนี้ไม่อนุญาตให้คนอายุต่ำกว่า 18 ปีเข้า”

 

ถ้าดูจริงๆ เราสามารถพูดอีกแบบในความหมายเดียวกันว่า

 

“ถ้าเธออายุต่ำกว่า 18 ปี เธอจะเข้าร้านนี้ไม่ได้”

 
- A = เธออายุต่ำกว่า 18 ปี
- B = เธอเข้าร้านนี้ไม่ได้
- ****สรุป Logic**** :** if** A **then** B
- if เธออายุต่ำกว่า 18 ปี then เธอเข้าร้านนี้ไม่ได้  
  (assume ว่าถ้าอายุไม่ต่ำกว่า 18 ก็ถือว่าเข้าได้)

 ![3](https://www.thepexcel.com/wp-content/uploads/2020/02/logic6.png) 

#### ****ปัญหา**ตัวอย่าง3**

 

“ร้านนี้ลดราคาให้เฉพาะคนมีบัตรสมาชิก ที่มาซื้อของในวันอังคารเท่านั้น”

 
- A=มีบัตรสมาชิก
- B=ซื้อของวันอังคาร
- C=ลดราคา
- ****สรุป Logic ****: **if** A and B **then** C
- เพราะว่าต้องมีบัตรสมาชิกด้วย และซื้อวันอังคารด้วยทั้งสองเงื่อนไข จึงต้องใช้ AND
- ซึ่งใน Excel ใช้เป็น AND(เงื่อนไข1,เงื่อนไข2)

 ![4](https://www.thepexcel.com/wp-content/uploads/2020/02/logic7-fix-1024x442.png) 

#### ****ปัญหา**ตัวอย่าง4**

 

“คุณต้องฝากเงินตั้งแต่ 10000 ขึ้นไปถึงจะได้ดอกเบี้ยพิเศษ ยกเว้นว่าคุณจะเป็นลูกค้า VIP (ก็จะได้ดอกพิเศษเสมอ)”

 
- A = ฝากเงินตั้งแต่ 10000 ขึ้นไป
- B = เป็นลูกค้า VIP
- C = ได้ดอกเบี้ยพิเศษ
- ****สรุป Logic**** : ** if **A or B **then** C
- เพราะว่าฝากเงินเยอะก็ได้ เป็น VIP ก็ได้ อย่างน้อยอันใดอันหนึ่ง จึงต้องใช้ OR
- ซึ่งใน Excel ใช้เป็น OR(เงื่อนไข1,เงื่อนไข2)

 ![5](https://www.thepexcel.com/wp-content/uploads/2020/02/logic8-1024x389.png) 

### ****ปัญหา**ตัวอย่างแบบซับซ้อน**

 

“จะเป็น Model ที่นี่ได้นะ ถ้าเป็นผู้ชาย จะต้องสูงเกิน 180 ถ้าเพศอื่นๆ จะต้องสูงเกิน 170”

 

ตรงนี้ทำได้หลายแบบมากๆ นะ **ถ้าวาดรูปแล้วจะเห็นชัดขึ้น**

 ![6](https://www.thepexcel.com/wp-content/uploads/2020/02/logic4.png) 
- A=เป็นผู้ชาย
- B=สูงเกิน 180
- C=สูงเกิน 170
- D=เป็น Model ได้

 

**สังเกต**

 
- การที่ Diagram เข้าไปยังชั้นถัดไป เปรียบเสมือนเงื่อนไขแบบ AND หรือจะใช้ IF ซ้อนกันก็ได้
- การที่ Diagram เป็นคนละเส้นทางที่ไปสู่ผลลัพธ์เหมือนกัน (การได้เป็น Model จริงๆมี 2 เส้นทาง คือสายบนกับสายล่าง จริงมะ?) เปรียบเสมือนเงื่อนไขแบบ OR

 

**สรุป Logic**

 
- **แบบ if ซ้อนกัน** :** if** A **then** (**if** B then D) **else** (**if** C then D)
- **แบบ AND OR** : **if **(A and B) or (not A and C) **then** D

 ![7](https://www.thepexcel.com/wp-content/uploads/2020/02/logic9fix-1024x556.png) 

#### สูตรซับซ้อนไปอ่านไม่รู้เรื่องเลย ทำไงดี

 

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

 

แต่ถ้าเรายังไม่คล่อง เราก็สามารถแยกผลลัพธ์ทดเอาไว้ทีละส่วนก่อนก็ได้ เช่น

 ![8](https://www.thepexcel.com/wp-content/uploads/2020/02/logic10-1024x514.png) 

จะเห้นว่ามันดูง่าย และเข้าใจง่ายขึ้นตั้งเยอะ จริงมะ?

 

### แนวทางฝึกฝนเพิ่มเติม

 

ลองสมมติสถานการณ์แล้วเขียนออกมาเป็นสูตร IF ให้ได้ ทำบ่อยๆ เดี๋ยวก็คล่องครับ

 

จะ Comment โจทย์แล้วให้เพื่อนๆ มาลองตอบก็ได้นะครับ ^^

 

## สรุปเรื่อง Logic vs Excel

 

ถ้าจะมองจริงๆ เรื่องเกี่ยวกับ Logic ใน Excel มันมีแค่นี้แหละ เราไม่ต้องไปพิสูจน์เรื่องความสมเหตุสมผล ไม่ต้องไปพิสูจน์สัจนิรันดร์อะไรเหมือนตอนเรียนวิชาตรรกศาสตร์เลย

 

ใน Excel เราแค่เขียนเงื่อนไข if…then…else ให้เป็น อาจมีผสม AND OR NOT บ้างเท่านั้นเอง เราต้องเช็คตัวเองว่าแยกเงื่อนไข AND OR ได้รึยัง?

 

หลักสำคัญคือการ**แปลงสิ่งที่คิดจากข้อความธรรมดาให้เป็นข้อมูลเชิง Logic** ซึ่งอย่าลืมว่าการใช้เครื่องหมายเปรียบเทียบ เป็นวิธีนึงที่จะได้การจะได้ค่า TRUE/FALSE ได้นะ หัดใช้เยอะๆ ล่ะ

 

**สำหรับเรื่อง Logic ในตอนหน้าจะเป็นตอนสุดท้าย** จะเป็นการแนะนำแหล่งที่เอาไว้ฝึกฝนความคิดเชิง Logic ให้เก่งขึ้น ซึ่งอาจมีเกม มีเว็บต่างๆ แนะนำให้อีกทีครับ ^^

 

## ความคิดเชิงระบบ ปัญหาใหญ่อีกเรื่อง

 

จากที่ได้ทำบทความเรื่อง Logic มาสองตอน **ผมคิดว่าปัญหาใหญ่อีกอย่างที่คนใช้ Excel เผชิญอยู่ คือ ความคิดเชิงระบบ หรือ Systems Thinking** ด้วย ซึ่งก็คือแนวคิดที่ว่าอะไรสัมพันธ์กันยังไง อะไรเป็น Input Output ฟันเฟืองย่อยๆ ทำงานต่อกันเป็นภาพรวมยังไง?

 

อย่าลืมว่าใน Excel แต่ละช่อง cell นั้นสามารถเป็นทั้ง Output ในช่องตัวเอง และเป็น Input สำหรับช่องอื่นต่อไปได้ด้วย ดังนั้นความคิดเชิงระบบก็เป็นอีกเรื่องที่จำเป็นมากครับ

 

ซึ่งเดี๋ยวผมจะพยายามสรุปให้อีกทีในบทความต่อๆ ไปนะครับ รอติดตามได้

---

_Source: [https://www.thepexcel.com/better-logic-pt2/](https://www.thepexcel.com/better-logic-pt2/)_
