:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

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

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#1

Post 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))) ดึงราคาสินค้ามาแสดง
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#2

Post by snasui »

:D ดูตัวอย่างการทำ Vlookup จากหลายชีตจากกระทู้นี้ครับ viewtopic.php?t=6613
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#3

Post 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))
รบกวนอาจารย์ช่วยตรวจสอบ หรือยกตัวอย่างมาให้หน่อยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

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

#4

Post 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 ครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#5

Post 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อื่นได้ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#6

Post by snasui »

:D อ้างอิงชีตอื่นก็ได้แต่ต้องมีค่าเหมือนกับ อาหาร!$A$1:$Z$1 ทุกประการครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#7

Post by kio2002 »

ผมเอาไปใช้แล้ว แต่ติดปัญหาตรงรหัสสินค้าที่ผมกำหนดขึ้นมา
ในชีท อาหาร ซึ่งมีรายการค่อนข้างเยอะ ผมกำหนดรหัสสินค้า food1 ในรายการแรก และ food2, food3 ลงไปเรื่อยๆ จนถึง food11, food12
พอผมพิมพ์ รหัสสินค้า food11 และfood12 สูตรมันไม่ดึงชื่อสินค้าของรหัส food11 และfood12 แต่กลับไปดึงชื่อสินค้าของรหัสfood1มาแสดง
ชื่อสินค้าของรหัส food11 คือ ผัดพริกแกง
ชื่อสินค้าของรหัส food12 คือ ส้มตำ
ถ้าตามที่ผมเข้าใจ สูตรจะตรวจจับรหัสสินค้าเฉพาะตัวท้าย เลยทำให้ดึงชื่อสินค้าผิดมาแสดง
พอจะมีแนวทางให้สูตรมันอ่านเลขท้ายๆได้2หลักหรือ3หลักขึ้นไปไหมครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#8

Post 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 ลงด้านล่าง
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#9

Post by kio2002 »

ใช้ได้แล้วครับอาจารย์ หากติดตรงไหนจะมาสอบถามเพิ่มนะครับ ขอบคุณมากๆเลยครับ
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

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

#10

Post by kio2002 »

ถ้าต้องการเปลี่ยน #N/A เป็น ค่าวาง จะปรับสูตรได้อย่างไรครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#11

Post by snasui »

:D ใช้ Iferror เข้าไปครอบได้ครับ เช่น

=Iferror(OldFormula,"")

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