Page 1 of 1
ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Fri Apr 08, 2011 10:55 am
by excelman
รบกวนอาจารย์ดูสูตรที่ผมคีย์หน่อยครับ หรืออาจารย์เห็นว่าควรจะเปลี่ยนเป็นสูตรใดที่กระชับ
จะดีมากเลยครับ เขียนไปงงไป
Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Fri Apr 08, 2011 12:53 pm
by joo
ลองตามนี้
ที่I5 คีย์
=IF(H5="","",INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))
กด Shift+Ctrl+Enter พร้อมกันแล้ว Copy ลงด้านล่าง

Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Fri Apr 08, 2011 1:20 pm
by godman
เยี่ยมเลยครับ คุณ Joo
Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Fri Apr 08, 2011 1:33 pm
by excelman
ขอบคุณคุณ joo มากๆนะครับ แต่ถ้าไม่รบกวนจนเกินไปผมของคำอธิบายของสูตร
=IF(H5="","",INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))
ด้วยครับ ว่าแต่ละช่วงมีความหมายว่าอย่างไร
Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Fri Apr 08, 2011 4:08 pm
by joo
=IF(H5="","",INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))
จากสูตรถ้า H5 เป็นค่าว่างก็ให้แสดงค่าว่าง ถ้าไม่ใช้ก็ให้ไปดูข้อมูลที่ระบุช่วงไว้ก่อนแล้วหาตำแหน่งที่เข้าเงื่อนไขมาแสดง โดยตำแหน่งข้อมูลที่ระบุไว้ก่อนคือ $D$1:$D$17
ตำแหน่งที่เข้าเงื่อนไขคือผลลัพธ์ของสูตร MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))
ซึ่งมีความหมายว่า ให้ตรวจสอบว่าค่า H5 อยู่ในตำแหน่งที่เท่าไรของช่วงข้อมูลที่ได้จากสูตร($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))หากตรงกันก็ให้นำข้อมูลในคอลัมภ์ D1:D7 มาแสดง

Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Fri Apr 08, 2011 11:33 pm
by kmb
joo wrote:ลองตามนี้
ที่I5 คีย์
=IF(H5="","",
INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))
กด Shift+Ctrl+Enter พร้อมกันแล้ว Copy ลงด้านล่าง


ช่วยเสริมคุณ Joo นะครับ
ตอนนี้มีการใช้ IF ดักสำหรับกรณีที่ค่าในคอลัมน์ H เป็นค่าว่างเรียบร้อยแล้ว แต่ถ้าเจอกรณีที่ค่าในคอลัมน์ H มีค่าน้อยกว่า 95 หรือน้อยกว่า 10000 จะเกิดค่า #N/A ขึ้น ผมจึงเพิ่ม IF ดักความผิดพลาดกรณีนี้ให้นะครับ ซึ่งผมกำหนดให้ผลลัพธ์สำหรับกรณีนี้มีค่าเป็น 0 สูตรจะเปลี่ยนเป็น
=IF(H5="","",IF(ISNA(
INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0))),0,
INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0))))
> Ctrl+Shift+Enter
ลองเปิดดูตามไฟล์แนบ ผมทำการเปรียบเทียบสูตรไว้ให้ในคอลัมน์ F และ G
ผมเพิ่มข้อสังเกตให้คุณ excelman อีกอย่างนะครับ ถ้าต้องการนำผลลัพธ์ที่ได้นี้ไปทำการคำนวณต่อ คงมีการเปลี่ยนค่าให้เป็นตัวเลขก่อนนะครับ เช่นเปลี่ยนค่าที่ใส่ไว้ในคอลัมน์ D ให้เป็นตัวเลข เพราะจากไฟล์แนบจะเห็นว่าที่เซลล์ E1 ผมใส่สูตร =ISNUMBER(D1) ไว้ จะเห็นว่าผลลัพธ์ได้เป็น FALSE

Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Sat Apr 09, 2011 11:44 am
by joo
ช่วยเสริมอีกนิดครับถ้าต้องการดักค่าว่างและค่า #N/A ที่ I5 ลองคีย์ตามนี้ดูครับ
=IF(ISNA(MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)),"",INDEX($D$1:$D$17,MATCH(1,IF($H5>=$A$1:$A$17,IF($H5<=$C$1:$C$17,1)),0)))
กด Shift+Ctrl+Enter พร้อมกันแล้ว Copy ลงด้านล่าง

Re: ค่าที่ต้องการไม่ตรงกับ ตารางเรท
Posted: Sat Apr 09, 2011 12:23 pm
by kmb

ถ้าแปลงค่าในคอลัมน์ D เป็นตัวเลขแล้วมีอีกหนึ่งวิธีครับ
ที่เซลล์ I5 ใส่สูตรนี้ครับ
=SUMPRODUCT(--($H5>=$A$1:$A$17),--($H5<=$C$1:$C$17),$D$1:$D$17)
copy ลงด้านล่างได้เลย
ผมทำไฟล์ตัวอย่างมาให้ โดยเพิ่มชีต Number ตามไฟล์แนบครับ
