snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
zixnutz
Member
Posts: 48 Joined: Mon Jul 11, 2016 11:41 am
#1
Post
by zixnutz » Fri Oct 13, 2017 11:23 am
ต้องการดึงค่าจาก Sheet Foam
โดยที่เรียงลำดับข้อมูล จำแนกตาม Detail แต่ละ Sheet ข้อมูล
ที่ต้องจะมีสองอย่างครับ
1 ช่อง C3 ของทุก Sheet ให้ดึงค่าจาก Sheet Foam ในช่อง C3-C20
และต้องเป็นค่าลำดับที่ 1,2,.. ของแต่ละ Detail (Sheet Foam ช่อง E3-E20)
เช่น Sheet Pic1 ให้ดึงค่า ลำดับที่ 1 ของ Detail = Pic ใน Sheet Foam
Sheet Pic2 ให้ดึงค่า ลำดับที่ 2 ของ Detail = Pic ใน Sheet Foam
Sheet Nopic1 ให้ดึงค่า ลำดับที่ 1 ของ Detail = Nopic ใน Sheet Foam
Sheet Nopic2 ให้ดึงค่า ลำดับที่ 2 ของ Detail = Nopic ใน Sheet Foam
2 ช่อง C6-C17 ต้องการดึงค่าจาก Sheet Foam ช่อง D3-D20
โดยให้ดึงเฉพาะค่าของข้อมูลช่อง C3 (ข้อ1)
โดยตัวอย่างค่าที่ต้องการ จะกรอกในช่องสีเหลืองทุก Sheet ครับ
ขออภัยด้วยครับ ถ้าอธิบายไม่ค่อยเข้าใจครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Fri Oct 13, 2017 11:29 am
ในแต่ละชีตที่ต้องการการคำตอบ ช่อง C3 และ F3 ดึงมาได้เพียงค่าเดียวเท่านั้นครับ ยกเว้นจะเขียนด้วย VBA เพื่อกำหนด Validation ส่วน C6 เป็นต้นไปสามารถดึงมาได้เท่ากับจำนวนข้อมูลที่มีครับ
zixnutz
Member
Posts: 48 Joined: Mon Jul 11, 2016 11:41 am
#3
Post
by zixnutz » Fri Oct 13, 2017 11:40 am
ดึงช่อง C3 อย่างเดียวก็ได้ครับ พอมีวิธีไหมครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#4
Post
by snasui » Fri Oct 13, 2017 11:43 am
ผมคิดว่าคุณ zixnutz เข้าใจคลาดเคลื่อน
ผมหมายถึงว่าในเซลล์ C3 และ F3 สามารถดึงมาได้เซลล์ละค่า ไม่ทราบว่าที่ต้องการเป็นการดึงมาเพียงค่าเดียวเท่านั้นใช่หรือไม่ ถ้าไม่ใช่กรุณาอธิบายเพิ่มอย่างละเอียดครับ
zixnutz
Member
Posts: 48 Joined: Mon Jul 11, 2016 11:41 am
#5
Post
by zixnutz » Fri Oct 13, 2017 11:53 am
อ๋อ ผมพอเข้าใจแล้วครับ
ผมสื่อสารผิดพลาดเอง จริงๆแล้ว ช่อง F3 ผมกะจะ Vlookup จาก Database หลังจากได้ค่า C3 ที่จำแนกแล้วครับ
ขออภัยอีกครั้งครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Fri Oct 13, 2017 12:31 pm
ตัวอย่างสูตรครับ
ที่ชีต Foam
เซลล์ H2:J2 คีย์หัวคอลัมน์ Customer, Detail และ Sheet ตามลำดับ
เซลล์ H3 คีย์สูตร
=IFERROR(INDEX($B$3:$B$20,SMALL(IF(FREQUENCY(MATCH($B$3:$B$20,$B$3:$B$20,0),ROW($B$3:$B$20)-ROW($B$3)+1),ROW($B$3:$B$20)-ROW($B$3)+1),ROWS(H$3:H3))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
เซลล์ I3 คีย์สูตร
=IFERROR(INDEX($E$3:$E$20,SMALL(IF(FREQUENCY(MATCH($B$3:$B$20,$B$3:$B$20,0),ROW($B$3:$B$20)-ROW($B$3)+1),ROW($B$3:$B$20)-ROW($B$3)+1),ROWS(I$3:I3))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
เซลล์ J3 คีย์สูตร
=IF(I3="","",I3&COUNTIF(I$3:I3,I3))
Enter > Copy ลงด้านล่าง
ชีต Pic1
เซลล์ C3 คีย์สูตร
=IFERROR(INDEX(Foam!$H$3:$H$100,MATCH(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31),Foam!$J$3:$J$100,0)),"")
Enter > Copy ไปยังเซลล์เดียวกันของชีตอื่น ๆ
zixnutz
Member
Posts: 48 Joined: Mon Jul 11, 2016 11:41 am
#7
Post
by zixnutz » Fri Oct 13, 2017 1:37 pm
ขอรบกวนอีกสักนิดครับ ช่อง C6-C17 ต้องใช้สูตรไหนหรอครับ ผมคิดไม่ออกจริงๆ
ส่วนสูตรด้านบนใช้ได้ตามที่ต้องการเลยครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Fri Oct 13, 2017 1:42 pm
ตัวอย่างสูตรที่ C6 ครับ
=IFERROR(INDEX(Foam!$C$3:$C$20,SMALL(IF(Foam!$B$3:$B$20=$C$3,ROW(Foam!$C$3:$C$20)-ROW(Foam!$C$3)+1),ROWS(C$6:C6))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
zixnutz
Member
Posts: 48 Joined: Mon Jul 11, 2016 11:41 am
#9
Post
by zixnutz » Fri Oct 13, 2017 2:15 pm
ขอบพระคุณมากๆครับ
ได้แล้วครับ