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
:D ลองตามนี้ครับ

ที่ 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
:lol: แก้ปัญหาการแสดงค่า #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
:D มันมีส่วนที่เหมือนกันครับ แต่ดัก #N/A ได้ไม่เท่ากัน ดังนี้

สูตรของอาจารย์ จะตอบแบบตรงประเด็น ไม่เยิ่นเย้อมาก หากไม่ถามก็จะไม่ตอบมากไป โดยสูตรของอาจารย์จะกำจัด #N/A ในกรณีที่เซลล์ในคอลัมน์ D เป็นค่าว่างเท่านั้น

ทดสอบคีย์ รหัส 101 ลงไปที่เซลล์ D8 ดูครับ หากเป็นสูตรของอาจารย์จะได้เป็น #N/A แต่หากใช้สูตรของผม ค่าที่ได้ก็จะเป็น ค่าว่าง ครับ

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

ปล. เปลี่ยนเรียกชื่อผมจาก ท่าน Bank9597 เป็น คุณ Bank9597 หรือ Bank9597 ก็พอครับ :mrgreen:

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::lol: แก้ปัญหาการแสดงค่า #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::lol: แก้ปัญหาการแสดงค่า #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))
โอ๊ว..ขอบคูณครับ พอดีผมตอบไปตามไฟล์ที่แนบมา เลยไม่ได้ตอบครอบคลุมทั้งหมด ขอบคุณไว้ ณ ที่นี้ด้วยครับ :mrgreen:

ในเมื่อตอบเรื่องการดักจับเออร์เรอร์ กรณีที่เป็น #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))
:lol: สูตรนี้หาก 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))
:lol: สูตรนี้หาก 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 ลงด้านล่าง
:tt: มาหลังดังตลอดเลยน่ะครับ อาจารย์

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))
:lol: สูตรนี้หาก 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 ลงด้านล่าง
:tt: มาหลังดังตลอดเลยน่ะครับ อาจารย์
ISNA ตรวจสอบค่าผิดพลาดชนิด #N/A เท่านั้น
ISERR ตรวจสอบค่าผิดพลาดทุกชนิด ยกเว้น #N/A
ISERROR ตรวจสอบค่าผิดพลาดทุกชนิด

ดังนั้นผมคิดว่า สูตรที่ผมแนะนำ น่าจะกินรวบครับ :lol: :lol: :lol:
=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))

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

Re: ปัญหาใน VLOOKUP

Posted: Sat Jul 07, 2012 10:32 am
by snasui
:lol: สำหรับการดัก 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))

:lol: ผู้ชนะคืออาจารย์ ysamroeng ครับ เล่นกินหมดแล้ว 8-)
อันนี้เป็นการพูดเล่นกันน่ะครับ ฟอรั่มนี้ไม่มีการแข่งขัน แต่จะพูดกันติดตลกเข้าไปด้วย อย่างไรเสียขอให้ทุกคนเข้าใจว่า นี่เป็นการพูดตลกกัน เนื่องจากว่าผู้ตอบทุกท่านนั้น สนิทกันอยู่พอสมควร ตอบคำถามอยู่ด้วยกันครับ :mrgreen:
สำหรับการดัก 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 เมื่อดักหลายตัวก็ต้องออกแรงมากเป็นธรรมดาครับ
ขอบคุณอาจารย์สำหรับความรู้ครับ (ว่าแต่เจ้าของกระทู้ตัวจริงเขาจะเข้าใจไหมหนอ... :mrgreen: )

Re: ปัญหาใน VLOOKUP

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