Quantcast
Channel: IF –เทพเอ็กเซล : Thep Excel
Viewing all 10 articles
Browse latest View live

เจาะลึกสูตร Excel : IF

$
0
0

สูตร IF คืออะไร?

สูตร IF (หรือจะเรียกให้ถูกคือฟังก์ชั่น IF) คือ ฟังก์ชั่น (Function) ที่เราจะโยนเงื่อนไขให้ไปตรวจสอบ ถ้าเงื่อนไขมีผลลัพธ์เป็นจริง (TRUE) จะทำการคำนวณแบบนึง ถ้าเงื่อนไขเป็นเท็จ (FALSE) จะคำนวณอีกแบบนึง

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

วิธีเขียนสูตร แบบเป็นทางการ

=IF(logical_test, [value_if_true], [value_if_false])

ประเภท Argument ที่ใส่ลงไป

=IF(ตรรกกะ จริง เท็จ, ค่าอะไรก็ได้ เป็นสูตรก็ได้, ค่าอะไรก็ได้ เป็นสูตรก็ได้)

ประเภทผลลัพธ์ที่ได้จากฟังก์ชั่น

เป็นไปตามผลจริงเท็จ ว่าเป็นค่าประเภทไหน

วิธีเขียนสูตร ภาษาชาวบ้าน

=IF(เงื่อนไขที่เราโยนเข้าไปให้ทดสอบ, [ถ้าจริงจะทำอันนี้], [ถ้าเท็จจะทำอันนี้])

เช่น หากเทียบกับภาษาพูด จะได้ว่า

  • ถ้า ฉันสอบตก ฉันจะเลี้ยงข้าว ไม่งั้น เธอเป็นคนเลี้ยงข้าว
    • ฉันสอบตก = เงื่อนไข
    • ฉันเลี้ยงข้าว = การกระทำหากเงื่อนไขเป็นจริง
    • เธอเป็นคนเลี้ยงข้าว = การกระทำหากเงื่อนไขเป็นเท็จ

ซึ่งเงื่อนไขที่เราโยนเข้าไปให้ทดสอบ นั้นจะต้องมี  ตัวเปรียบเทียบ (COMPARISON OPERATOR) อยู่ด้วย เพื่อให้ค่าออกมาเป็นจริง (TRUE)  หรือเท็จ (FALSE) เช่น

  • = เท่ากับ
  • < น้อยกว่า
  • > มากกว่า
  • <> ไม่เท่ากับ
  • >= มากกว่าหรือเท่ากับ
  • <= น้อยกว่าหรือเท่ากับ

ตัวอย่าง 1

หากช่อง B4 เราเขียนว่า

=IF(B2>10, 20*3,”ขี้เกียจทำ”)

สิ่งที่มันจะทำคือดูว่าค่าใน B2 มากกว่า 10 หรือไม่?

  • สมมติว่าค่าใน B2 เป็น 15 =>เงื่อนไขเป็นจริง =>คำนวณ 20*3 => แสดงค่า 60 ในช่อง B4
  • สมมติว่าค่าใน B2 เป็น 7 => เงื่อนไขเป็นเท็จ =>แสดงค่า “ขี้เกียจทำ” ในช่อง B4

หากมีหลายเงื่อนไขจะทำอย่างไร?

โดยหากมีหลายเงื่อนไข เราสามารถเอาแต่ละเงื่อนไขมาเชื่อมกับฟังก์ชั่นทางตรรกกศาสตร์ ได้อีก เช่น

  • AND(เงื่อนไข1,เงื่อนไข2,เงื่อนไข3,…) => และ : ต้องเป็นจริงทุกอัน ถึงจะออกมาเป็นจริง
  • OR(เงื่อนไข1,เงื่อนไข2,เงื่อนไข3,…) => หรือ : หากอันใดอันหนึ่งจริงถือว่าจริง

ตัวอย่าง 2

หากช่อง B4 เราเขียนว่า

=IF(AND(B2>10,B3<=5), 20*3,”ขี้เกียจทำ”)

สิ่งที่มันจะทำคือดูว่าค่าใน B2 มากกว่า 10 และ B3น้อยกว่าหรือเท่ากับ 5 หรือไม่?

  • สมมติว่าค่าใน B2 เป็น 15 และ B3 เป็น 4 =>=> เงื่อนไขเป็นจริง =>คำนวณ 20*3 => แสดงค่า 60 ในช่อง B4
  • สมมติว่าค่าใน B2 เป็น 15 และ B3 เป็น 6 => เงื่อนไขเป็นเท็จ =>แสดงค่า “ขี้เกียจทำ” ในช่อง B4

การเขียน IF ซ้อน IF

เราสามารถเขียน IF ซ้อนกันไปเรื่อยๆ ได้ (จริงๆแล้วจะเอาฟังก์ชั่นอื่นมาซ้อนด้วยก็ยังได้)
โดย IF แต่ละตัวก็จะมีการเช็คเงื่อนไขของตัวเอง และทำค่าจริง/เท็จ ของตัวเองแล้วแต่ผลลัพธ์ที่ประมวลได้ เช่น

=IF(เงื่อนไข 1, IF( เงื่อนไข2,จริง2,เท็จ2),IF(เงื่อนไข3,จริง3,เท็จ3))
 

เทคนิคการเขียน IF ซ้อนกันหลายตัว

  • จำนวนวงเล็บเปิดต้องเท่ากับวงเล็บปิด (ในที่นี้มีอย่างละ 4 อันเท่ากัน)
  • ในแต่ละกิ่งที่ จริง /เท็จ เราสามารถเลือกที่จะใส่ IF ซ้อนลงไปอีกหรือไม่ก็ได้ ลองดูได้จากตัวอย่างที่จะเห็นต่อไป
Nested IF Excel

ตัวอย่าง 3

หากเราต้องการจะจัดเกรดจากคะแนนดิบของนักเรียน โดยมีเกณฑ์ดังนี้

  • คะแนน <50 : F
  • 50 <= คะแนน<60 : D
  • 60 <= คะแนน<70  : C
  • 70 <= คะแนน<80  : B
  • คะแนน >= 80 : A

สมมติคะแนนดิบอยู่ในช่อง A2 และเราจะใส่เกรดในช่อง B2 / ในช่อง B2 เราต้องเขียนดังนี้

=IF(A2<50,”F”,IF(A2<60,”D”,IF(A2<70,”C”,IF(A2<80,”B”,”A”))))

อธิบายแนวคิด

ให้ใส่เงื่อนไขทีละ Step อันแรกเช็คว่าน้อยกว่า 50 หรือไม่? ถ้าน้อยกว่าให้แสดงเกรด F ถ้าไม่น้อยกว่า ต้องเช็คต่อว่า < 60 หรือไม่?… ทำแบบนี้ไปเรื่อยๆ

Nested IF function Excel

 

หวังว่าเพื่อนๆ อ่านแล้วจะเข้าใจมากขึ้นนะครับใครอ่านแล้วสงสัยตรงไหน หรือมีข้อแนะนำอะไร อย่าลืม Comment ในนี้ หรือมาพูดคุยกันได้ใน Facebook นะครับ

Function อื่นๆ ที่น่าสนใจ

ดูได้ที่เพจ รวมฮิตสูตรที่ใช้บ่อยๆ


สอนทำเกม Sudoku ด้วย Excel

$
0
0

วันนี้ผมจะมาแนะนำวิธีใช้ Excel สร้างเกม Sudoku อย่างง่ายขึ้นมา โดยที่จะมำให้ Excel ไฟล์นี้สามารถตรวจสอบได้ว่าเลขที่เราใส่ลงไปผิดกติกาของเกม Sudoku หรือไม่ แต่อันนี้จะไม่ฉลาดพอที่สามารถเฉลยเกม Sudoku ได้นะครับ ถ้าอยากได้แบบนั้นเดี๋ยวมี Link ให้อีกทีนึงท้ายบทความครับ

กติกาเบื้องต้นเกม Sudoku

sudoku

  • มีตาราง 9 x 9
  • ใส่ได้แค่เลข 1-9
  • ใส่เลขห้ามซ้ำกัน
    • ในแต่ละแถว
    • ในแต่ละคอลัมน์
    • ในแต่ละกรอบตาราง Block ใหญ่ 3 x 3 (เหมือนที่ตีกรอบหนาไว้)
  • จะมีเลขใส่มาให้เบื้องต้นบางส่วนก่อน ถ้าเกมง่ายๆก็จะใส่มาให้เยอะหน่อย ถ้าเกมยาก ก็จะใส่มาให้น้อย
  • เราจะเล่นเกม โดยมีเป้าหมายคือ ใส่เลขต่อให้ครบทุกช่อง โดยไม่ทำผิดกติกาข้างบน ถ้าทำได้ก็ถือว่าจบเกม

วิธีสร้างตัวตรวจกติกาเกม Sudoku

โหลดไฟล์ตัวอย่างได้ที่นี่

  • ไฟล์ก่อนกรอกเลข (แสดงสูตรให้เห็น) sudoku-inwexcel(.xlsx)
  • ไฟล์หลังกรอกเลข (ซ่อนสูตร + lock cell พร้อมให้ user เล่น) sudoku-inwexcel2(.xlsx)

Concept : เช็คว่ามีการทำผิดกติกาหรือไม่ ไล่ตามกติกาที่เขียนข้างบน แล้วนับว่ามีการทำผิดกติกากี่อัน/กี่ครั้ง จากนั้นนำผลการนับที่ได้มารวมกัน ถ้าสรุปแล้วมากกว่า 0 แสดงว่ามีการทำผิดกติกา

  1. สร้างตารางขนาด 9×9 โดยปรับให้ขนาดของแถวและคอลัมน์ให้กว้างพอๆ กันตามรูป โดยให้เว้นช่องรอบนอกไว้เล็กน้อย เราจะเอาไว้เขียนสูตรเพื่อตรวจสอบความถูกต้อง ดังนั้นผมจึงเริ่มมุมซ้ายบนที่ช่อง C3 ครับ และอาจจัด Format ตัวหนังสือให้อยู่ตรงกลางทั้งแนวนอนและแนวตั้ง จะได้สวยๆ
    sudoku-1
  2. ต่อไปเราจะกำหนดเงื่อนไข ว่าให้ใส่ได้แค่เลข 1-9 เท่านั้น โดยใช้ Data Validation ดังนี้
    • เลือกพื้นที่ตาราง 9×9
    • ไปที่ Ribbon Data=> Data Validation =>Data Validation…
    • ใน Allow ให้เลือก Whole Number (จำนวนเต็ม) Between Minimum=1 Maximum=9
      sudoku-2
  3. สร้างตัวตรวจสอบว่าแต่ละแถวมีเลข 1-9 กี่ตัว
    • ใช้ COUNTIF มาช่วย =COUNTIF(แต่ละแถว,แต่ละเลข1-9)
    • ในที่นี้ผมเขียนว่า =COUNTIF($C3:$K3,M$2) เพราะ C3:K3 ผมคือแถวแรก ส่วน M2 ผมคือเลข 1
    • พอ copy ไปยังช่องอื่น สูตรจะใช้ได้โดยอันโนมัติ เพราะผม Lock คอลัมน์ไว้ที่คอลัมน์ C กับ K (เพื่อไล่ไปแต่ละแถวลงไปข้างล่าง) ส่วนช่อง M2 ล๊อคแถวไว้ เวลา Copy ไปจะได้ไล่ไปยังเลข 2-9 ต่อไปได้
      sudoku-3
  4. สร้างตัวตรวจสอบว่าแต่ละคอลัมน์มีเลข 1-9 กี่ตัว
    • ใช้ COUNTIF มาช่วย =COUNTIF(แต่ละคอลัมน์,แต่ละเลข1-9)
    • ในที่นี้ผมเขียนว่า =COUNTIF(C$3:C$11,$B13) เพราะ C3:C11 ผมคือคอลัมน์แรก ส่วน B13 ผมคือเลข 1
    • พอ copy ไปยังช่องอื่น สูตรจะใช้ได้โดยอันโนมัติ เพราะผม Lockแถวไว้ที่แถว 3 กับ 11 (เพื่อไล่ไปแต่ละคอลัมน์ทางขวา)
      ส่วนช่อง B13 ล๊อคคอลัมน์ไว้ เวลา Copy ไปจะได้ไล่ไปยังเลข 2-9 ต่อไปได้
      sudoku-4
  5. สร้างตารางตรวจเช็คการใส่ข้อมูลซ้ำ ในแต่ละ Zone 3×3 อันใหญ่ โดยใช้เทคนิค คล้ายๆ ที่เขียนไว้ใน http://www.inwexcel.com/prevent-duplicate-data-entry/
    แต่ว่าเราจะไม่ใช้ Data Validation แล้ว เพราะเราได้ใช้ไปแล้วในชั้นตอนแรก และผู้เล่นอาจต้องการลองใส่เลขเข้าไปก่อน ถ้าใช้ Data Validation จะไม่ยอมให้ใส่เลย อันนั้นแรงเกินไป ดังนั้นเราจะเขียนทดไว้อีกทีนึงแทนตามรูป (ขวาล่าง)
    • โดยที่เราต้องเขียนสูตร 9 ครั้ง แยกแต่ละ Block ใหญ่ที่เป็นขนาด 3×3
      sudoku-6
    • ใน Block แรก (M13) เขียนว่า =COUNTIF($C$3:$E$5,C3) แล้ว copy paste แค่ zone ตัวเอง คือ ช่อง M13 ถึง O15
      sudoku-6-2
    • ใน Block ถัดไปทางขวา (P13) เขียนว่า =COUNTIF($F$3:$H$5,F3)  แล้ว copy paste แค่ zone ตัวเอง คือ ช่อง P13 ถึง R15
    • ทำแบบนี้จบครบ 9 Block
  6. ต่อไป เราจะเช็คว่าทั้ง 3 ตารางตัวช่วยที่เราสร้างขึ้นมานั้น มีเลขอะไรที่มากกว่า 1 หรือไม่ ถ้าหากมี แสดงว่าทำผิดกติกา
    • โดยใช้ COUNTIF มานับว่าช่วงที่เราหามีเลขอะไรมากกว่า 1 หรือไม่นั่นเอง โดยเขียนว่า
      • =COUNTIF(C13:K21,“>1”)
      • =COUNTIF(M3:U11,“>1”)
      • =COUNTIF(M13:U21,“>1”)
      • จากนั้นนำผลนับที่ได้มากรวมกัน ถ้ามากกว่า 0 แปลว่ามีการทำผิดกติกาครับsudoku-7
  7. ทำการ Link ไปแสดงผลด้านบน พร้อมใส่ Conditional Format ให้สวยงาม
    • เช่น ถ้า 3 ช่องนั้น SUM ได้มากกว่า 0 ให้เขียนว่า ไม่ ok เป็นต้น
      ในที่นี้ผมเขียนว่า =IF(M23>0,”ไม่ok”,”ok”) โดย M23 ผมเป็นช่องที่เช็คผลรวมความผิดปกติ
    • sudoku-8
  8. สุดท้ายก็เช็คว่ากรอกครบทุกช่องแล้วหรือยัง ถ้าครบ 81 ช่องแล้วและยัง Ok อยู่ก็ถือว่าจบเกมครับ ^^
    ในที่นี้ ผมเขียนเพิ่มไปว่า =IF(M23>0,”ไม่ok”,IF(COUNT(C3:K11)=9*9,”จบเกม”,”ok”))

