: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

การเขียนสูตรเงื่อนไขหลายๆชั้น

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
jikkie.cat
Member
Member
Posts: 8
Joined: Tue Aug 03, 2010 4:14 pm

การเขียนสูตรเงื่อนไขหลายๆชั้น

#1

Post by jikkie.cat »

รบกวนสอบถามการเขียนสูตรหลาย ๆ เงื่อนไข ดังนี้

เงื่อนไข
1. ในแต่ละ Level จะมีเป้าหมายในการจำหน่ายสินค้าไม่เท่ากัน
2. สินค้ามี 2 ประเภท และ เป้าหมายไม่เท่ากัน
3. ต้องจำหน่ายสินค้าให้ได้ตามเป้าหมายทั้ง 2 ประเภท จึงจะได้คะแนนตามกำหนด หากไม่ achieve จะได้ 0 คะแนน

รายละเอียดเพิ่มเติมตาม file แนบนะคะ

ขอบคุณมากๆ ค่ะ
You do not have the required permissions to view the files attached to this post.
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#2

Post by joo »

ลองใช้ If กับ VLOOKUP ดูครับ การใช้ IF เช่น
ที่ E24 คีย์ =IF(AND(C24>=25,D24>=20),12,IF(AND(C24>=20,D24>=15),10,(IF(AND(C24>=15,D24>=10),8,0))))
ที่ E25 คีย์ =IF(AND(C25>=20,D25>=15),12,IF(AND(C25>=15,D25>=10),10,(IF(AND(C25>=10,D25>=5),8,0))))
ที่ E26 คีย์ =IF(AND(C26>=15,D26>=10),12,IF(AND(C26>=8,D26>=5),10,(IF(AND(C26>=5,D26>=0),8,0))))
ส่วนสูตรที่กระซับเดี่ยวให้อาจารย์ดูให้ครับ :mrgreen:
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#3

Post by kmb »

ผมขอนำเสนอ 1 เวอร์ชั่นครับ :D
You do not have the required permissions to view the files attached to this post.
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#4

Post by joo »

ที่ E24 ลองคีแบบนี้ใหม่ครับ
=IF(B24=1,IF(AND(C24>=25,D24>=20),12,IF(AND(C24>=20,D24>=15),10,(IF(AND(C24>=15,D24>=10),8,0)))))+IF(B24=2,IF(AND(C24>=20,D24>=15),12,IF(AND(C24>=15,D24>=10),10,(IF(AND(C24>=10,D24>=5),8,0)))))+IF(B24=3,IF(AND(C24>=15,D24>=10),12,IF(AND(C24>=8,D24>=5),10,(IF(AND(C24>=5,D24>=0),8,0)))))
แล้ว Copy ลงด้านล้าง สูตรอาจยาวไปหน่อย :mrgreen:
User avatar
snasui
Site Admin
Site Admin
Posts: 30944
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#5

Post by snasui »

:D ยังไม่ค่อยเข้าใจเงื่อนไขครับ ช่วยอธิบายด้วยว่าบรรทัดที่ 24 Score ด้วยเหตุใดจึงได้คำตอบเป็น 0 ครับ
You do not have the required permissions to view the files attached to this post.
jikkie.cat
Member
Member
Posts: 8
Joined: Tue Aug 03, 2010 4:14 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#6

Post by jikkie.cat »

snasui wrote::D ยังไม่ค่อยเข้าใจเงื่อนไขครับ ช่วยอธิบายด้วยว่าบรรทัดที่ 24 Score จึงได้คำตอบเป็น 0 ครับ

ขอโทษอย่างมากๆ ด้วยค่ะ พิมพ์ผิดอย่างแรง
ตามเงื่อนไข บรรทัดที่ 24 ต้องได้ 8 ค่ะ และบรรทัดที่ 29 ต้องเป็น 10 ค่ะ
T_T สงสัยจะมึนงงตอนทำโจทย์อ่ะค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30944
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#7

Post by snasui »

:D ช่วยส่งตัวอย่างที่ถูกต้องมาใหม่ครับ และหากเป็นไปได้ช่วยอธิบายเป็นตัวอย่างมาว่าได้คำตอบมาอย่างไรครับ
jikkie.cat
Member
Member
Posts: 8
Joined: Tue Aug 03, 2010 4:14 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#8

Post by jikkie.cat »

snasui wrote::D ช่วยส่งตัวอย่างที่ถูกต้องมาใหม่ครับ และหากเป็นไปได้ช่วยอธิบายเป็นตัวอย่างมาว่าได้คำตอบมาอย่างไรครับ

เพิ่มเติมตาม File แนบค่ะ

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

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#9

Post by snasui »

:D ลองตามไฟล์แนบครับ

ที่ 12 คีย์

=INDEX($L$4:$L$11,MATCH(1,IF($B12=$I$4:$I$11,IF($C12>=$J$4:$J$11,IF($D12>=$K$4:$K$11,1))),0))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

สังเกตการกดแป้นจะต้องกด 3 แป้นเพื่อรับสูตร คือกดแป้น Ctrl+Shift ค้างไว้แล้วตามด้วย Enter แทนการกด Enter ธรรมดา หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร ปีกกานี้จะคีย์เข้าไปเองไม่ได้ครับ
You do not have the required permissions to view the files attached to this post.
jikkie.cat
Member
Member
Posts: 8
Joined: Tue Aug 03, 2010 4:14 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#10

Post by jikkie.cat »

:D :D :D

ใช้งานได้แล้ว
ขอบคุณมากๆ เลยค่ะ
jikkie.cat
Member
Member
Posts: 8
Joined: Tue Aug 03, 2010 4:14 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#11

Post by jikkie.cat »

jikkie.cat wrote::D :D :D

ใช้งานได้แล้ว
ขอบคุณมากๆ เลยค่ะ



ขอบคุณท่านอื่น ๆ ด้วยนะคะ
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#12

Post by kmb »

ได้แนวทางแล้วสำหรับกรณีที่จะรวมหลายเงื่อนไขโดยใช้ Index, Match แล้ว ขอบคุณครับ :D
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#13

Post by kmb »

snasui wrote::D ลองตามไฟล์แนบครับ

ที่ 12 คีย์

=INDEX($L$4:$L$11,MATCH(1,IF($B12=$I$4:$I$11,IF($C12>=$J$4:$J$11,IF($D12>=$K$4:$K$11,1))),0))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

สังเกตการกดแป้นจะต้องกด 3 แป้นเพื่อรับสูตร คือกดแป้น Ctrl+Shift ค้างไว้แล้วตามด้วย Enter แทนการกด Enter ธรรมดา หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร ปีกกานี้จะคีย์เข้าไปเองไม่ได้ครับ
ในกรณีที่ค่าน้อยกว่ามันได้ค่าเป็น #N/A น่ะครับ เช่นผมลองแก้ไขค่าของ C12 เป็น 14, C13 เป็น 9, C14 เป็น 4 ตามไฟล์แนบ
ต้องแก้ไขสูตรอย่างไรครับ :)

ป.ล. สูตรมันต้องเป็น 12 แทน 11 หรือเปล่าครับ
=INDEX($L$4:$L$12,MATCH(1,IF($B12=$I$4:$I$12,IF($C12>=$J$4:$J$11,IF($D12>=$K$4:$K$12,1))),0))
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30944
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#14

Post by snasui »

:D สำหรับขอบเขตของช่วงข้อมูลสามารถปรับได้ตามที่ใช้จริง ผมกำหนดขอบเขตไว้น้อยไป ตามที่แก้มานั้นถูกต้องแล้วครับ และหากไม่เข้าเงื่อนไขใดก็จะได้ #N/A และกรณีที่เป็น #N/A หากจะให้แสดงค่าใดก็ต้องกำหนดให้มาเพราะสูตรที่ใช้อาจจะต่างกันครับ

เนื่องจากตัวอย่างที่ให้มาเช่น Type A น้อยกว่าหรือเท่ากับ 14 และ Type B น้อยกว่าหรือเท่ากับ 12 ไม่มีค่านั้นในตารางข้อมูลที่ต้องการนำมาแสดง จึงให้ผลลัพธ์เป็น #N/A หรือ Not Applicable :mrgreen:
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#15

Post by kmb »

ถ้าเป็นกรณีที่ต้องการให้ค่าที่ E12 เป็น 0 ล่ะครับ เพราะถือว่าตกเงื่อนไขขั้นต่ำของ Type A ต้องใช้สูตรอย่างไรครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30944
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#16

Post by snasui »

:D สามารถใช้สูตร If มาดักค่า #N/A ได้ครับ โดยปรับเป็น

=If(Isna(MATCH(1,IF($B12=$I$4:$I$12,IF($C12>=$J$4:$J$11,IF($D12>=$K$4:$K$12,1))),0)),0,INDEX($L$4:$L$12,MATCH(1,IF($B12=$I$4:$I$12,IF($C12>=$J$4:$J$11,IF($D12>=$K$4:$K$12,1))),0)))

Ctrl+Shift+Enter
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: การเขียนสูตรเงื่อนไขหลายๆชั้น

#17

Post by kmb »

ขอบคุณครับ :D
Post Reply