:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

เรื่องการใช้ if หลายชั้น ค่ะ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
shokundog
Member
Member
Posts: 49
Joined: Mon Mar 24, 2014 11:54 pm

เรื่องการใช้ if หลายชั้น ค่ะ

#1

Post by shokundog »

รบกวนสอนวิธีการใช้if หลายๆชั้นให้หน่อยค่ะ พอดีลองทำแล้ว แล้วทำไม่สำเร็จค่ะ
ตัวอย่าง
ในช่อง b3 ต้องได้ 6 แต่พอใส่สูตรแล้ว มี 8 ต่อ ท้ายเป็น 68 ค่ะ
IF(a2<200,0,IF(a2<300,1,IF(a2<400,2,IF(a2<500,3,IF(a2<600,4,IF(a2<800,5,IF(a2<1000,6,IF(a2<2000,7,))))))))&IF(a2<3000,8,IF(a2<4000,9,IF(a2<5000,10,IF(a2>=5000,11,0))))

ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#2

Post by snasui »

:D ไฟล์ที่มีนามสกุลเป็น .xlsx สามารถซ้อน If ได้ 64 ชั้น

ตัวอย่างการใช้ IF ตามที่ต้องการครับ
=IF(A2<200,0,IF(A2<300,1,IF(A2<400,2,IF(A2<500,3,IF(A2<600,4,IF(A2<800,5,IF(A2<1000,6,IF(A2<2000,7,IF(A2<3000,8,IF(A2<4000,9,IF(A2<5000,10,IF(A2>=5000,11,0))))))))))))
shokundog
Member
Member
Posts: 49
Joined: Mon Mar 24, 2014 11:54 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#3

Post by shokundog »

snasui wrote::D ไฟล์ที่มีนามสกุลเป็น .xlsx สามารถซ้อน If ได้ 64 ชั้น

ตัวอย่างการใช้ IF ตามที่ต้องการครับ
=IF(A2<200,0,IF(A2<300,1,IF(A2<400,2,IF(A2<500,3,IF(A2<600,4,IF(A2<800,5,IF(A2<1000,6,IF(A2<2000,7,IF(A2<3000,8,IF(A2<4000,9,IF(A2<5000,10,IF(A2>=5000,11,0))))))))))))
พี่ค่ะ ระบบขึ้นข้อความนี้ค่ะ
The specified formula cannot be entered because it uses more levels of nesting than are allowed in the current file format.
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#4

Post by XDoll »

shokundog wrote:
snasui wrote::D ไฟล์ที่มีนามสกุลเป็น .xlsx สามารถซ้อน If ได้ 64 ชั้น

ตัวอย่างการใช้ IF ตามที่ต้องการครับ
=IF(A2<200,0,IF(A2<300,1,IF(A2<400,2,IF(A2<500,3,IF(A2<600,4,IF(A2<800,5,IF(A2<1000,6,IF(A2<2000,7,IF(A2<3000,8,IF(A2<4000,9,IF(A2<5000,10,IF(A2>=5000,11,0))))))))))))
พี่ค่ะ ระบบขึ้นข้อความนี้ค่ะ
The specified formula cannot be entered because it uses more levels of nesting than are allowed in the current file format.
อ่านที่อาจารย์เขียนไว้ดีๆครับ "ไฟล์ที่มีนามสกุลเป็น .xlsx สามารถซ้อน If ได้ 64 ชั้น" หากนามสกุล *.xls จะได้แค่ 7 ชั้นครับ
shokundog
Member
Member
Posts: 49
Joined: Mon Mar 24, 2014 11:54 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#5

Post by shokundog »

XDoll wrote:
shokundog wrote:
snasui wrote::D ไฟล์ที่มีนามสกุลเป็น .xlsx สามารถซ้อน If ได้ 64 ชั้น

ตัวอย่างการใช้ IF ตามที่ต้องการครับ
=IF(A2<200,0,IF(A2<300,1,IF(A2<400,2,IF(A2<500,3,IF(A2<600,4,IF(A2<800,5,IF(A2<1000,6,IF(A2<2000,7,IF(A2<3000,8,IF(A2<4000,9,IF(A2<5000,10,IF(A2>=5000,11,0))))))))))))
พี่ค่ะ ระบบขึ้นข้อความนี้ค่ะ
The specified formula cannot be entered because it uses more levels of nesting than are allowed in the current file format.
อ่านที่อาจารย์เขียนไว้ดีๆครับ "ไฟล์ที่มีนามสกุลเป็น .xlsx สามารถซ้อน If ได้ 64 ชั้น" หากนามสกุล *.xls จะได้แค่ 7 ชั้นครับ
ขอโทษทีค่ะ คิดว่าตัวเองเป็นนามสกุล *.xlsx แล้วถ้าเป็นแบบนี้ต้องแก้ไขยังไงค่ะ
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#6

Post by XDoll »

:D Office 2007 ขึ้นไป ให้ save as ไฟล์นามสกุล *.xls เป็น *.xlsx ได้ครับ

หลังจากนั้นปิดไฟล์ แล้วเปิดขึ้นมาใหม่ สามารถใส่สูตรที่อาจารย์ให้มาได้ตามปกติครับ

หากเป็นเวอร์ชั่น Office 2003 ให้แก้สูตรเป็น
=(IF(A2<200,0,IF(A2<300,1,IF(A2<400,2,IF(A2<500,3,IF(A2<600,4,IF(A2<800,5,IF(A2<1000,6,IF(A2<2000,7,""))))))))&IF(A2>=5000,11,IF(A2>=4000,10,IF(A2>=3000,9,IF(A2>=2000,8,"")))))+0
ZEROV
Member
Member
Posts: 73
Joined: Thu Jun 03, 2010 6:31 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#7

Post by ZEROV »

ใช้ฟังชั่น Match() น่าจะง่ายกว่าครับ
=MATCH(A2,{0,200,300,400,500,600,800,1000,2000,3000,4000,5000},1)-1
shokundog
Member
Member
Posts: 49
Joined: Mon Mar 24, 2014 11:54 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#8

Post by shokundog »

ZEROV wrote:ใช้ฟังชั่น Match() น่าจะง่ายกว่าครับ
=MATCH(A2,{0,200,300,400,500,600,800,1000,2000,3000,4000,5000},1)-1
ขอบคุณมากๆๆค่ะ
shokundog
Member
Member
Posts: 49
Joined: Mon Mar 24, 2014 11:54 pm

Re: เรื่องการใช้ if หลายชั้น ค่ะ

#9

Post by shokundog »

XDoll wrote::D Office 2007 ขึ้นไป ให้ save as ไฟล์นามสกุล *.xls เป็น *.xlsx ได้ครับ

หลังจากนั้นปิดไฟล์ แล้วเปิดขึ้นมาใหม่ สามารถใส่สูตรที่อาจารย์ให้มาได้ตามปกติครับ

หากเป็นเวอร์ชั่น Office 2003 ให้แก้สูตรเป็น
=(IF(A2<200,0,IF(A2<300,1,IF(A2<400,2,IF(A2<500,3,IF(A2<600,4,IF(A2<800,5,IF(A2<1000,6,IF(A2<2000,7,""))))))))&IF(A2>=5000,11,IF(A2>=4000,10,IF(A2>=3000,9,IF(A2>=2000,8,"")))))+0
ขอบคณมากๆๆค่ะ
Post Reply