Page 1 of 2
ช่วยเขียนสูตร if ให้ทีครับ
Posted: Fri Sep 19, 2014 2:18 pm
by seeper
อาจารย์วันนี้มีเรื่องให้ช่วยอีกแล้วครับ อิอิ
เรื่อง if ครับ ผมต้องการ sum ตาม
ถ้า E5 เป็นช่องว่างให้ F5 เป็นช่องว่างแต่ถ้ามีค่าถึงแค่ E7 ให้ F5= sum(C5:C10)ถ้ามีค่าถึง E8 ให้F5= sum(C5:C15) ถ้ามีค่าถึง E9 ให้F5= sum( C5:C20)
ถ้า E6 เป็นช่องว่างให้ F6 เป็นช่องว่างแต่ถ้ามีค่าถึงแค่ E6 ให้ F6= sum(C5:C10)ถ้ามีค่าถึง E8 ให้F6= sum(C5:C15) ถ้ามีค่าถึง E9 ให้F6= sum( C5:C20)
ถ้า E7 เป็นช่องว่างให้ F7 เป็นช่องว่างแต่ถ้ามีค่าถึงแค่ E7 ให้ F7= sum(C5:C10)ถ้ามีค่าถึง E8 ให้F7= sum(C5:C15) ถ้ามีค่าถึง E9 ให้F7= sum( C5:C20)
เป็นอย่างนี้ไม่ทราบว่า เขียนสูตรอย่างไรดีครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Fri Sep 19, 2014 6:12 pm
by snasui
ลองยกตัวอย่างคำตอบที่ถูกต้องมาด้วยจะได้เข้าใจตรงกันครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sat Sep 20, 2014 3:04 pm
by seeper
ส่งไฟล์แนบาให้ครับเป็นคำตอบของ สามช่วงแต่สามช่วงนี้ต้องรวมอยู่ในช่อง F ทั้งหมด
คือถ้าข้อมูลที่ E5 ไม่มีข้อมูลให้คำตอบช่อง F5 เป็นช่องว่างถ้าข้อมูลมีถึง E7 ให้คำตอบช่อง F5 คือผลรวม C5 ถึง C10 ถ้ามีข้อมูลถึง E8 ให้คำตอบช่อง F5 คือผลรวมของ C5 ถึง C15 ถ้ามีข้อมูลถึง E9 ให้คำตอบช่อง F5 คือผลรวม C5 ถึง C20 ครับ
ฝากด้วยครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sat Sep 20, 2014 4:54 pm
by snasui
ตัวอย่างการเขียนสูตรที่ F5
Code: Select all
=IF(E5="","",IF(COUNT($E$5:$E$100)<=3,SUM($C$5:$C$10),SUM(OFFSET($C$5,0,0,5*(COUNT($E$5:$E$100)-3+1)+1))))
Enter > Copy ลงด้านล่าง
สำหรับท่านที่เข้าใจสูตร ค่า -3+1 สามารถเปลี่ยนเป็นเลข 2 ได้ ที่ผมไม่เปลี่ยนเพราะจะเข้าใจได้ง่ายกว่า โจทย์นี้เป็นการนับว่ามีค่าในคอลัมน์ E เกิน 3 ค่าหรือไม่ หากไม่เกินก็คำนวณอีกแบบ หากเกินให้ถือว่า 3 ค่าแรกเป็น 1 ค่า จึงเป็นที่มาของ -3+1
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sat Sep 20, 2014 5:09 pm
by seeper
ขอบคุณครับ จะลองเอาไปใช้ดู ^^
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sat Sep 20, 2014 5:14 pm
by snasui
แถมอีกสูตร
F5 คีย์
=IF(E5="","",SUM(OFFSET($C$5,0,0,MAX(6,(5*(COUNT($E$5:$E$100)-3+1)+1)))))
Enter > Copy ลงด้านล่าง
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sat Sep 20, 2014 11:45 pm
by seeper
อาจารย์ครับใน max 6 คืออะไร 5 คืออะไรครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sat Sep 20, 2014 11:48 pm
by snasui
เลข 5 คือเพิ่มครั้งละ 5 บรรทัด ส่วน 6 หมายถึงกรณีที่มีไม่เกิน 3 รายการให้รวมแค่ 6 รายการแรก
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sun Sep 21, 2014 12:11 am
by seeper
ขอบคุณครับ แล้วถ้าเราต้องการกำหนดลงไปโดยแน่นอนทำได้ไหมครับแบบ ใช้ if ซ้อน if ได้ไหมครับคือช่วงจริงๆมันไม่เท่ากันแบบตัวอย่างอะครับ
ถ้า E5 เป็นช่องว่างให้ F5 เป็นช่องว่างแต่ถ้ามีค่าถึงแค่ E7 ให้ F5= sum(C5:C10)ถ้ามีค่าถึง E8 ให้F5= sum(C5:C15) ถ้ามีค่าถึง E9 ให้F5= sum( C5:C20)
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Sun Sep 21, 2014 6:29 am
by snasui
ที่เขียนมาใหม่ก็คือโจทย์เดิม คุณได้ลองนำสูตรที่ผมเขียนให้ไปใช้แล้วยังครับ
ไม่ควรจะถามต่อเนื่องกันไปโดยไม่ได้ลองและยังไม่เห็นว่าสูตรนั้นทำงานอย่างไร ถ้าลองแล้วสูตรนั้นติดปัญหาอะไรครับ
seeper wrote:คือช่วงจริงๆมันไม่เท่ากันแบบตัวอย่างอะครับ
คำว่า "อะครับ" ให้ใช้คำว่า "ครับ" แทน อ่านกฎการใช้บอร์ดข้อ 1 ด้านบนด้วยครับ
การใช้ If ได้หรือไม่นั้น ขึ้นอยู่กับลักษณะข้อมูลที่ต้องการ ฟังก์ชั่น If ไม่ได้แก้ปัญหาได้ทุกกรณี นอกจากนี้การทำตัวอย่างควรเป็นตัวแทนของข้อมูลจริงครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Mon Sep 22, 2014 8:06 am
by seeper
ก่อนอื่นต้องขอโทษที่ผลิดพลาดเรื่องการใช้คำพูดด้วยครับและผมได้ทำการแก้ไขตัวอย่างแล้วส่งให้อาจารย์ช่วยทำสูตรให้อีกรอบครับ ตอนแรกคิดว่าใช้ if จะช่วยแก้ปัญหาได้หมดเหมือนที่อาจารย์บอกเลยครับ แก้ไม่ออกจริงๆ
ถ้า E9 เป็นช่องว่างให้ F9 เป็นช่องว่างแต่ถ้ามีค่าถึงแค่ E8 ให้ F9= sum(C6:C11)ถ้ามีค่าถึง E9 ให้F9= sum(C6:C17) ถ้ามีค่าถึง E10 ให้F9= sum( C6:C25) ถ้ามีค่าถึง E11 ให้F9= sum( C6:C35) ถ้ามีค่าถึง E12 ให้F9= sum( C6:C47)ถ้ามีค่าถึง E13 ให้F9= sum( C6:C61) ถ้ามีค่าถึง E14 ให้F9= sum( C6:C77) ถ้ามีค่าถึง E15 ให้F9= sum( C6:C95)
อันนี้เป็นสิ่งที่ผมต้องการให้ออกมาครับ ฝากอาจารย์ช่วยผมด้วยครับขอบคุณครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Mon Sep 22, 2014 8:35 am
by snasui
ลองตามนี้ครับ
- เซลล์ D6:D13 คีย์ C11, C11, C11, C17, C25, C35, C47, C61 ตามลำดับ
- เซลล์ F6 คีย์สูตร
=IF(OR(D6="",E6=""),"",SUM(INDIRECT("C6:"&D6)))
Enter > Copy ลงด้านล่าง
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 10:14 am
by seeper
เรียน อาจารย์ครับ ข้างบนยังไม่ได้ครับ ผมขออนุญาติอธิบายหลักการอีกทีครับ
หลักการคือ F6 ให้ทำการเช็คถ้า E6 เป็นช่องว่างแล้วให้ F6 ใส่ช่องว่างถ้ามีค่าให้ทำการหาค่า E สุดท้ายถ้า E สุดท้ายเท่ากับ E15 ให้ F6 เป็นค่ารวมของ C6 ถึง C95 ถ้า E สุดท้ายเท่ากับ E14 ให้F6 เป็นค่ารวมของ C6 ถึง C77 ถ้า E สุดท้ายเท่ากับ E13 ให้F6 เป็นค่ารวมของ C6 ถึง C61 ถ้า E สุดท้ายเท่ากับ E12ให้F6 เป็นค่ารวมของ C6 ถึง C47 ถ้า E สุดท้ายเท่ากับ E11 ให้F6 เป็นค่ารวมของ C6 ถึง C35 ถ้า E สุดท้ายเท่ากับ E10 ให้F6 เป็นค่ารวมของ C6 ถึง C25 ถ้า E สุดท้ายเท่ากับ E9ให้F6 เป็นค่ารวมของ C6 ถึง C17 ถ้า E สุดท้ายเท่ากับ E8 ให้ F6 เป็นค่ารวมของ C6 ถึง C11 ครับ
ฝากอาจารย์ช่วยทำสูตรให้ผมด้วยครับ ขอบคุณครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 10:21 am
by snasui
ที่บอกว่าไม่ได้หมายถึงอธิบายมาไม่ถูกต้องหรือสูตรผิด
กรณีที่สูตรผิดให้แนบไฟล์มาพร้อมทำตัวอย่างคำตอบที่ถูกต้องมาด้วย
กรณีที่อธิบายมาไม่ถูกต้อง ให้แนบไฟล์ตัวอย่าง แสดงตัวอย่างคำตอบที่ถูกต้องมาด้วย อธิบายมาสักสองสามตัวอย่างว่าค่านั้นได้มาโดยมีวิธีคิดอย่างไรครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 11:05 am
by seeper
สูตรของอาจารย์ใช้ได้ครับ อาจเกิดจากผมอธิบายไม่ดี ผมจึงแนบไฟล์มาใหม่ครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 11:24 am
by snasui
ช่วยแนบไฟล์ที่ทำตามตัวอย่างที่ผมตอบไปแล้ว อธิบายมาสักสองสามตัวอย่างว่าแต่ละค่าผิดพลาดหรือไม่ได้ตามคำตอบที่ต้องการอย่างไรมาด้วยเพื่อจะได้ทำความเข้าใจร่วมกับไฟล์ล่าสุดครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 11:39 am
by seeper
จากสูตร
เซลล์ D6:D13 คีย์ C11, C11, C11, C17, C25, C35, C47, C61 ตามลำดับ
เซลล์ F6 คีย์สูตร
=IF(OR(D6="",E6=""),"",SUM(INDIRECT("C6:"&D6)))
Enter > Copy ลงด้านล่าง
ครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 11:45 am
by snasui
ลองตามนี้ครับ
F6 ปรับสูตรเป็น
=IF(OR(D6="",E6=""),"",SUM(INDIRECT("C6:"&LOOKUP(CHAR(255),D:D))))
Enter > Copy ลงด้านล่าง
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 1:57 pm
by seeper
ติดปัญหาอีกนิดครับงั้นพวก C11,C11,C11,C17,C25,C47,C61,C77,C95 ผมต้องใส่เป็นสูตรเอาเพื่อให้ไม่มีค่าถ้าค่าไปไม่ถึง เช่น C95 จะไม่มีค่าถ้าที่ช่อง E 15 ไม่มี หลังจากทำแล้วค่าที่ได้ที่ช่อง F เป็น #REF! ครับแก้ไงดีครับ
Re: ช่วยเขียนสูตร if ให้ทีครับ
Posted: Tue Sep 23, 2014 2:28 pm
by snasui
ตัวอย่างการปรับสูตรครับ
=IF(OR(D6="",E6=""),"",SUMIF(OFFSET(INDIRECT("C6:"&LOOKUP(CHAR(255),D:D)),0,-1),E6,INDIRECT("C6:"&LOOKUP(CHAR(255),D:D))))