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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
happinessshutter
Member
Posts: 4 Joined: Wed Mar 22, 2017 1:34 pm
#1
Post
by happinessshutter » Tue Apr 04, 2017 3:08 pm
สวัสดีครับ
ขอสอบถามแนวทางการใช้งาน Function Excel เกี่ยวกับการแก้ไขปัญหาดังนี้ครับ
การ Lookup ข้อมูลที่ซ้ำกัน และดึงค่าของข้อมูลที่ซ้ำกันมาแสดงต่อเนื่องกันใน 1 Cell ต้องทำอย่างไรครับ (ตัวอย่างตามเอกสารแนบ)
มีข้อมูลอยู่ทั้งหมด 2 ชีท
ชีทที่ 1 ชื่อ HandHeld (เป็นข้อมูลที่ได้จากเครื่องอ่าน Barcode เวลาตรวจนับสินค้า) ประกอบไปด้วย Column : Location Shelf Barcode balance ซึ่ง Barcode เป็นตัวแทนสินค้า 1 ชนิดต่อ 1 Barcode ใน 1 Location หรือ 1 shelf นั้น อาจมีการวางสินค้า มากกว่า 1 Barcode
ตัวอย่างข้อมูล
Location Shelf Barcode balance
C1 C1 2081000074527 32
C1 C1 2081000075852 36
F1 F1 2081000074534 50
C1 C1 2081000075791 23
A1 A1 2081000074527 8
C1 C1 2081000074527 32
D1 D1 2081000075852 36
S1 S1 2081000074527 50
C1 C1 2081000075791 23
C1 C1 2081000075784 8
ชีทที่ 2 ชื่อ Stock เป็นข้อมูลที่ได้จาก Stock ประกอบไปได้ด้วย Column : Barcode Price Stock_Qty
ตัวอย่างข้อมูล
Barcode Price Stock_Qty
8851919580044 44.86 28
8851919580020 44.86 6
8851919590128 28.04 17
8851919590111 28.04 2
สิ่งที่ต้องการให้แสดงผลคือ ในชีท Stock ให้เพิ่ม Column : Location List
โดยทำการ Lookup ไปยัง Sheet HandHeld อ้างอิงจาก Barcode sheet Stock
และให้นำค่าของ Location Shelf และ Balance ในชีทของ Handheld กลับมา และเรียงข้อมูลต่อกันไปเรื่อยๆ ดังนี้ครับ
Location: C1 Shelf: C1 Balance: 20, Location: B3 Shelf: B3 Balance: 5, Location: A1
ตัวอย่าง
Barcode Price Stock_Qty Location List
8851919580044 44.86 28 Location: C1 Shelf: C1 Balance: 20, Location: B3 Shelf: B3 Balance: 5, Location: A1 Shelf: A1 Balance: 2
8851919580020 44.86 6 Location: A1 Shelf: A1 Balance: 5, Location: B3 Shelf: B3 Balance: 10
8851919590128 28.04 17 Location: D8 Shelf: D8 Balance: 5, Location: B6 Shelf: B6 Balance: 17, Location: D11 Shelf: D11 Balance: 2
ขอบคุณครับ
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 » Tue Apr 04, 2017 8:27 pm
ตัวอย่างสูตรครับ
ที่ชีต HandHeld
เซลล์ E1 คีย์คำว่า Lookup เพื่อเป็นหัวคอลัมน์
เซลล์ E2 คีย์สูตร
=IFERROR(LOOKUP(2,1/(C$1:C1=C2),E$1:E1)&" "&$A$1&":"&A2&" "&$B$1&":"&B2&" "&$D$1&":"&D2,$A$1&":"&A2&" "&$B$1&":"&B2&" "&$D$1&":"&D2)
Enter > Copy ลงด้านล่าง
ที่ชีต Stock
เซลล์ D2 คีย์สูตร
=IFERROR(LOOKUP(2,1/(HandHeld!$C$2:$C$1923=A2),HandHeld!$E$2:$E$1923),"")
Enter > Copy ลงด้านล่าง
happinessshutter
Member
Posts: 4 Joined: Wed Mar 22, 2017 1:34 pm
#3
Post
by happinessshutter » Wed Apr 05, 2017 7:36 am
ขอบคุณมากครับ ใช้ได้แล้ว....
พอจะอธิบาย วิธีการคิดสักนิดได้หรือเปล่าครับ ผมจะได้เอาไปปรับใช้ ผมนั่งคิดอยู่ 3 วัน ไม่ได้สักที
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 » Thu Apr 06, 2017 12:05 am
เป็นการประยุกต์ใช้ Lookup หาค่าสุดท้ายมาแสดง การจะเข้าใจสูตรนี้ต้องเข้าใจ Lookup เพื่อหาค่าสุดท้ายเสียก่อน ศึกษาได้จาก Link นี้ครับ
wordpress/last-cell-that-not-blank/
สำหรับปัญหานี้เป็นการ Lookup ค่าปัจจุบันกับพื้นที่ที่อยู่ด้านบนหาก Lookup แล้วพบก็นำข้อมูลที่เกี่ยวข้องมาแสดง โดยจะนำค่าปัจจุบันไปต่อท้ายผลลัพธ์ที่ได้