RSS

เราจะซ้อน IF มากกว่า 7 ชั้นได้อย่างไร?

09 Nov

Excel ตั้งแต่เวอร์ชั่น 2003 ลงไปสามารถซ้อน IF ได้แค่ 7 ชั้นซึ่งบางคนก็อยากได้มากกว่านั้น Excel 2007 จึงให้มาถึง 64 ชั้น และคิดว่าน่าจะเพียงพอแก่การงง Disappointed smile

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

  1. True+0 = 1
  2. False+0 = 0
  3. การใช้ &

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

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

Smile with tongue out ก่อนที่จะถูกหมั่นไส้ไปกว่านี้ ขอพาไปทัศนาว่าเราจะใช้ IF เกิน 7 ชั้นได้อย่างไร แล้วมันเกี่ยวอะไรกันกับ True, False, &

การที่จะให้เข้าใจอะไรง่ายๆ ก็ต้องมีตัวอย่างประกอบครับ ขอยกตัวอย่างดังนี้

สมมุติโจทย์บอกว่า ถ้า

A1=1 ให้ B1=10
A1=2 ให้ B1=11
A1=3 ให้ B1=12
A1=4 ให้ B1=13
A1=5 ให้ B1=14
A1=6 ให้ B1=15
A1=7 ให้ B1=16
A1=8 ให้ B1=17
A1=9 ให้ B1=18

นอกจากเงื่อนไขข้างบนให้คำตอบเป็น 0 รวมทั้งหมด 10 เงื่อนไข

Sarcastic smile คำถาม จะเขียนฟังก์ชั่น IF ที่ B1 อย่างไร?

เราสังเกตเห็นอะไรบ้างครับกับโจทย์นี้ ส่วนตัวผมเองสังเกตเห็นดังนี้

  1. เงื่อนไขเป็นตัวเลข
  2. เงื่อนไขเกินกว่า 7 ชั้น

ก่อนแก้โจทย์ที่แสนยาก เรามาซ้อมกันก่อนดีกว่า สมมุติตอนนี้ A1 = 2 ที่ B1 คีย์สูตร IF ดังนี้

=If(A1=1,True,False)+0

คำตอบได้เป็นอะไรครับ?

เอาใหม่ ที่ B1 คีย์

=If(A1=1,True)+0 <== โปรดสังเกตว่าเงื่อนไขไม่ครบ

คำตอบได้เป็นอะไรครับ? ==> รู้นะบางคนบอกว่า Excel เพี้ยนไปแล้ว ไม่เป็นไรครับ ถ้า Excel คุณเพี้ยน ของผมก็เพี้ยนเหมือนกัน สบายใจได้ มีเพื่อนแล้ว

เอ้า…มาต่อกัน ดูว่าคนควนจะบอกอะไรต่อ ทดลองแล้ว ได้คำตอบแล้ว งงแล้ว แล้วไงต่อ

ผมกำลังจะบอกว่าเราจะนำตัวอย่างที่ 2 นี่แหละครับ มาทำ IF ให้เกิน 7 ชั้น

ตามข้าพเจ้ามา ที่ B1 เขียนสูตรเพื่อแก้โจทย์ (เอาจริงแล้วนะ) ดังนี้

=IF(A1=1,10,IF(A1=2,11,IF(A1=3,12,IF(A1=4,13,IF(A1=5,14,IF(A1=6,15,IF(A1=7,16,IF(A1=8,17))))))))+IF(A1=9,18)

ที่ A1 ทดลองคีย์เลขใดๆ แล้วสังเกตดูผลลัพธ์

เราเห็นอะไรจากสูตรนี้บ้าง

  1. เงื่อนไขสุดท้ายเป็น 0 เราไม่ต้องคีย์
  2. If ซ้อนได้ 7 ชั้นแต่เรานับแล้วได้ 8 แสดงว่า IF ชั้นนอกสุดไม่นับ

ถ้าให้คืนค่าเป็นอักขระบ้างล่ะ จะซ้อนเกิน 7 ชั้นได้อย่างไร เพราะคงเอา Text มาบวก Text ไม่ได้แน่นอน

