Page 1 of 1
ปัญหาใน VLOOKUP
Posted: Thu Jul 05, 2012 11:01 pm
by วังวู ช่ง
รบกวนท่านอาจารย์ ท่านผู้รู้ทุกท่าน ช่วยแนะนำวิธีแก้ไขการใช้สูตร VLOOKUP ที่แสดง #N/A ครับ เพราะบางคั้งจะได้เอาออกทางเคื่องปรีนเตี ความหมายคือว่า ใน Column D ที่ไม่ได้ใส่รหัด Column E ที่มีสูตร VLOOKUP ไม่สะแดง #N/A ครับ
ขอบคุณล่วงหน้าครับ
Re: ปัญหาใน VLOOKUP
Posted: Thu Jul 05, 2012 11:03 pm
by snasui

ลองตามนี้ครับ
ที่ E1 คีย์
=IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))
Enter > Copy ลงด้านล่าง
Re: ปัญหาใน VLOOKUP
Posted: Thu Jul 05, 2012 11:50 pm
by วังวู ช่ง
ขอบคุณท่าน อาจารย์ สำหรับการให้ความช่วยเหลือนี้ครับ ปัญหานี้ตกไปแล้วครับ ตรงคำถาม และความต้องกานพอดีครับ
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 12:04 am
by bank9597

แก้ปัญหาการแสดงค่า #N/A ในกรณีที่รหัสในคอลัมน์ D ไม่มีในคอลัมน์ A ครับ
ที่ E1 คีย์ =IFERROR(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0)),"") คัดลอกลงมา
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 12:16 am
by วังวู ช่ง
ขอบคุณท่าน bank9597 ครับ ได้แล้วครับ แต่ผมสังเกดไม่ออกว่า สูตรของ ท่าน อาจารย์ =IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0)) และสูตรของ ท่าน bank9597 =IFERROR(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0)),"") เป็นอันเดียว หลืไม่ เพราะใช้ตัวไหนก่อตรงคำตอบเหมือนกัน
ขอบคุณท่านมากครับ
โชกดีครับ
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 12:29 am
by bank9597