การเตรียมการก่อนให้ผู้เล่นเริ่มเล่นเกมจริง

  1. ทีนี้ ก็สามารถใส่เลขเริ่มต้น ตามแต่ละ Puzzle ที่ได้มาได้เลย
  2. เพื่อความสะดวก และไม่ให้สับสนว่าเลขไหนเป็นเลขเริ่มต้น เลขไหนเป็นเลขที่ให้ผู้เล่นเพิ่มทีหลัง อาจใช้วิธี Fill สี หรือ ทำสีอักษรให้ต่างจากปกติก็ได้
    • เทคนิคการเลือกพื้นที่เฉพาะที่เป็นเลขเริ่มต้นของเรา
      ให้เลือกพื้นที่ทั้งหมดในตาราง => Ctrl+G => Special => Constant => มันจะเลือกเฉพาะที่มีการกรอกข้อมูลเริ่มต้นไปแล้ว
    • จากนั้นค่อยใส่สี หรืออะไรให้ต่างจากปกติ
  3. ซ่อนแถวและคอลัมน์ที่เป็นตัวทดของเราไปซะ เพื่อความสะอาดตา
    • เลือก แถว หรือ column แล้วคลิ๊กขวา => Hidesudoku-prepare-complete
  4. เพื่อความสะดวกในการลบเลขที่ให้ผู้เล่นเพิ่มเข้าไปเพื่อเริ่มเกมใหม่ เราอาจจะ Lock Cell เฉพาะที่เป็นเลขเริ่มต้นไว้ โดยจะไม่ Lock ช่องที่ให้ผู้เล่นกรอกเอง โดยทำดังนี้
    • เลือกพื้นที่ทั้งหมดในตาราง => Ribbon Home =>Cells =>Format =>ติ๊กเอา Lock Cell ออก (เพื่อปลดการ Lock Cell ทั้งหมดก่อน)
    • เลือกพื้นที่เฉพาะที่เป็นเลขเริ่มต้นของเรา มันจะเลือกเฉพาะที่มีการกรอกข้อมูลเริ่มต้นไปแล้ว จากนั้นกด
      • Ribbon Home =>Cells =>Format => ติ๊กให้ Lock Cell ทำงาน (เพื่อให้ Lock Cell เฉพาะที่มีการใส่เลขลงไปแล้ว)
    • Ribbon Review => Protect Sheet
      • ถ้าติ๊กเอา Select Locked Cell ออก จะเป็นการห้ามให้ผู้เล่นมาเลือกช่องที่กรอกไว้แล้ว
      • จะใส่ Password หรือไม่ก็ได้
      • กด OK
    • เท่านี้ เวลาเล่น ก็จะไม่สามารถไม่ต้องกังวลว่าจะเผลอลบช่องที่เป็นตัวเลขเริ่มต้นแล้ว

เท่านี้เราก็สามารถเอาไปให้คนอื่นเล่นเกม Sudoku ของเราได้แล้วครับ

ที่นี้ถ้าใครอยากได้ตัวโปรแกรมแก้ปัญหา Sudoku แบบบอกเฉลยได้เลย ผมจะแนะนำ Link ให้ครับ

Sudoku Solver

เทคนิคลับสุดยอด VLOOKUP ข้อมูลเร็วขึ้น 100 เท่า! (ขึ้นไป)

$
0
0

เพื่อนๆ เคยทำงานที่ต้อง Lookup ข้อมูลเยอะๆ ใน Excel รึเปล่าครับ? หลายๆคนอาจใช้เทคนิคปรับโหมดการคำนวณจาก Automatic เป็น Manual (ที่ต้องกด F9 เพื่อคำนวณ) เพื่อให้มันคำนวณทีเดียวเมื่อเราเขียนสูตรทุกอย่างพร้อมแล้ว ที่ต้องทำอย่างนั้นเพราะว่ามันนานมากกกกก

สิ่งที่ทำให้มันช้ามักจะเกิดขึ้นกับสูตรประเภทที่ต้อง Lookup ข้อมูล โดยเฉพาะอย่างยิ่งถ้ามีข้อมูลที่ต้อง Lookup เป็นหมื่นหรือเป็นแสนแถว บางทีรอหลายชั่วโมงก็ยังไม่เสร็จ และถ้าสังเกตให้ดี การ Lookup ที่ช้าจะเป็นการ Lookup ประเภท Exact Match เท่านั้น (ต้องเจอผลลัพธ์เป๊ะๆ) ซึ่งจะไม่เกิดอาการช้ากับการ Lookup แบบ Approximate Match ซึ่งจะเร็วกว่ามาก

วันนี้ผมจะมาแนะนำเทคนิคที่จะทำให้ VLOOKUP แบบหาเป๊ะๆ แต่ไม่ต้องรอนานอย่างที่เคย ทำยังไงมาดูกันครับ (มีวีดีโออยู่ข้างล่าง) 100xVLOOKUP

ทบทวนสูตร VLOOKUP กันซักนิด

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

=VLOOKUP(ค้นหาคำนี้,จากคอลัมน์แรกในตารางนี้,เมื่อเจอแล้วให้เอาค่าในคอลัมน์ที่ xx ของตารางกลับมา (นับซ้ายไปขวา), [ใช้โหมด Lookup แบบ Approximate Match หรือ Exact Match])

VLOOKUP มี 2 โหมดด้วยกัน เรามาดูกันว่าทั้งสองแบบต่างกันยังไง?

  • Approximate Match (ตั้งค่า Range Lookup เป็น TRUE หรือ 1) แปลว่า แม้ไม่เจอค่าที่ต้องการหาเป๊ะๆ ก็ยังส่งค่าบางอย่างกลับมาได้ โดยมีหลักการดังนี้
    • ทำงานเร็วมาก เพราะทำงานด้วยการค้นหาแบบ Binary Search (ลองอ่านข้างล่างสุดดูวิธีการทำงานได้ แต่ไม่เข้าใจไม่เป็นไรครับ)
    • มีข้อจำกัดคือ ข้อมูล Reference (คอลัมน์แรกของ table_array) ต้องเรียงน้อยไปมากเท่านั้น (ไม่งั้นผลลัพธ์จะมั่ว)
    • ถ้าหากข้อมูลเรียงจากน้อยไปมากแล้ว : มันจะวิ่งหาในคอลัมน์แรกใน table_array ลงจากบนลงล่าง จนเจอข้อมูลที่มากกว่า lookup_value แล้วเด้งกลับขึ้นข้างบน 1 ช่อง
    • จากนั้นจะเอาค่าในคอลัมน์ที่ col_index_num กลับมา
  • Exact Match (ตั้งค่า Range Lookup เป็น FALSE หรือ 0) แปลว่า ต้องเจอค่า/คำที่ต้องการเป๊ะๆ จึงจะส่งค่ากลับมา ถ้าไม่เจอจะ Error เลย
    • ทำงานช้า(มาก) เพราะทำงานด้วยการค้นหาแบบ Linear Search (ไม่เข้าใจไม่เป็นไรครับ)
    • ข้อดีคือ ข้อมูล Reference (คอลัมน์แรกของ table_array) ไม่จำเป็นต้องเรียงจากน้อยไปมาก
    • วิ่งหาในคอลัมน์แรกใน table_array ลงจากบนลงล่าง จนเจอข้อมูลเป๊ะๆ ถ้าไม่เจอขึ้น Error

ซึ่งบ่อยครั้งเราต้องการได้ผลลัพธ์จากการ Lookup แบบเป๊ะๆ มากกว่า (คือถ้าไม่เจอก็ให้ขึ้น Error ไปเลย) เราจึงมักจะเลือกที่จะใช้งาน VLOOKUP แบบ Exact Match เสมอๆ เพราะถ้าเลือกใช้แบบ Approximate Match ข้อมูลก็จะมั่วเลย เพราะไปดึงข้อมูลจากบรรทัดอื่นมาแสดง

เคล็ดลับอยู่ตรงนี้แหละครับ!! เราจะไม่ใช้สูตร Exact Match เพราะมันช้า เราจะใช้ VLOOKUP แบบ Approximate Match มาช่วยแทนเพราะเร็วกว่า แต่จะกำจัดผลลัพธ์ที่ไม่ต้องการออกไปได้ยังไง มาดูกัน

Concept ของเทคนิคลับ ทำยังไงให้เร็ว!?

ก่อนอื่น เราต้องเรียงคอลัมน์แรกในตารางอ้างอิงจากน้อยไปมากก่อน จึงจะใช้สูตร VLOOKUP แบบ TRUE ได้

จากนั้นเราก็สามารถ แต่ใส่เงื่อนไขเพื่อเช็คว่า “ถ้าเอาคอลัมน์แรกกลับมา มันจะเท่ากับ Lookup_value รึเปล่า?” ถ้าเท่ากันแสดงว่าใช้ได้ ให้เอาค่าจากคอลัมน์ 3 ที่ต้องการกลับมา ถ้าไม่เท่า แสดงว่าใช้ไม่ได้ ก็ให้ขึ้น Error ไป

  • เงื่อนไขที่เช็ค =VLOOKUP(lookup_value, table_array, 1, TRUE)=lookup_value
  • กรณีใช้ได้ (จริง) : =VLOOKUP(lookup_value, table_array, 3, TRUE)
  • กรณีใช้ไม่ได้ (เท็จ) : ให้ขึ้นข้อความ Error เช่น = NA() หรือจะขึ้น =”Error” หรือ =”ไม่เจอจ้า” ก็ได้ครับ…
  • =IF(VLOOKUP(lookup_value, table_array, 1, TRUE)=lookup_value,VLOOKUP(lookup_value, table_array, 3, TRUE),NA() )

สรุปวิธีเขียนสูตร VLOOKUP ให้เร็วขึ้น 100 เท่า!! (แต่ต้องเรียงคอลัมน์แรกของ table_array ก่อน)

=IF(VLOOKUP(lookup_value, table_array, 1, TRUE)=lookup_value,VLOOKUP(lookup_value, table_array, col_index_num, TRUE),NA() )

เพียงแค่นี้ สูตร VLOOKUP คุณก็จะเร็วขึ้นสุดๆ จนเทียบกับของเดิมไม่ได้เลย ไม่เชื่อลองดูในวีดีโอได้ครับ Enjoy VLOOOKUP นะครับ!!

VDO ตัวอย่าง

Tips: Binary Search  ทำงานยังไง?

  1. หาว่ามีข้อมูลกี่แถว เช่น มี N แถว
  2. หาจุดแบ่งครึ่ง คิดจาก (N+1)/2 แล้วปัดเศษทิ้ง
  3. เทียบ Lookup Value กับค่าที่อยู่จุดแบ่งครึ่ง ว่าค่า Lookup Value เท่ากับ มากกว่า หรือ น้อยกว่า
  4. ถ้าค่า lookup value เท่ากับ ก็เอาตัวแบ่งครึ่งนั้นเลย / ถ้า lookup value น้อยกว่า ก็จะทำการค้นหาจากครึ่งบนต่อ / ถ้าค่า lookup value มากกว่า ก็จะทำการค้นหาจากครึ่งล่างต่อ
  5. ไล่ Step 1-4 ไปเรื่อยๆ จนเหลือตัวเดียว ตัวนั้นคือผลลัพธ์ที่ได้

ตัวอย่าง binary-search

อธิบาย P-004

  • รอบ 1.  มี 8 แถว  (P-002 ถึง P-019) จุดแบ่งครึ่ง คือ P-017 => หาครึ่งบนต่อ เพราะ P-004 น้อยกว่า P-017
  • รอบ 2. มี 4 แถว  (P-002 ถึง P-017) จุดแบ่งครึ่ง คือ P-005=> หาครึ่งบนต่อ เพราะ P-004 น้อยกว่า P-005
  • รอบ 3. จบที่ P-002 เพราะเหลือตัวเดียว

อธิบาย P-018

  • รอบ 1. มี 8 แถว  (P-002 ถึง P-019) จุดแบ่งครึ่ง คือ P-017 => หาครึ่งล่างต่อ เพราะ P-018 มากกว่า P-017
  • รอบ 2. มี 5 แถว  (P-017 ถึง P-019) จุดแบ่งครึ่ง คือ P-016 => หาครึ่งล่างต่อ เพราะ P-018 มากกว่า P-016
  • รอบ 3. มี 3 แถว  (P-016 ถึง P-019)จุดแบ่งครึ่ง คือ P-020 => หาครึ่งบนต่อ เพราะ P-018 น้อยกว่า P-020
  • รอบ 4. จบที่ P-016 เพราะเหลือตัวเดียว