โอเค…ได้ ตามใจผู้ชมเสมอ สมมุติโจทย์ใหม่ดังนี้ ถ้า

A1=1 ให้ B1=A
A1=2 ให้ B1=B
A1=3 ให้ B1=C
A1=4 ให้ B1=D
A1=5 ให้ B1=E
A1=6 ให้ B1=F
A1=7 ให้ B1=G
A1=8 ให้ B1=H
A1=9 ให้ B1=I
A1=10 ให้ B1 = J

นอกจากเงื่อนไขข้างบนให้คำตอบเป็น ค่าว่าง รวมทั้งหมด 11 เงื่อนไข (แน่ะ…มีการแถม)

Sarcastic smile คำถาม จะเขียนฟังก์ชั่น IF ที่ B1 อย่างไร?

Winking smile คำตอบ ที่ B1 คีย์

=IF(A1=1,”A”,IF(A1=2,”B”,IF(A1=3,”C”,IF(A1=4,”D”,IF(A1=5,”E”,IF(A1=6,”F”,IF(A1=7,”G”,IF(A1=8,”H”,””))))))))&IF(A1=9,”I”,IF(A1=10,”J”,””))

เราสังเกตเห็นอะไรบ้างจากสูตรนี้

  1. เมื่อเป็น Text เงื่อนไขสุดท้ายต้องให้คืนค่าเป็นค่าว่าง (“”)
  2. การเชื่อมให้เกินกว่า 7 ชั้นใช้ &

อ้อ…เป็นอย่างนี้นี่เอง I don't know smile

ลองประยุกต์สัก 20 หรือ 30 เงื่อนไขดูครับว่า จะใช้ IF อย่างไร ซึ่งผมแนะนำว่าหากเงื่อนไขหลายๆ ชั้นควรใช้ฟังก์ชั่นอื่นที่เหมาะสมกว่ามาแก้ปัญหาครับ เช่น Lookup, Vlookup, Index+Match เป็นต้น

 
9 Comments

Posted by on 09/11/2008 in If, Nested

 

9 responses to “เราจะซ้อน IF มากกว่า 7 ชั้นได้อย่างไร?

  1. ๏๏๏๏๏

    19/05/2011 at 12:21 pm

    ขอบคุณครับบบบบบบบบบบบบบ

     
  2. คนควน

    19/05/2011 at 5:36 pm

    ยินดีครับ

     
  3. Anuruk

    10/11/2011 at 11:45 pm

    ยอดเยี่ยมกระเทียมดองครับ 55555

     
  4. คนควน

    11/11/2011 at 1:41 pm

    🙂 ขอบคุณครับ

     
  5. Anonymous

    21/11/2011 at 8:45 pm

    แล้วการทำเกมส์Sudokuต้องใช้สูตรอะไรหรอครับ

     
  6. คนควน

    22/11/2011 at 5:10 pm

    ถาม-ตอบปัญหา Excel ได้ที่ http://www.snasui.com/ ครับ

     
  7. Anonymous

    19/02/2012 at 2:31 pm

    ขอบคุณมากๆๆๆๆๆๆเลยนะคะ

     
  8. cher_ry

    03/04/2012 at 12:09 pm

    รบกวนถามหน่อยค่ะ "ทำเซลล์ให้เป็นสี" โดยการใช้สูตร 1.ถ้าเราใส่คำว่า YES ในคอลัม Q แถว 2 อยากให้แถบสีเหลืองขึ้นที่เซลล์ตั้งแต่ คอลัม A แถว 2 จนถึง คอลัม Q แถว 2 จะทำอย่างไร 2.ถ้าพิมพ์ตัวอักษรอะไรก็ได้ ในคอลัม M แถว 3 อยากให้แถบสีฟ้าขึ้นที่เซลล์ตั้งแต่ คอลัม A แถว 3 จนถึง คอลัม K แถว 3 ทำอย่างไร

     
  9. คนควน

    03/04/2012 at 12:33 pm

    🙂 ช่วยไปถามที่ http://www.snasui.com/ แนบไฟล์ตัวอย่างไปด้วย เพื่อความสะดวกในการตอบครับ

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: