Page 1 of 1

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

Posted: Fri Jan 28, 2011 11:42 am
by jikkie.cat
รบกวนสอบถามการเขียนสูตรหลาย ๆ เงื่อนไข ดังนี้

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

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

ขอบคุณมากๆ ค่ะ

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

Posted: Fri Jan 28, 2011 4:53 pm
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:

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

Posted: Fri Jan 28, 2011 4:56 pm
by kmb
ผมขอนำเสนอ 1 เวอร์ชั่นครับ :D

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

Posted: Fri Jan 28, 2011 5:06 pm
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:

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

Posted: Fri Jan 28, 2011 5:15 pm
by snasui
:D ยังไม่ค่อยเข้าใจเงื่อนไขครับ ช่วยอธิบายด้วยว่าบรรทัดที่ 24 Score ด้วยเหตุใดจึงได้คำตอบเป็น 0 ครับ

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

Posted: Fri Jan 28, 2011 5:26 pm
by jikkie.cat
snasui wrote::D ยังไม่ค่อยเข้าใจเงื่อนไขครับ ช่วยอธิบายด้วยว่าบรรทัดที่ 24 Score จึงได้คำตอบเป็น 0 ครับ

ขอโทษอย่างมากๆ ด้วยค่ะ พิมพ์ผิดอย่างแรง
ตามเงื่อนไข บรรทัดที่ 24 ต้องได้ 8 ค่ะ และบรรทัดที่ 29 ต้องเป็น 10 ค่ะ
T_T สงสัยจะมึนงงตอนทำโจทย์อ่ะค่ะ

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

Posted: Fri Jan 28, 2011 5:42 pm
by snasui
:D ช่วยส่งตัวอย่างที่ถูกต้องมาใหม่ครับ และหากเป็นไปได้ช่วยอธิบายเป็นตัวอย่างมาว่าได้คำตอบมาอย่างไรครับ

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

Posted: Fri Jan 28, 2011 6:07 pm
by jikkie.cat
snasui wrote::D ช่วยส่งตัวอย่างที่ถูกต้องมาใหม่ครับ และหากเป็นไปได้ช่วยอธิบายเป็นตัวอย่างมาว่าได้คำตอบมาอย่างไรครับ

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

ขอบคุณมากค่ะ

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

Posted: Fri Jan 28, 2011 6:19 pm
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 ธรรมดา หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร ปีกกานี้จะคีย์เข้าไปเองไม่ได้ครับ

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

Posted: Fri Jan 28, 2011 6:57 pm
by jikkie.cat
:D :D :D

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

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

Posted: Fri Jan 28, 2011 6:59 pm
by jikkie.cat
jikkie.cat wrote::D :D :D

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



ขอบคุณท่านอื่น ๆ ด้วยนะคะ

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

Posted: Fri Jan 28, 2011 8:01 pm
by kmb
ได้แนวทางแล้วสำหรับกรณีที่จะรวมหลายเงื่อนไขโดยใช้ Index, Match แล้ว ขอบคุณครับ :D

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

Posted: Wed Feb 02, 2011 10:29 am
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))

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

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

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

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

Posted: Wed Feb 02, 2011 12:11 pm
by kmb
ถ้าเป็นกรณีที่ต้องการให้ค่าที่ E12 เป็น 0 ล่ะครับ เพราะถือว่าตกเงื่อนไขขั้นต่ำของ Type A ต้องใช้สูตรอย่างไรครับ

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

Posted: Wed Feb 02, 2011 12:56 pm
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

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

Posted: Wed Feb 02, 2011 1:26 pm
by kmb
ขอบคุณครับ :D