Page 1 of 1

พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Mon Nov 07, 2016 7:37 pm
by kio2002
สวัสดีสมาชิกทุกท่านครับ
ผมต้องการ พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดงที่sheet1ครับ
ตอนนี้ผมทำให้มันดึงมาแค่ชีทเดียวคือ sheet2 แต่อนาคตผมจะสร้างชีทมาประมาณ 10 หรือ 15 ชีท ฯลฯ

เซลล์ที่ต้องการพิมพ์รหัสสินค้าคือเซลล์ A1 ของsheet1
และต้องการ
ดึงชื่อสินค้าจาก sheet2 และ sheet3 ที่เซลล์ G2
ดึงราคาสินค้าจาก sheet2 และ sheet3 ที่เซลล์ h2
ตอนนี้ผมทำสูตรให้มันดึงได้แค่ชีท2 ชีทเดียว
รบกวนสมาชิกช่วยแนะนำและปรับสูตรให้หน่อยครับ ลองหลายวิธีแล้ว ไม่ได้ซักที

=IF(ISBLANK(A2),"",(VLOOKUP(A2,Sheet2!$F$2:Sheet2!$G$6,2,FALSE))) ดึงชื่อสินค้ามาแสดง
=IF(ISBLANK(A2),"",(VLOOKUP(A2,Sheet2!$F$2:Sheet2!$H$6,3,FALSE))) ดึงราคาสินค้ามาแสดง

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Mon Nov 07, 2016 8:01 pm
by snasui
:D ดูตัวอย่างการทำ Vlookup จากหลายชีตจากกระทู้นี้ครับ viewtopic.php?t=6613

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Tue Nov 08, 2016 8:59 am
by kio2002
ผมลองทำแล้วครับ มันขึ้น #N/A
รบกวนตรวจสอบให้อีกทีครับ ไม่รู้ว่าผมทำผิดขั้นตอนตรงไหนรึเปล่า
ชื่อ sheet2 เป็นชีทที่สร้างขึ้นมาตามที่อาจารย์แนะนำ

เพิ่มชีทขึ้นมา 1 ชีท
เซลล์ A2:A3 กรอกชีทชีททั้งหมดเริ่มจาก อาหาร ถึง ขนม
ไปที่ Name Box คีย์ SheetAll แล้ว Enter (ตรงนี้ผมคลุม A2:A3 แล้วค่อยพิมพ์ SheetALL)

นำสูตรไปปรับ แล้วแต่ยังขึ้น #N/A

Code: Select all

=VLOOKUP($A2,INDIRECT("'"&INDEX(SheetALL,MATCH(1,COUNTIF(INDIRECT("'"&SheetALL&"'!B1:B1000"),$A2),0))&"'!B2:Z1000"),MATCH(B$1,อาหาร!$B$2:$Z$2,0))
รบกวนอาจารย์ช่วยตรวจสอบ หรือยกตัวอย่างมาให้หน่อยครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Tue Nov 08, 2016 11:08 am
by DhitiBank
ลองปรับสูตรเป็นแบบนี้ครับ

B2
=VLOOKUP($A2,INDIRECT("'"&INDEX(SheetALL,MATCH(1,COUNTIF(INDIRECT("'"&SheetALL&"'!A1:A1000"),$A2),0))&"'!A2:Z1000"),MATCH(B$1,อาหาร!$A$1:$Z$1,0))

การกดรับสูตรต้องกด Ctrl+Shift ค้างแล้ว Enter ครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Tue Nov 08, 2016 7:42 pm
by kio2002
ตอนนี้ทำได้แล้วครับ ขอบคุณทุกๆคนนะครับ สูตรนี้ยากมากๆเลย หากติดตรงไหนจะมาสอบถามเพิ่มครับ

ว่าแต่จะขอสอบถามเพื่อทำความเข้าใจหน่อยครับ

=VLOOKUP($A2,INDIRECT("'"&INDEX(SheetALL,MATCH(1,COUNTIF(INDIRECT("'"&SheetALL&"'!A1:A1000"),$A2),0))&"'!A2:Z1000"),MATCH(B$1,อาหาร!$A$1:$Z$1,0))
เลข1 สีน้ำเงินนี้หมายถึงตรงไหนครับ

=VLOOKUP($A2,INDIRECT("'"&INDEX(SheetALL,MATCH(1,COUNTIF(INDIRECT("'"&SheetALL&"'!A1:A1000"),$A2),0))&"'!A2:Z1000"),MATCH(B$1,อาหาร!$A$1:$Z$1,0))
อาหาร สีเขียวนี้ทำไมต้องใส่ชื่อsheetนี้ สามารถใส่ชื่อsheetอื่นได้ไหมครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Tue Nov 08, 2016 7:48 pm
by snasui
:D อ้างอิงชีตอื่นก็ได้แต่ต้องมีค่าเหมือนกับ อาหาร!$A$1:$Z$1 ทุกประการครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Mon Nov 14, 2016 9:21 pm
by kio2002
ผมเอาไปใช้แล้ว แต่ติดปัญหาตรงรหัสสินค้าที่ผมกำหนดขึ้นมา
ในชีท อาหาร ซึ่งมีรายการค่อนข้างเยอะ ผมกำหนดรหัสสินค้า food1 ในรายการแรก และ food2, food3 ลงไปเรื่อยๆ จนถึง food11, food12
พอผมพิมพ์ รหัสสินค้า food11 และfood12 สูตรมันไม่ดึงชื่อสินค้าของรหัส food11 และfood12 แต่กลับไปดึงชื่อสินค้าของรหัสfood1มาแสดง
ชื่อสินค้าของรหัส food11 คือ ผัดพริกแกง
ชื่อสินค้าของรหัส food12 คือ ส้มตำ
ถ้าตามที่ผมเข้าใจ สูตรจะตรวจจับรหัสสินค้าเฉพาะตัวท้าย เลยทำให้ดึงชื่อสินค้าผิดมาแสดง
พอจะมีแนวทางให้สูตรมันอ่านเลขท้ายๆได้2หลักหรือ3หลักขึ้นไปไหมครับ
ขอบคุณครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Mon Nov 14, 2016 10:16 pm
by snasui
:D ตัวอย่างการปรับสูตรครับ

เซลล์ B2 คีย์

=VLOOKUP($A2,INDIRECT("'"&INDEX(SheetALL,MATCH(1,COUNTIF(INDIRECT("'"&SheetALL&"'!A1:A1000"),$A2),0))&"'!A2:Z1000"),MATCH(B$1,อาหาร!$A$1:$Z$1,0),0)

Ctrl+Shift+Enter > Copy ลงด้านล่าง

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Tue Nov 15, 2016 8:32 pm
by kio2002
ใช้ได้แล้วครับอาจารย์ หากติดตรงไหนจะมาสอบถามเพิ่มนะครับ ขอบคุณมากๆเลยครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Fri Nov 18, 2016 5:38 pm
by kio2002
ถ้าต้องการเปลี่ยน #N/A เป็น ค่าวาง จะปรับสูตรได้อย่างไรครับ
ขอบคุณครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Fri Nov 18, 2016 6:38 pm
by snasui
:D ใช้ Iferror เข้าไปครอบได้ครับ เช่น

=Iferror(OldFormula,"")

OldFormula คือสูตร Vlookup เดิมตามด้านบน :roll: ครับ

Re: พิมพ์รหัสสินค้า แล้วดึงชื่อสินค้า และราคาจากหลายๆชีทมาแสดง

Posted: Sat Nov 19, 2016 8:42 am
by kio2002
ได้แล้วครับ ขอบคุณครับ