มันมีส่วนที่เหมือนกันครับ แต่ดัก #N/A ได้ไม่เท่ากัน ดังนี้
สูตรของอาจารย์ จะตอบแบบตรงประเด็น ไม่เยิ่นเย้อมาก หากไม่ถามก็จะไม่ตอบมากไป โดยสูตรของอาจารย์จะกำจัด #N/A ในกรณีที่เซลล์ในคอลัมน์ D เป็นค่าว่างเท่านั้น
ทดสอบคีย์ รหัส 101 ลงไปที่เซลล์ D8 ดูครับ หากเป็นสูตรของอาจารย์จะได้เป็น #N/A แต่หากใช้สูตรของผม ค่าที่ได้ก็จะเป็น ค่าว่าง ครับ
ที่ผมมาเสริมนี้ ไม่ใช่สูตรของอาจารย์ไม่ครอบคลุมน่ะครับ แต่เป็นเพราะ อาจารย์ไม่ตอบนอกประเด็นเท่านั้นเอง ส่วนผมแค่อยากมีส่วนร่วมในการช่วยตอบ เลยพยายามหาจุดบกพร่องที่อาจจะมีขึ้นมา พูดง่ายๆคือ อยากมีส่วนช่วยเท่านั้นเองครับ
ปล. เปลี่ยนเรียกชื่อผมจาก ท่าน Bank9597 เป็น คุณ Bank9597 หรือ Bank9597 ก็พอครับ

Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 11:41 am
by วังวู ช่ง
ขอบคุณมากครับ อย่างที่คุณ bank9597 ชี้แนะ หลื ให้คำแนะนำมานี้จะบอกได้เลียว่าเวียกของผมสามาดใช้ได้ทังสองสูตรเลียทีเดีวยครับ
ขอบคุณที่มีความรู้ และน้ำใจให้กันครับ
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 2:21 pm
by ysamroeng
bank9597 wrote:
แก้ปัญหาการแสดงค่า #N/A ในกรณีที่รหัสในคอลัมน์ D ไม่มีในคอลัมน์ A ครับ
ที่ E1 คีย์ =
IFERROR(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))
,"") คัดลอกลงมา
ขอนุญาตเพิ่มเติมครับ
เนื่องจากฟังก์ชัน IFERROR นี้ จะมีใน Excel เวอร์ชันใหม่เท่านั้น (2007 และ 2010)
ดังนั้น ต้องระวังว่า ถ้ามีการนำสูตร หรือนำไฟล์ไปใช้ร่วมกันกับ Excel 2003 หรือรุ่นก่อนหน้านั้น
สูตรนี้จะใช้งานไม่ได้นะครับ
แต่สามารถปรับไปใช้สูตรนี้ครับ ซึ่งใช้ได้กับทุกเวอร์ชั่น
=IF(
ISERROR(VLOOKUP(D1,$A$1:$B$26,2,0)
),"",VLOOKUP(D1,$A$1:$B$26,2,0))
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 3:48 pm
by bank9597
ysamroeng wrote:bank9597 wrote:
แก้ปัญหาการแสดงค่า #N/A ในกรณีที่รหัสในคอลัมน์ D ไม่มีในคอลัมน์ A ครับ
ที่ E1 คีย์ =
IFERROR(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))
,"") คัดลอกลงมา
ขอนุญาตเพิ่มเติมครับ
เนื่องจากฟังก์ชัน IFERROR นี้ จะมีใน Excel เวอร์ชันใหม่เท่านั้น (2007 และ 2010)
ดังนั้น ต้องระวังว่า ถ้ามีการนำสูตร หรือนำไฟล์ไปใช้ร่วมกันกับ Excel 2003 หรือรุ่นก่อนหน้านั้น
สูตรนี้จะใช้งานไม่ได้นะครับ
แต่สามารถปรับไปใช้สูตรนี้ครับ ซึ่งใช้ได้กับทุกเวอร์ชั่น
=IF(
ISERROR(VLOOKUP(D1,$A$1:$B$26,2,0)
),"",VLOOKUP(D1,$A$1:$B$26,2,0))
โอ๊ว..ขอบคูณครับ พอดีผมตอบไปตามไฟล์ที่แนบมา เลยไม่ได้ตอบครอบคลุมทั้งหมด ขอบคุณไว้ ณ ที่นี้ด้วยครับ
ในเมื่อตอบเรื่องการดักจับเออร์เรอร์ กรณีที่เป็น #N/A ผิดว่าน่าจะใช้แค่ ISNA ก็พอครับ
=IF(ISNA(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 7:15 pm
by snasui
bank9597 wrote:=IF(ISNA(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))

สูตรนี้หาก D1 เป็นค่า Blank จะได้ผลลัพธ์เป็น #N/A ครับ ควรปรับสูตรใหม่เป็น
=IF(OR(D1="",ISNA(VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))
Enter > Copy ลงด้านล่าง
Re: ปัญหาใน VLOOKUP
Posted: Fri Jul 06, 2012 7:47 pm
by bank9597
snasui wrote:bank9597 wrote:=IF(ISNA(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))

สูตรนี้หาก D1 เป็นค่า Blank จะได้ผลลัพธ์เป็น #N/A ครับ ควรปรับสูตรใหม่เป็น
=IF(OR(D1="",ISNA(VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))
Enter > Copy ลงด้านล่าง

มาหลังดังตลอดเลยน่ะครับ อาจารย์
Re: ปัญหาใน VLOOKUP
Posted: Sat Jul 07, 2012 12:12 am
by ysamroeng
bank9597 wrote:snasui wrote:bank9597 wrote:=IF(ISNA(IF(D1="","",VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))

สูตรนี้หาก D1 เป็นค่า Blank จะได้ผลลัพธ์เป็น #N/A ครับ ควรปรับสูตรใหม่เป็น
=IF(
OR(D1="",ISNA(VLOOKUP(D1,$A$1:$B$26,2,0))),"",VLOOKUP(D1,$A$1:$B$26,2,0))
Enter > Copy ลงด้านล่าง

มาหลังดังตลอดเลยน่ะครับ อาจารย์
ISNA ตรวจสอบค่าผิดพลาดชนิด #N/A เท่านั้น
ISERR ตรวจสอบค่าผิดพลาดทุกชนิด ยกเว้น #N/A
ISERROR ตรวจสอบค่าผิดพลาดทุกชนิด
ดังนั้นผมคิดว่า สูตรที่ผมแนะนำ น่าจะกินรวบครับ
=IF(
ISERROR(VLOOKUP(D1,$A$1:$B$26,2,0)
),"",VLOOKUP(D1,$A$1:$B$26,2,0))
Re: ปัญหาใน VLOOKUP
Posted: Sat Jul 07, 2012 9:23 am
by bank9597
ISNA ตรวจสอบค่าผิดพลาดชนิด #N/A เท่านั้น
ISERR ตรวจสอบค่าผิดพลาดทุกชนิด ยกเว้น #N/A
ISERROR ตรวจสอบค่าผิดพลาดทุกชนิด
ดังนั้นผมคิดว่า สูตรที่ผมแนะนำ น่าจะกินรวบครับ
=IF(ISERROR(VLOOKUP(D1,$A$1:$B$26,2,0)),"",VLOOKUP(D1,$A$1:$B$26,2,0))

ผู้ชนะคืออาจารย์ ysamroeng ครับ เล่นกินหมดแล้ว

Re: ปัญหาใน VLOOKUP
Posted: Sat Jul 07, 2012 10:32 am
by snasui

สำหรับการดัก Error
หากทราบว่าจะเกิด Error ชนิดใดให้ดักเฉพาะชนิดนั้นก็เพียงพอครับ สำหรับฟังก์ชั่นจำพวก Lookup ทั้งหลายจะเกิด Error เป็น #N/A เมื่อข้อมูลไม่สามารถ Match กันได้ แต่หาก
ค่าที่กำลัง Lookup เป็นค่า Error เช่นนี้ถึงจะแสดงผลลัพธ์เป็น Error ชนิดนั้น ๆ
การใช้ Iserror ครอบคลุม Error ทุกชนิดก็ต้องออกแรงเพื่อดัก Error ทุกชนิดเช่นกัน เบื้องหลังของการตรวจ Error ก็เป็น Logic
เทียบกันง่าย ๆ ให้เห็นภาพก็เหมือนกับการใช้ If เพื่อดักค่า Error ต่าง ๆ ไปทีละตัวนี่แหละครับ โดย Error แต่ละตัวก็มี Code ของมันว่า Error แบบนี้จะเป็น Error Number อะไร หากเจอ Error Number นั้น ๆ แล้วให้แสดงผลลัพธ์เป็น True เมื่อดักหลายตัวก็ต้องออกแรงมากเป็นธรรมดาครับ
Re: ปัญหาใน VLOOKUP
Posted: Sat Jul 07, 2012 10:49 am
by bank9597
bank9597 wrote:ISNA ตรวจสอบค่าผิดพลาดชนิด #N/A เท่านั้น
ISERR ตรวจสอบค่าผิดพลาดทุกชนิด ยกเว้น #N/A
ISERROR ตรวจสอบค่าผิดพลาดทุกชนิด
ดังนั้นผมคิดว่า สูตรที่ผมแนะนำ น่าจะกินรวบครับ
=IF(ISERROR(VLOOKUP(D1,$A$1:$B$26,2,0)),"",VLOOKUP(D1,$A$1:$B$26,2,0))

ผู้ชนะคืออาจารย์ ysamroeng ครับ เล่นกินหมดแล้ว

อันนี้เป็นการพูดเล่นกันน่ะครับ ฟอรั่มนี้ไม่มีการแข่งขัน แต่จะพูดกันติดตลกเข้าไปด้วย อย่างไรเสียขอให้ทุกคนเข้าใจว่า นี่เป็นการพูดตลกกัน เนื่องจากว่าผู้ตอบทุกท่านนั้น สนิทกันอยู่พอสมควร ตอบคำถามอยู่ด้วยกันครับ
สำหรับการดัก Error หากทราบว่าจะเกิด Error ชนิดในให้ดักเฉพาะชนิดนั้นก็เพียงพอครับ สำหรับฟังก์ชั่นจำพวก Lookup ทั้งหลายจะเกิด Error เป็น #N/A เมื่อข้อมูลไม่สามารถ Match กันได้ แต่หากค่าที่กำลัง Lookup เป็นค่า Error เช่นนี้ถึงจะแสดงผลลัพธ์เป็น Error ชนิดนั้น ๆ
การใช้ Iserror ครอบคลุม Error ทุกชนิดก็ต้องออกแรงเพื่อดัก Error ทุกชนิดเช่นกัน เบื้องหลังของการตรวจ Error ก็เป็น Logic เทียบกันง่าย ๆ ให้เห็นภาพก็เหมือนกับการใช้ If เพื่อดักค่า Error ต่าง ๆ ไปทีละตัวนี่แหละครับ โดย Error แต่ละตัวก็มี Code ของมันว่า Error แบบนี้จะเป็น Error Number อะไร หากเจอ Error Number นั้น ๆ แล้วให้แสดงผลลัพธ์เป็น True เมื่อดักหลายตัวก็ต้องออกแรงมากเป็นธรรมดาครับ
ขอบคุณอาจารย์สำหรับความรู้ครับ (ว่าแต่เจ้าของกระทู้ตัวจริงเขาจะเข้าใจไหมหนอ...

)
Re: ปัญหาใน VLOOKUP
Posted: Sat Jul 07, 2012 10:03 pm
by วังวู ช่ง
ขอบคุณทุกๆท่านสำหรับความรู้ครับ ส่วนเจ้าของกระทู้ความจริงแล้วเขาไหมจะเข้าใจเลียครับ แต่เป็นกานที่เรียนไปพร้อมๆกันครับ ขอบคุณมากครับ