Logic Function สิ่งสำคัญที่คุณต้องเชี่ยวชาญให้ได้

$
0
0

co-create
บทความนี้คือส่วนหนึ่งของโครงการ ร่วมสร้าง “หนังสือคู่มือ Excel ที่เจ๋งที่สุด” ใครที่มี comment เพื่อแนะนำ ปรับปรุงหนังสือได้ คุณจะได้เครดิตในฐานะผู้ร่วมเขียน ลงในหนังสือที่จะพิมพ์จริงๆ ด้วย! อ่านรายละเอียด และดูสารบัญหนังสือ คลิ๊กที่นี่


 

ในส่วนนี้จะปูพื้นฐานฟังก์ชั่นที่จำเป็นมากๆ ต่อการใช้งานส่วนใหญ่ในชีวิตจริง ทั้งใช้ในการเขียนสูตรปกติ และใช้ในเครื่องมืออื่นๆ ของ Excel เช่น Conditional Formatting, Advanced Filter เป็นต้น

ฟังก์ชั่นที่ใช้ในการคำนวณสรุปผล

การ “สรุปผล” จากข้อมูลจำนวนมาก สามารถทำได้หลากหลายวิธี เช่น หาผลรวม (SUM) , หาค่ามากที่สุด (MAX), ค่าน้อยที่สุด (MIN), หาค่ากลางของข้อมูล ซึ่งมีหลายประเภท เช่น  ค่าเฉลี่ย(AVERAGE) ฐานนิยม (MODE)  มัธยฐาน(MEDIAN), หาค่าการกระจายตัวของข้อมูล ซึ่งก็มีหลายประเภทอีกเช่นกัน เช่น ค่าพิสัย, ค่าเบี่ยงเบนมาตรฐาน

การสรุปผลแบบ Basic

table1-fix

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

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

  • 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 เช่น = เท่ากับ, < น้อยกว่า, > มากกว่า, <> ไม่เท่ากับ, >= มากกว่าหรือเท่ากับ, <= น้อยกว่าหรือเท่ากับ

table2
ตัวอย่าง : ไม่สามารถให้ผลเป็น TRUE/FALSE หรือเป็นเรื่องที่ขึ้นอยู่กับผู้มอง (Subjective)

table3

การคำนวณเกี่ยวกับ ค่า TRUE/FALSE

เมื่อเรารู้ Input แต่ละตัวแล้วว่าสามารถออกผลเป็น TRUE หรือ FALSE ได้  เราก็สามารถเอา input แต่ละตัวมาเชื่อมกันได้ด้วยฟังก์ชั่นทางตรรกศาสตร์ เพื่อดูว่าเมื่อ Input รวมกันทุกอันแล้ว ผลลัพธ์สุดท้ายจะเป็นค่า TRUE หรือ FALSE เพื่อนำไปใช้กับฟังก์ชั่นอื่นๆ เช่น IF หรือใช้ในเครื่องมืออื่นๆ เช่น Conditional Formatting, Data Validation ต่อไป

แม้ว่าในวิชาตรรกศาสตร์จะมีตัวเชื่อมอยู่มากมาย เช่น logic-sign

แต่ว่าใน 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-concept

ผมแนะนำให้มองว่า 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

  1. เงื่อนไขที่เราโยนเข้าไปให้ทดสอบ ใน logical_test­ จะต้องออกมาเป็นจริง (TRUE)  หรือเท็จ (FALSE) เหมือนตอนที่เราศึกษาเรื่องตรรกศาสตร์ก่อนหน้านี้เลยครับ
    • นอกจากค่า TRUE/FALSE แล้ว IF จะตีความเลข 0 เป็น FALSE เลขอื่นๆ เป็น TRUE
  2. ค่าผลลัพธ์เมื่อเงื่อนไขจริง (Value if true) และ ผลลัพธ์เมื่อเงื่อนไขเท็จ (Value if false) สามารถใส่สูตรที่เราเรียนรู้มาลงไปได้เลย ตัวเลข ตัวหนังสือ ฟังก์ชั่น โดยสามารถเชื่อมด้วยตัวดำเนินการต่างๆ ได้ทุกอย่างตามปกติ
    • ถ้าดูดีๆจะเห็นว่า [value_if_true], [value_if_false] เป็นค่า Optional ซึ่งแปลว่าหากเราไม่ระบุอะไรลงไป กรณีจริงมันจะออกมาเป็นคำว่า TRUE กรณีเท็จมันจะออกมาเป็นคำว่า FALSE ให้ครับ
ตัวอย่าง 1

ถ้าคุณไปท้าเพื่อนว่า “ถ้า ฉันสอบตก ฉันจะเลี้ยงข้าว ไม่งั้น เธอเป็นคนเลี้ยงข้าว” และเราตกลงกับเพื่อนไว้ว่า คำว่าสอบตก คือ ได้คะแนนน้อยกว่า 50 แล้วให้เราบันทึกคะแนนสอบลงในช่อง A1

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

=IF(A1<50,“ฉันเลี้ยงข้าว”, “เธอเลี้ยงข้าว”)

IF-example2

แปลว่า มีกิ่งการตัดสินใจ 2 กิ่ง คือ

IF-concept2


กิ่งเงื่อนไขเป็น
เท็จ : หากค่าใน A1 มากกว่าหรือเท่ากับ 50 (สอบไม่ตก) จะแสดง คำว่า เธอเลี้ยงข้าว

กิ่งเงื่อนไขเป็นจริง : หากค่าใน A1 น้อยกว่า 50 (สอบตก) จะแสดงค่าออกมาเป็นคำว่า ฉันเลี้ยงข้าว

 

ซึ่งในตัวอย่างข้างบน ในช่อง A1 มีค่า 30 ซึ่งทำให้เงื่อนไขเป็นจริง ผลลัพธ์จึงเป็นคำว่า “ฉันเลี้ยงข้าว”

IF-example-result2

 Tips: ที่ต้องเขียนว่า “ฉันเลี้ยงข้าว” หรือ “เธอเลี้ยงข้าว” ในเครื่องหมายคำพูด เพราะ หากไม่ใส่เครื่องหมายคำพูด Excel จะตีความคำว่า ฉันเลี้ยงข้าว หรือ เธอเลี้ยงข้าว เป็นชื่อ (Defined Name) ที่ตั้งไว้ ซึ่งถ้าเราไม่ได้มีการตั้งไว้จริง ก็จะได้ผลผิดๆ ดังนั้นต้องใส่เครื่องหมายคำพูด เพื่อให้ Excel จะตีความว่าเป็น Text ธรรมดาตัวหนึ่ง

ตัวอย่าง 2

สมมติว่าเรามีข้อมูลมาว่า น้ำหนักมาตรฐานของชายไทย หญิงไทย เป็นไปตามสูตรดังนี้

