Page 1 of 1
รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Mon Dec 01, 2014 9:01 pm
by mamacupz
จากไฟล์แนบนะค่ะที่ Sheet 2ได้ทำการเทียบ Status ที่ Sheet 1 โดยที่ต้องการไม่ให้เว้นบรรทัดเมื่อเจอ ค่า 0 เนื่องจาก ต้องการดึงค่า Status ที่เป็น 1 เท่านั้น ให้มาโชว์ แต่พอดึงมาโชว์แล้ว เมื่อเจอ Status ที่เป็น 0 ดัง Cell ที่ B3-B5 ที่ Sheet 2 ไม่ต้องการให้เว้นวรรคค่ะ ขอบคุณมากค่ะ รบกวนผู้รู้มาตอบด้วยน่ะค่ะ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Mon Dec 01, 2014 10:55 pm
by snasui

ไม่พบไฟล์แนบ ลองแนบมาใหม่อีกครั้ง โดยไฟล์แนบต้องมีขนาดไม่เกิน 300kb ครับ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Tue Dec 02, 2014 11:18 am
by mamacupz
ขอโทษทีค่ะ แนบแล้วค่ะ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Tue Dec 02, 2014 3:11 pm
by snasui

เซลล์ B2 คีย์สูตร
Code: Select all
=IFERROR(INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2)),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 11:07 am
by mamacupz
ขอบพระคุณค่ะอาจารย์
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 11:15 am
by mamacupz
อาจารย์ค่ะ พอลาก ลงแล้ว ข้อมูลไม่มานะ่ค่ะ อยากให้ข้อมูลมาตามรูปน่ะค่ะ สูตรที่อาจารย์ให้มา มันถูกเรียกออกมาซ้ำที่ Text 4 น่ะค่ะ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 11:30 am
by snasui

ให้แนบไฟล์ที่ลองทำแล้วไม่ได้ตามต้องการมาด้วยครับ
ถ้าอ่านอย่างละเอียดและทำถูกต้องตามนั้น ย่อมต้องได้คำตอบครับ

Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 12:38 pm
by mamacupz
ขอบคุณมากค่ะ แนบไฟล์แล้วค่ะ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 1:07 pm
by snasui

ตรวจสอบที่ผมระบายสีไว้ใหม่ว่าคีย์ถูกต้องตรงกับสูตรที่ผมให้ไปด้านบน

แล้วหรือไม่
ควร Copy สูตรที่ผมเขียนไปใช้เลยจะได้คีย์ไม่ผิดครับ
นี่คือสูตรที่เขียนมาครับ
=IFERROR(INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!
$A2)+1),$A2)),"")
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 3:13 pm
by mamacupz
ก็ Copy ไปแล้วน่ะค่ะ T_T ไม่เป็นไร ค่ะ ขอบคุณมากค่ะ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Wed Dec 03, 2014 3:30 pm
by snasui

เห็นความแตกต่างระหว่าง
snasui wrote: 
เซลล์ B2 คีย์สูตร
=IFERROR(INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!
$A$2)+1),$A2)),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
กับ
snasui wrote:นี่คือสูตรที่เขียนมาครับ
=IFERROR(INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A2)+1),$A2)),"")
แล้วยัง และทราบแล้วหรือไม่ว่าต้องแก้ตรงไหนครับ

Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Thu Dec 04, 2014 11:29 am
by mamacupz
ได้แล้วค่ะ ขอบพระคุร มากค่ะ อาจารย์
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Thu Dec 04, 2014 12:17 pm
by mamacupz
รบกวนอาจารย์ อธิบายสูตรด้วยน่ะค่ะ พยายามไล่สูตรดูแล้วแต่ไม่เข้าใจทั้งหมดค่ะ ในการทำงานของ Index , IF , Small เมื่อนำมาใช้ รวมกันน่ะค่ะ
Re: รบกวนสอบถามสูตรตรวจสอบค่า False แล้วให้ หาค่า True ใหม่
Posted: Thu Dec 04, 2014 12:55 pm
by snasui

การแปลสูตรให้เข้าใจได้ง่ายวิธีหนึ่งคือแปลจากนอกเข้าไปด้านใน ส่วนการแทนค่าให้แทนค่าจากในออกด้านนอกครับ
จากสูตร
=IFERROR(INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2)),"")
หมายถึงหาก INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2)) เป็นค่าผิดพลาดให้แสดงค่าว่าง
จากสูตร
INDEX(Sheet1!$C$2:$C$8,SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2))
หมายถึง จากช่วง Sheet1!$C$2:$C$8 ให้แสดงข้อมูลในลำดับที่ได้จากผลลัพธ์ของ SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2)
ซึ่งหาก SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2) ได้คำตอบเป็น 10 หมายถึงให้นำลำดับที่ 10 มาแสดง
จากสูตร
SMALL(IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1),$A2)
หมายถึงจากผลลัพธ์ของ IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1) ให้นำค่าที่น้อยที่สุดในลำดับที่เป็นค่าใน A2 มาแสดง หาก A2 เป็น 2 หมายถึง ให้นำค่าที่น้อยที่สุดในลำดับที่ 2 มาแสดง
จากสูตร
IF(Sheet1!$A$2:$A$8=1,ROW(Sheet1!$A$2:$A$8)-ROW(Sheet1!$A$2)+1)
หมายถึง หาก Sheet1!$A$2:$A$8=1 ให้แสดงค่าลำดับโดยเริ่มจากเลข 1 จะได้เป็น {1,2,3...} เป็นต้น
การแกะสูตรให้ลากเมาส์คลุมแต่ละส่วนประกอบแล้วกดแป้น F9 จะได้เห็นผลลัพธ์ซึ่งน่าจะช่วยให้ทำความเข้าใจได้ง่ายขึ้นครับ