: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

สอบถามความเร็วในการทำงานระหว่างสูตร index+match / Vlookup

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Xcelvba
Silver
Silver
Posts: 604
Joined: Thu Feb 03, 2022 9:04 am
Excel Ver: 2019

สอบถามความเร็วในการทำงานระหว่างสูตร index+match / Vlookup

#1

Post by Xcelvba »

หาข้อมูลจาก Database 2000 row แล้วดึงข้อมูลข้ามไฟล์ สูตรไหนทำงานได้เร็วกว่ากัน (ไม่หนักเครื่อง)

1.Workbook "Database" มีข้อมูล 2000 row 15 Column

2.Workbook " NewSheet" มี 2500 row ต้องการดึงข้อมูลจาก Workbook "Database"
ระหว่าง ใช้สูตร Index+Match ทั้ง 2500 row
กับ Vlookup 2500 row

อันไหนประมาณผลได้เร็วกว่ากันครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31177
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามความเร็วในการทำงานระหว่างสูตร index+match / Vlookup

#2

Post by snasui »

:D เขียน Vlookup และ Index + Match ไว้อย่างไร กรุณาโพสต์มาด้วยครับ

ปกติ Index กับ Match จะมีความเร็วมากกว่า Vlookup ครับ
Xcelvba
Silver
Silver
Posts: 604
Joined: Thu Feb 03, 2022 9:04 am
Excel Ver: 2019

Re: สอบถามความเร็วในการทำงานระหว่างสูตร index+match / Vlookup

#3

Post by Xcelvba »

snasui wrote: Tue Mar 22, 2022 6:36 pm :D เขียน Vlookup และ Index + Match ไว้อย่างไร กรุณาโพสต์มาด้วยครับ

ปกติ Index กับ Match จะมีความเร็วมากกว่า Vlookup ครับ
ใน database_test ตรงหัวข้อ row 1 ข้อมูลจริงจะมีมากกว่านี้ครับ แล้วมีข้อมูล 2000 rows

ส่วน testsheet ดึงหลายๆข้อมูลจาก Workbook Database_test มากกว่าตัวอย่างครับ มีหลาย column มากกว่าเช่นกัน แต่สูตรที่ใส่ก็คือที่แนบไปครับ =INDEX(Database_test.xlsx!$B:$B,MATCH(D2,Database_test.xlsx!$A:$A,0)) ประมาณนี้ทุก column เลยครับ
ถ้าแบบ vlookup เขียนแบบนี้ครับ =VLOOKUP(D2,Database_test.xlsx!$A:$J,2)

แล้วดึงข้อมูลมากกว่า 2500 rows ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31177
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามความเร็วในการทำงานระหว่างสูตร index+match / Vlookup

#4

Post by snasui »

Xcelvba wrote: Wed Mar 23, 2022 8:54 am ...MATCH(D2,Database_test.xlsx!$A:$A,0)
:D Match แบบนี้ช้าครับ

ข้อมูลมีเท่าไรหรือน่าจะมีเท่าไรให้เผื่อไปเท่านั้น ไม่ควรคลุมทั้งคอลัมน์
Xcelvba wrote: Wed Mar 23, 2022 8:54 am =VLOOKUP(D2,Database_test.xlsx!$A:$J,2)
Vlookup แบบนี้เร็วเพราะละส่วนสุดท้ายเอาไว้ แต่การละส่วนสุดท้ายเอาไว้จะเป็นการหาค่าแบบใกล้เคียง คือ ถ้าไม่มีตัวที่เท่ากับค่า D2 ให้นำค่าที่น้อยกว่า 1 อันดับมาแสดง ที่สำคัญคอลัมน์ A ของ Database_test.xlsx จะต้องเรียงจากน้อยไปหามากเท่านั้น กรณีไม่มีการจัดเรียงจะทำให้ Vlookup แสดงค่าผิดพลาด

การทำให้ Match เร็วแบบเดียวกับ Vlookup ก็ให้ละส่วนประกอบสุดท้ายเอาไว้ จะเป็นการค้นหาข้อมูลในลักษณะเดียวกัน และต้องเรียงข้อมูลจากน้อยไปหามากเช่นเดียวกัน
Xcelvba
Silver
Silver
Posts: 604
Joined: Thu Feb 03, 2022 9:04 am
Excel Ver: 2019

Re: สอบถามความเร็วในการทำงานระหว่างสูตร index+match / Vlookup

#5

Post by Xcelvba »

ขอบคุณครับจะลองไปปรับใช้ดูครับ
Post Reply