น้ำหนักมาตรฐาน =  [ความสูง (cm.) -100] แล้วคูณด้วยตัวคูณพิเศษ ซึ่งแยกเป็น 2 กรณี คือ
ผู้ชาย : ? X 0.9 แต่ถ้าเป็น  ผู้หญิง : ? X 0.8 เราสามารถเขียนสูตรใน Excel ได้ดังนี้

IF-standard-weight

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

IF-standard-weight2

วิธีแรก : เขียนทุกอย่างอยู่ใน IF วิธี#2 : เขียน IF เฉพาะส่วนที่ต่างกัน
IF-concept3-1 IF-concept3-2

สิ่งที่ Excel จะทำคือดูว่าค่าใน B7  เป็นคำว่า “ชาย” หรือไม่?

  • หากค่าใน B2 เป็น “ชาย” –> เงื่อนไขเป็นจริง –> ใช้สูตร (B5-100)*0.9 –> คำนวณได้ 63 kg
  • หากค่าใน B2 ไม่ใช่ “ชาย” –> เงื่อนไขเป็นเท็จ –>ใช้สูตร (B5-100)*0.8 –> คำนวณได้ 56 kg

การผสมฟังก์ชั่นเบื้องต้น

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

โดยหลักการผสมฟังก์ชั่นอยู่ที่ว่า เราต้องรู้ว่า

  • แต่ละ Argument ของฟังก์ชั่นต้องการ INPUT เป็นข้อมูลประเภทไหน และ
  • แต่ละฟังก์ชั่นให้ OUTPUT ผลลัพธ์ออกไปเป็นข้อมูลประเภทไหน (อันนี้พอจะสังเกตได้)

เมื่อรู้ 2 ข้อข้างบน  เราก็จะรู้ว่าจะสามารถเอาฟังก์ชั่นไหน มาใส่ใน Argument ของอีกฟังก์ชั่นหนึ่งได้

 

เช่น การใช้ IF ผสมกับ AND

mix-function

 

ในส่วนของ Logical_test ของฟังก์ชั่น IF นั้นต้องการข้อมูลประเภท Logical (ตรรกะ) นั่นคือค่า TRUE/FALSE ซึ่งฟังก์ชั่นหมวดตรรกศาสตร์ อย่างพวก AND, OR, NOT นั้นจะให้ผลลัพธ์เป็น TRUE/FALSE เช่นกัน แบบนี้แปลว่าเราฟังก์ชั่น  AND มาผสมไว้ในส่วนของ Argument นี้ได้

ตัวอย่าง : การเขียน IF แบบมีหลายเงื่อนไขด้วยการผสมกับฟังก์ชั่นทางตรรกศาสตร์

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

หากนักเรียนสอบ Final ได้คะแนนน้อยกว่า 50 คะแนน และ ทำกิจกรรมเพื่อสังคม ไม่ถึง 3 ครั้ง ครูจะให้นักเรียนสอบตก นอกนั้นถือว่าสอบผ่าน

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

IF-concept4

เงื่อนไข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-concept5

=IF(เงื่อนไข1,TRUE1,IF(เงื่อนไข2,TRUE2,FALSE2))

สังเกตว่ามี IF 2 ตัว จึงต้องมีวงเล็บเปิด 2 รอบ และวงเล็บปิด 2 รอบ เท่ากัน

ตัวอย่าง : การแยกกิ่งขั้นที่สองจากทั้งเงื่อนไขที่เป็นจริงและเงื่อนไขที่เป็นเท็จใน Step แรก

IF-concept6

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

=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 กันสุดท้ายจึงจะออกมาจะเป็นจริง

Excel 9 หน้า : IF ถ้ารู้งี้ ก็เก่งไปนานแล้ว!

IF vs CHOOSE vs VLOOKUP เปรียบเทียบฟังก์ชั่นทำหน้าที่ตัดสินใจ

$
0
0

“ชีวิตคนเราเต็มไปด้วยการตัดสินใจ…” จริงๆ แล้วคนเราตัดสินใจอยู่ตลอดเวลา (บางทีก็ตัดสินใจที่จะอยู่เฉยๆ 555) บางทีเราก็ต้องเลือกระหว่าง Choice 2 อย่าง แต่บางทีก็มี Choice มากมายนับไม่ถ้วน…

การทำงานกับ Excel ก็เช่นกัน หลายๆ ครั้งเราก็ต้องตัดสินใจ “ว่าถ้าข้อมูลเป็นแบบนี้ๆ แล้วจะให้เกิดเหตุการณ์อะไรขึ้น??”

ซึ่งจริงๆ แล้วการตัดสินใจใน Excel นั้นมีฟังก์ชั่นที่มาช่วยในเรื่องนี้หลายตัวด้วยกัน แต่ในบทความนี้ผมจะขอยกตัวอย่างฟังก์ชั่นที่น่าสนใจมากๆ 3 อัน นั่นคือ IF, CHOOSE, และ VLOOKUP นั่นเอง ซึ่งผมบอกเลยว่า นี่คือ “หัวใจสำคัญ” ที่จะทำให้คุณใช้ Excel ได้เก่งกาจขึ้นอีกมากครับ!!

ก่อนอื่น ขอเริ่มจากฟังก์ชั่นพื้นฐานที่สำคัญที่สุดในการคิดแบบตัดสินใจ นั่นคือ IF ครับ

IF

IF แปลได้ตรงๆ ว่า “ถ้า” ซึ่งความหมายและหน้าที่ของฟังก์ชั่นก็ตรงตามคำศัพท์ครับ นั่นคือ “ถ้า เงื่อนไขเป็นจริง แล้วจะใช้สูตร xxx แต่ถ้าไม่จริงจะใช้สูตร yyy”

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

ซึ่งเงื่อนไขที่ว่าก็คือสิ่งที่เขียนอยู่ในส่วนของ logical_test ในฟังก์ชั่น IF นั่นเอง ซึ่งจะต้องให้ผลลัพธ์ออกมาได้แค่ 2 อย่าง คือ TRUE กับ FALSE เท่านั้น!

if
โครงสร้างฟังก์ชั่น

