Page 1 of 1

ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Sat Mar 26, 2011 6:32 pm
by zoriner
เรียน คุณคมควน
ผมได้ทำตามวิธีที่คุณได้โพสท์ไว้เรื่อง เราจะซ้อน IF มากกว่า 7 ชั้นได้อย่างไร? แล้ว แต่ปรากฏว่าไม่สามารถครับ
จนผมต้องลง MS Office 2007 เพราะเห็นว่ามันสามารถเพิ่มได้มากกว่า MS 2003 แต่ก็มันเป็น2ผลลัพธ์ (ผมลอง
กรอกเกรดโดยสมมติอย่างที่คุณเห็น ผมเป็นมือใหม่หัดทำครับ
หรือว่าผมต้องใส่อะไรลงไปอีกครับ จึงออกมาผลลัพธ์เดียว ("ผ่าน"หรือ"ตก")จนปัญญาจริง ๆครับ
จึงอยากจะขอให้คุณคมควนช่วยเหลือ ผมต้องทำสูตรให้เสร็จจะได้ให้ครูวิชาการกรอกคะแนนลงน่ะครับ เหลือสูตรเดียวเนี่ยแหละครับ

อ้อ..ลืมบอกไปว่าเงื่อนไขของการ "ผ่าน" ก็คือ นักเรียนต้องได้อย่างน้อยเกรด 1 ในทุกวิชา ถ้าได้เกรด 0 แม้เพียงวิชาเดียว
จะถือว่าสอบ "ตก" ครับ
ถ้าคุณคมควนมีสูตรอะไรที่จะช่วยให้สั้นเข้าก็กรุณาใส่มาให้ผมด้วยนะครับ ผมส่งมาทั้ง เวอร์ชั่น 2003 และ 2007 ครับ (ทาง อีเมล)

ขอบคุณมากครับ

ด้วยความนับถือในความมีจิตสาธาณะ

ขจรศักดิ์ โสรินทร์
:ugeek:

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Sat Mar 26, 2011 6:52 pm
by snasui
ช่วยอธิบายการคิดเกรดให้ด้วยครับ เพราะเท่าที่ผมดู ลักษณะเกรดจะเป็นดังนี้

0-49 เกรด 0
50-54 เกรด 1
55-59 เกรด 1.5
60-64 เกรด 2
65-69 เกรด 2.5
70-74 เกรด 3
75-79 เกรด 3.5
80 ขึ้นไป เกรด 4

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

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Sat Mar 26, 2011 7:03 pm
by snasui
เท่าที่ผมดูน่าจะเป็นปัญหาที่คอลัมน์ Z ที่เป็นการประเมินผลว่าผ่านหรือไม่ผ่าน

ที่ Z13 ใช้สูตรนี้แทนสูตรเดิมครับ

=IF(SUMPRODUCT(--($C$11:$T$11="ระดับเกรด"),--($C13:$T13=0))>0,"ตก","ผ่าน")

Enter > Copy ลงด้านล่าง

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Sat Mar 26, 2011 11:59 pm
by zoriner
:tt: อ๋อ..ที่กรอกเป็น 0 (ศูนย์)เพราะผมต้องการทดสอบสูตรครับว่าใช้ได้ไหม...ผลคือมันใช้ไม่ได้...แล้วก็ถูกต้องแล้วครับการคิดเกรดแบ่งเป็น 8 ระดับ
และชีทตัวนี้เป็นผลรวมขั้นสุดท้ายก่อนตัดสินผลการเรียนในแต่ละระดับชั้นเรียนครับ (ตัวนี้เป็นชั้นป.6 ที่ผมจะทำเป็นตัวต้นแบบให้ชั้นอื่น ๆต่อไป)
ต้องขอบคุณ..คุณคมควน..มากนะครับที่ช่วยเหลือสูตรที่ให้มาใช้ได้ดีตรงตามความต้องการเลยครับ
แต่ผมก็ยังสงสัย..อยู่ว่า..ทำไมใช้วิธีเพิ่ม IF ตัวที่ 9 ไม่ได้ทั้งใน excel 2003 และ 2007 ...รบกวนขอความรู้ในเรื่องนี้ด้วยจะได้ไหมครับ..

:mrgreen: ....ขอบคุณอีกครั้งที่ให้ความกระจ่างในเรื่อง Excel :D

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Sun Mar 27, 2011 7:18 am
by snasui
สำหรับตัวอย่างไฟล์ที่ทำมาแล้วพบว่าซ้อน If เกินกว่า 7 ชั้นไม่ได้ เนื่องจากว่าเขียนสูตรไม่ถูกต้องครับ ความต้องการในคอลัมน์ Z ก็เพื่อตรวจสอบว่าระดับเกรดช่องใดช่องหนึ่งเป็น 0 หรือไม่ ถ้าเป็น 0 แม้แต่ช่องเดียวคือตก หากไม่เป็น 0 เลยคือผ่าน

กรณีเงื่อนไขเป็นแบบนี้เราสามารถใช้ And หรือ Or เข้ามาช่วยได้ครับ

กรณีใช้ Or ในการเขียนสูตร ที่ Z12 คีย์

=IF(OR(D13<1,F13<1,H13<1,J13<1,L13<1,N13<1,P13<1,R13<1,T13<1),"ตก","ผ่าน")

Enter > Copy ลงด้านล่าง

ความหมายคือ ถ้า D13 น้อยกว่า 1 หรือ F13 น้อยกว่า 1 หรือ H13 น้อยกว่า 1 หรือ...T13 น้อยกว่า 1 ให้แสดงคำว่า ตก หากไม่เข้าเงื่อนไขข้างต้นให้แสดงคำว่า ผ่าน

กรณีใช้ And ในการเขียนสูตรที่ Z12 คีย์

=IF(And(D13>0,F13>0,H13>0,J13>0,L13>0,N13>0,P13>0,R13>0,T13>0),"ผ่าน","ตก")

Enter > Copy ลงด้านล่าง

ความหมายคือ ถ้า D13 มากกว่า 0 และ F13 มากกว่า 0 และ H13 มากกว่า 0 และ...T13 มากกว่า 0 ให้แสดงคำว่า ผ่าน หากไม่เข้าเงื่อนไขข้างต้นให้แสดงคำว่า ตก

ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Wed Mar 30, 2011 11:33 am
by Nakorn
ใช้ If เกิน 7 ชั้นไม่ได้ในเงื่อนไขของเวลาครับ
ไฟล์แนบ <Test_If.xls>
จะรวมเงื่อนไขใน Column B, C และ D ได้อย่างไรครับ

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Wed Mar 30, 2011 11:41 am
by snasui
:D การแสดงผลเป็นตัวเลขใช้การบวกกันครับ ดูตัวอย่าง IF เกิน 7 ชั้นที่นี่ครับ http://snasui.blogspot.com/2008/11/if-7.html

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Wed Mar 30, 2011 1:04 pm
by Nakorn
ผลลัพท์มันไม่ตรงครับ (เป็นที่เงื่อนไขของเวลาหรือเปล่าครับ)
=IF(A9<8/24,8/24,IF(A9<=8.25/24,A9,IF(A9<=8.5/24,8.5/24,IF(A9<=9/24,9/24,IF(A9<=9.5/24,9.5/24,IF(A9<=10/24,10/24,IF(A9<=10.5/24,10.5/24,IF(A9<=11/24,11/24,A9))))))))+IF(A9<=11.5/24,11.5/24,A9)
ผลลัพท์ = 22:31 ซึ่งน่าจะได้ = 11:30

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Wed Mar 30, 2011 1:24 pm
by snasui
หากเขียนสูตรถูกต้องย่อมต้องได้ผลลัพธ์ครับ สูตรนี้ใช้กับตัวเลขทุกประเภทครับ ที่ได้ผลลัพธ์ไม่เท่ากับเป้าหมายแสดงว่าในชุดแรกก็มีคำตอบ ในชุดถัดมาก็มีคำตอบ ลองตรวจสอบดูครับ

ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Wed Mar 30, 2011 3:17 pm
by Nakorn
ยังไม่ได้อยู่ดีครับอาจารย์ ตรวจสอบแล้วเงื่อนไขก็ไม่ซ้ำ

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Wed Mar 30, 2011 6:45 pm
by snasui
:D ผม Evaluate ด้วย F9 แล้วพบว่าในเซลล์ C2 ชุด If หน้าและ If หลังก็ได้คำตอบทั้งคู่ เช่นนี้จึงทำให้ได้คำตอบผิด ดูภาพประกอบด้านล่างครับ

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

ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Thu Mar 31, 2011 12:10 pm
by Nakorn
ได้แล้วครับอาจารย์
อันนี้เงื่อนไขปรกติ
=IF(A1=1,20,IF(A1=2,19,IF(A1=3,18,IF(A1=4,17,IF(A1=5,16,IF(A1=6,15,IF(A1=7,14,IF(A1=8,11)))))))+IF(A1=8,11,IF(A1=9,12,IF(A1=10,11,IF(A1=11,10,IF(A1=12,9,IF(A1=13,8,IF(A1=14,7)))))))+IF(A1=15,6,IF(A1=16,5,IF(A1=17,4,IF(A1=18,3,IF(A1=19,2,IF(A1=20,1,IF(A1=21,-1))))))))
ส่วนอันนี้เพิ่มเงื่อนไข
=IF(A1<=20,IF(A1=1,20,IF(A1=2,19,IF(A1=3,18,IF(A1=4,17,IF(A1=5,16,IF(A1=6,15,IF(A1=7,14)))))))+IF(A1=8,11,IF(A1=9,12,IF(A1=10,11,IF(A1=11,10,IF(A1=12,9,IF(A1=13,8,IF(A1=14,7)))))))+IF(A1=15,6,IF(A1=16,5,IF(A1=17,4,IF(A1=18,3,IF(A1=19,2,IF(A1=20,1,IF(A1=20,1))))))),A1)

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Thu Mar 31, 2011 8:38 pm
by kmb
Nakorn wrote:ผลลัพท์มันไม่ตรงครับ (เป็นที่เงื่อนไขของเวลาหรือเปล่าครับ)
=IF(A9<8/24,8/24,IF(A9<=8.25/24,A9,IF(A9<=8.5/24,8.5/24,IF(A9<=9/24,9/24,IF(A9<=9.5/24,9.5/24,IF(A9<=10/24,10/24,IF(A9<=10.5/24,10.5/24,IF(A9<=11/24,11/24,A9))))))))+IF(A9<=11.5/24,11.5/24,A9)
ผลลัพท์ = 22:31 ซึ่งน่าจะได้ = 11:30
จาก http://snasui.blogspot.com/2008/11/if-7.html
เทียบกับเงื่อนไข =If(A1=1,True)+0 จึงไม่ควรใส่ค่าในกรณีที่เป็น False ดังนั้นส่วนที่เป็นสีแดงจึงไม่ควรมีครับ :D

ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Fri Apr 01, 2011 9:32 am
by Nakorn
ลองใช้ไปแล้วครับ แต่กรณีของเวลา มันให้ซ้อนได้แค่ 2 ชั้นครับ ถ้าต่อไปชั้นที่ 3 หรือ ฯลฯ มันจะอ่านชั้นสุดท้าย แต่ไม่อ่านก่อนหน้าครับ

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Fri Apr 01, 2011 12:21 pm
by kmb
Nakorn wrote:ผลลัพท์มันไม่ตรงครับ (เป็นที่เงื่อนไขของเวลาหรือเปล่าครับ)
=IF(A9<8/24,8/24,IF(A9<=8.25/24,A9,IF(A9<=8.5/24,8.5/24,IF(A9<=9/24,9/24,IF(A9<=9.5/24,9.5/24,IF(A9<=10/24,10/24,IF(A9<=10.5/24,10.5/24,IF(A9<=11/24,11/24,A9))))))))+IF(A9<=11.5/24,11.5/24,A9)
ผลลัพท์ = 22:31 ซึ่งน่าจะได้ = 11:30
:mrgreen: ผมลองทำตัวอย่างสำหรับกรณีเวลาโดยเลียนแบบจากข้างบน แต่เปลี่ยนเงื่อนไขเพื่อทดสอบตามไฟล์แนบ ซึ่งลองต่อกัน 24 เงื่อนไขตามนี้
=IF(FLOOR(A1,1/24)=1/24,1/24,IF(FLOOR(A1,1/24)=2/24,2/24,IF(FLOOR(A1,1/24)=3/24,3/24,IF(FLOOR(A1,1/24)=4/24,4/24,IF(FLOOR(A1,1/24)=5/24,5/24,IF(FLOOR(A1,1/24)=6/24,6/24,IF(FLOOR(A1,1/24)=7/24,7/24)))))))+IF(FLOOR(A1,1/24)=8/24,8/24,IF(FLOOR(A1,1/24)=9/24,9/24,IF(FLOOR(A1,1/24)=10/24,10/24,IF(FLOOR(A1,1/24)=11/24,11/24,IF(FLOOR(A1,1/24)=12/24,12/24,IF(FLOOR(A1,1/24)=13/24,13/24,IF(FLOOR(A1,1/24)=14/24,14/24)))))))+IF(FLOOR(A1,1/24)=15/24,15/24,IF(FLOOR(A1,1/24)=16/24,16/24,IF(FLOOR(A1,1/24)=17/24,17/24,IF(FLOOR(A1,1/24)=18/24,18/24,IF(FLOOR(A1,1/24)=19/24,19/24,IF(FLOOR(A1,1/24)=20/24,20/24,IF(FLOOR(A1,1/24)=21/24,21/24)))))))+IF(FLOOR(A1,1/24)=22/24,22/24,IF(FLOOR(A1,1/24)=23/24,23/24,IF(FLOOR(A1,1/24)=24/24,24/24)))

ผลลัพธ์ก็ถูกต้องนะครับ คงต้องลองเช็คดูเงื่อนไขที่ต้องการไม่ให้เกิดกรณี If หน้าและ If หลังได้คำตอบทั้งคู่ครับ :D

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Fri Apr 01, 2011 4:04 pm
by Nakorn
มันเป็นอย่างนี้ครับ
<8:00 = 8:00
<=8:15 = 8:15
<=8:30 = 8:30
<=9:00 = 9:00
<=9:30 = 9:30
<=10:00 = 10:00 .......<=17:00 = 17:00
ลองใส่ในสูตรของคุณ...ผลเหมื่อนเดิมครับ
จริงๆแล้วอยากได้ผลลัพท์ตามไฟล์แนบครับ

Re: ขอความช่วยเหลือเรื่องการใช้ if เกิน7ชั้นไม่ได้

Posted: Fri Apr 01, 2011 4:58 pm
by snasui
เพื่อไม่ให้สับสนกับเงื่อนไข ผมใช้ Lookup ค่ามาแสดงตรง In ( Column B) สำหรับ Out ก็ทำขึ้นมาอีกชุดก็ได้แล้วค่อยนำ Out มาหัก In เพื่อหาเวลาทำงานและ OT ดูไฟล์แนบประกอบครับ