: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

แจกฟรีไฟล์แสดงตัวอย่างการ Vlookup แล้วนำมาแสดงมากกว่า 1 ค่า

ฟอรัมสำหรับแจกจ่ายแบ่งปันไฟล์ รวมทั้งแหล่งความรู้ต่าง ๆ เกี่ยวกับ Excel
User avatar
snasui
Site Admin
Site Admin
Posts: 30746
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

แจกฟรีไฟล์แสดงตัวอย่างการ Vlookup แล้วนำมาแสดงมากกว่า 1 ค่า

#1

Post by snasui »

:D แจกฟรีตัวอย่างสูตรการค้นหาแล้วแสดงทุกรายการที่พบ

จากไฟล์แนบหากเลือกค่าใน A2 ของชีต Results แล้วสูตรจะดึงข้อมูลจากชีต Database มาแสดงที่ C2:E4 เฉพาะรายการที่คอลัมน์ B ของชีต Database ตรงกับค่าใน A2 เท่านั้น มีความหมายเช่นเดียวกันกับ Vlookup แล้วนำมาแสดงมากกว่า 1 ค่า ดูตัวอย่างตามภาพประกอบ
ListingDataToMultipleColumns.png
ListingDataToMultipleColumns.png (42.87 KiB) Viewed 4470 times
สูตรในเซลล์ C2 คีย์

กรณีเป็น Excel Version 2007+

=IFERROR(INDEX(INDEX(Database!$A$2:$E$17,0,MATCH($B2,Database!$A$1:$E$1,0)),AGGREGATE(15,6,(ROW(Database!$C$2:$C$17)-ROW(Database!$C$2)+1)/(Database!$B$2:$B$17=$A$2),COLUMNS($C3:C3))),"")

Enter > Copy ไปด้านขวาและลงด้านล่ง

กรณีเป็น Excel Version 2003-

=IF(COLUMNS($C3:C3)>COUNTIF(Database!$B$2:$B$17,$A$2),"",INDEX(INDEX(Database!$A$2:$E$17,0,MATCH($B2,Database!$A$1:$E$1,0)),SMALL(IF(Database!$B$2:$B$17=$A$2,ROW(Database!$C$2:$C$17)-ROW(Database!$C$2)+1),COLUMNS($C3:C3))))

Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง

ดูตัวอย่างและคำอธิบายสูตรเพิ่มเติมได้ที่ wordpress/vlookup-multiple-values/
Attachments
ListingDataToMultipleColumns.xlsm
(18.14 KiB) Downloaded 213 times