=IF(logical_test,value_if_true,value_if_false
=IF(เงื่อนไขที่ต้องเช็คว่าจริงหรือเท็จ,ถ้าจริงใช้สูตรนี้,ถ้าเท็จใช้สูตรนี้)

เช่น ถ้า A1 คือ จำนวนงานที่มีตำหนิ ถ้างานมีตำหนิมากกว่า 10 ชิ้น โดนค่าปรับชิ้นละ 5000 บาท แต่ถ้าไม่เกิน 10 ชิ้นจะโดนปรับชิ้นละ 1000 บาท

ถ้าเราต้องการคำนวณค่าปรับใน A2 จะเขียนสูตรได้ว่า =IF(A1>10,5000*A1,1000*A1)
ซึ่งแปลได้ว่า ถ้า A1 > 10 ชิ้น (เงื่อนไข) ค่าปรับคือ 5000*A1 (กรณีจริง) แต่ถ้าไม่เกิน ค่าปรับคือ 1000*A1 (กรณีเท็จ) นั่นเอง

หมายเหตุ : เงื่อนไขอาจมีได้หลายเงื่อนไข ซึ่งเอามาผสมรวมกันได้ด้วยฟังก์ชั่นทางตรรกะ เช่น AND, OR, NOT จนสุดท้ายเหลือออกมาแค่ TRUE/FALSE

หมายเหตุ 2 : เนื่องจาก IF แยกได้แค่ 2 กิ่ง ถ้าอยากให้ผลลัพธ์มีได้มากกว่า 2 กิ่งให้ใช้ IF ซ้อนกันหลายๆ ชั้น

CHOOSE

หาก IF เปรียบเสมือนป้ายทางแยก 2 ทางแล้ว CHOOSE ก็เปรียบเสมือนลิฟท์ ที่มีปุ่มให้เลือกกดว่าจะไปชั้นไหน แล้วแต่ละชั้นจะใช้สูตรอะไร?

choose

ที่ผมเปรียบเทียบ CHOOSE เป็นเหมือนลิฟต์ เพราะว่า CHOOSE นั้นเรา จะต้องระบุตัวเลข ให้มันก่อน ว่า จะให้มันทำงานด้วยสูตรลำดับที่เท่าไหร่? (มีได้สูงสุด 254 สูตร!!)

โครงสร้างฟังก์ชั่น

=CHOOSE(index_num,value1,value2,value3,…,value254)
=CHOOSE(เลขลำดับสูตรที่จะให้ใช้,สูตรที่1,สูตรที่2,สูตรที่3,…,สูตรที่254)

เช่น =CHOOSE(3,A1+2,A1*2,A1/2,A1^2) จะได้ผลลัพธ์ว่า A1/2
เพราะว่าเราเลือกสูตร ลำดับที่3 จากสูตรทั้งหมดที่มีให้เลือกดังนี

  1. A1+2
  2. A1*2
  3. A1/2
  4. A1^2

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

VLOOKUP

ตัวสุดท้ายที่จะพูดถึงคือฟังก์ชั่นสุดเจ๋งอย่าง VLOOKUP ซึ่งจริงๆ แล้วมีการทำงานถึง 2 โหมดด้วยกัน นั่นคือ VLOOKUP แบบ Approximate Match และ แบบ Exact Match

ซึ่งตัวที่ผมจะขอพูดถึงในที่นี้คือ VLOOKUP แบบ Exact Match ซึ่งเป็นแบบที่เราใช้งานกันบ่อยในชีวิตประจำวันแล้วกันครับ

ถ้าจะให้เปรียบเทียบ VLOOKUP แบบ Exact Match ผมคิดว่าเราสามารถเปรียบเทียบกับเวลาที่เรากำลังมองไปที่เมนูของร้านกาแฟได้เลยครับ (ตัวอย่างร้านกาแฟนี้ ผมได้แนวคิดมาจากเว็บ http://www.excelcampus.com/functions/excel-vlookup-explained/ ครับ อธิบายได้เห็นภาพมาก)

vlookup3

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

 

โครงสร้างฟังก์ชั่น

=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
=VLOOKUP(ข้อมูลที่สนใจ,ตารางอ้างอิง,ลำดับคอลัมน์ของผลลัพธ์ที่ต้องการ, อันสุดท้าย ใส่ 0 เพื่อบอกว่าใช้โหมด Exact Match)

ถ้าเป็นตัวอย่างกาแฟ สมมติว่าผมต้องการกิน Cappuccino (lookup_value) ผมก็จะมองไปที่เมนู (table_array) แล้วกวาดสายตาจากบนลงล่างจนเจอกับ Cappuccino…

จากนั้นก็จะกวาดสายไปมองไปทางขวา สมมติผมต้องการแบบเย็น ผมก็ต้องมองไปที่คอลัมน์ลำดับที่ 3 (col_index_num) แล้วสุดท้ายก็จะได้ราคา นั่นคือ 65 บาท กลับมานั่นเอง

ซึ่งจะเขียนเป็นสูตรเต็มๆ ได้ว่า

=VLOOKUP(“Cappuccino”,เมนูกาแฟ,3,0) ซึ่งจะได้ผลลัพธ์คือ 65 กลับมาครับ

หมายเหตุ : ผลลัพธ์ของ VLOOKUP สามารถเป็นค่าผลลัพธ์ได้อย่างเดียว ไม่สามารถใส่เป็นสูตรคำนวณเช่นเดียวกับ IF หรือ CHOOSE ได้

สรุปเปรียบเทียบฟังก์ชั่นแต่ละตัว

if-vlookup-compare - Excel2

สรูปแล้วฟังก์ชั่นแต่ละตัวก็มีข้อดีข้อเสียต่างกัน ซึ่งถ้าให้ผมแนะนำว่าควรใช้ตัวไหน ก็ให้ดูว่า ทางแยกตัดสินใจมีมากหรือน้อย ถ้ามีน้อยๆ แค่ 2 ทาง การใช้ IF ก็ค่อนข้างสะดวก

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

แต่ถ้ามีหลายทางแล้วผลลัพธ์เป็นค่าธรรมดาๆ ไม่ใช่สูตร ก็ใช้ VLOOKUP ได้เลยครับ!!

สำหรับคนที่อยากศึกษาต่อเพิ่มเติม ก็สามารถค้นหาคำว่า IF, CHOOSE, VLOOKUP ในเว็บผมได้เลยครับ มีให้อ่านอีกเยอะครับ ^^

ติวเข้มก่อนเข้าโรงเรียนเวทมนตร์ #2 : ข้อควรระวังในการเขียนวันที่ในสูตร

$
0
0

จากตอนที่แล้วที่ผมได้อธิบายเฉลยข้อสอบเข้าโรงเรียนจอมเวทเทพเอ็กเซล ไป 2 เรื่องแล้ว วันนี้มาต่ออีกเรื่องซึ่งเป็นข้อที่มีคนผิดมากที่สุดครับ โดยโจทย์ที่ถามคือ…

8) ตามรูป หากเขียนสูตรว่า =IF(A1<31/12/2016,”ยังไม่หมดเขต”,”หมดเขตแล้ว”) ผลลัพธ์จะได้ออกมาเป็นอะไร?
(A1 คือ วันที่ 29 สิงหาคม ค.ศ. 2016)

011

ข้อนี้หลายคนโดนหลอกอย่างจัง เพราะข้อนี้คำตอบคือ “หมดเขตแล้ว”

สาเหตุคือ เวลาเราเขียนค่าที่เป็นวันที่ลงไปในสูตร หากเราดันไปเขียนว่า =A1<31/12/2016 มันจะกลายเป็น เอา 31 หารด้วย 12 แล้วหารด้วย 2016 แทน (ไม่เชื่อลองเขียนสูตรว่า =31/12/2016 ดูสิ จะได้ ซึ่งจะได้ A1<0.00128141534391534  )

ดังนั้นสูตรที่เขียนว่า =A1<31/12/2016 จะได้ =A1<0.00128141534391534

ซึ่ง A1 เป็นวันที่จริงๆ ซึ่งมันเปรียบเทียบได้เป็นเลข 42611 (จริงๆ แล้ววันที่คือเลขธรรมดา เช่น 1 มกราคม ค.ศ. 1900 คือเลข 1, 2 มกราคม ค.ศ. 1900 คือเลข 2 …)

ดังนั้นสูตรที่เขียนจริงเหมือนกับเขียนว่า =42611<0.00128141534391534 ดังนั้นมันจึงออกมาเป็น FALSE ซึ่งก็คือ “หมดเขตแล้ว” นั่นเอง

ทีนี้หากจะเปรียบเทียบวันที่แบบถูกต้องจะทำยังไงได้บ้าง???

ผมอยากจะแนะนำ 3 วิธีด้วยกันนะครับ ลองเอาไปเลือกใช้ดูตามความเหมาะสม

1. เขียนวันที่เป็น Text แล้วแปลงเป็นตัวเลข

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

วิธีเขียนคือ ให้เขียนวันที่ในเครื่องหมายคำพูด แล้วเอาไป convert ให้เป็น Number โดยการเอาไปทำอะไรซักอย่างกับ Math Operator เช่น *1, +0, ใส่ – นำหน้า เป็นต้น (ส่วนตัวผมชอบใส่ – นำหน้า เพราะสังเกตง่าย และคำนวนเร็วสุด)
explain-03

ซึ่งพอกด Enter ผลลัพธ์ก็จะออกมาเป็น “ยังไม่หมดเขต” ตามที่ควรจะเป็น (อย่าลืมลองเปลี่ยนวันที่เล่นดูว่าสูตรยังทำงานถูกหรือไม่?)

แต่วิธีนี้มีข้อควรระวัง คือ เรื่องของ Format วันที่ของ Region and Language ใน Control Panel ของคอมพิวเตอร์ที่กำลังเปิดไฟล์นั้นๆ อยู่ เพราะอาจทำให้วันและเดือนสลับกันได้ซึ่งอันตรายพอตัวเลยครับ

เช่น บางเครื่องตั้งค่าวันที่แบบที่อ่านค่า 3/4/2016 แปลว่า วันที่ 3 เดือน 4 แต่บางเครื่องตั้งค่าให้แปลว่า วันที่ 4 เดือน 3 เป็นต้น

ซึ่งการที่เราใส่วันที่เป็นรูปแบบตัวเลข xx/yy/zzzz แบบนี้ มันเป็นการ Hard Code แบบใส่ค่าคงที่ลงไปในสูตร ซึ่งไม่ว่าจะเปิดที่ Computer เครื่องไหนก็ตาม มันก็จะเห้นสูตรแบบเดียวกันหมดนี่แหละ แต่อาจตีความไม่เหมือนกันก็ได้

ดังนั้น ถ้าจะใช้วิธีนี้ โปรดทำให้แน่ใจว่า ไฟล์ที่เราทำจะถูกเปิดใช้โดย Computer ที่ตั้งค่า Format วันที่ของ Region and Language แบบที่เราคิดไว้เท่านั้น

2.เขียนวันที่ลงไปใน Cell เลย

วิธีนี้เป็นวิธีที่ดีตรงที่เห็นชัดว่าเรากำลังเปรียบเทียบกับวันอะไรอยู่?
explain-01

ซึ่งพอกด Enter ผลลัพธ์ก็จะออกมาเป็น “ยังไม่หมดเขต” ตามที่ควรจะเป็น

วิธีนี้สิ่งที่เราต้องทำคือ จงแน่ใจว่าเราใส่รูปแบบวันที่แบบเดียวกับวันที่ที่นำมาเปรียบเทียบ เช่น ถ้าเป็น DD/MM/YYYY ก็ใส่ให้เหมือนกัน หรือถ้าเป็น MM/DD/YYYY ก็จงทำให้เหมือนกัน ไม่่งั้นอาจผิดเพราะเรื่อง Format วันที่ของ Region and Language แบบเดียวกับข้อข้างบนได้

3. เขียนวันที่ด้วยฟังก์ชั่น DATE

วิธีนี้มีความปลอดภัยสูงที่สุด เพราะจะไม่มีปัญหาเรื่องการตั้งค่า Format วันที่ของ Region and Language ของคอมพิวเตอร์แต่ละเครื่องเลย เพราะฟังก์ชั่น DATE จะถามหา Argument แยกกัน นั่นคือ ปี เดือน วัน แต่ละตัวแยกกันโดยไม่ปนกันเลย
explain-02

ดังนั้นถ้าถามผมว่าวิธีไหนน่าจะ Work และปลอดภัยที่สุด ความเห็นส่วนตัวของผมคือ วิธีสุดท้ายนี่แหละครับ ^^

เอาล่ะ ใครอ่านจบถึงตรงนี้ ถ้าหากมีคำถามอะไร อย่าปล่อยผ่านนะครับ ถามมาได้เล้ยยยย

 

การเขียน IF ที่ให้ผล TRUE/FALSE โดยไม่จำเป็น

$
0
0
ถ้าจะเขียน IF ให้ออกมาเป็น TRUE/FALSE เช่น =IF(A>B,TRUE,FALSE) ไม่ต้องใช้ IF ก็ได้ ให้ใส่แค่เงื่อนไขพอ เช่น =A>B แค่นี้พอครับ Sira Ekabut• Microsoft Office Specialist : Excel…

สอนวิธีทำ Drop Down List แบบ Search ได้ใน Excel (ไม่ต้องใช้ VBA)

$
0
0
คุณเคยมีปัญหามีรายการที่จะต้องแสดงใน Drop Down List จำนวนมากจนแสดงไม่ไหวหรือไม่? วิธีแก้อันนึงที่ผมนำเสนอไปแล้วคือ การทำ Drop Down หลายชั้น แต่หากเราสามารถที่จะทำให้คนใช้งานพิมพ์ข้อความบางส่วนแล้วแสดงรายการที่มีคำนั้นๆ ได้เลยจะดีขนาดไหน? หลายคนคิดว่าเรื่องแบบนี้ต้องใช้ VBA ทำเท่านั้น แต่ในความเป็นจริง เราก็สามารถเขียนสูตรเพื่อสร้าง “Drop down List…

สอนฟังก์ชัน IF ใน Excel แบบ Basic สุดๆ ดูจบใช้เป็นเลย (เรียนจากความสูงของตัวละครใน Dragon Ball)

$
0
0
ในคลิปนี้เราจะเอาความสูงของตัวละครต่างๆ ในการ์ตูนสุดฮิตอย่างดราก้อนบอล (Dragon Ball) มาช่วยให้เราเรียนรู้เกี่ยวกับฟังก์ชัน IF ใน Excel กันครับ คลิปสั้นๆ แต่ดูจบได้ความรู้เต็มเปี่ยมแน่นอน ดูจบใช้เป็นเลย ถ้าชอบคลิปนี้ ช่วยกด Like / Subscribe / ช่วยแชร์ ให้ด้วยนะครับ
Viewing all 10 articles
Browse latest View live