การปรับปรุงฟังก์ชัน VLOOKUP

เนื้อหา

วิธีการแพ็คร่มชูชีพอย่างถูกต้อง?

ประโยชน์. ฉบับที่ 2 แก้ไขแล้ว

สมมติว่าเรามีตารางคำสั่งต่อไปนี้:

การปรับปรุงฟังก์ชัน VLOOKUP

เราต้องรู้ เช่น จำนวนคำสั่งซื้อที่ 10256 ของ Ivanov หรือเมื่อ Petrov ดำเนินการข้อตกลงที่สองของเขาเมื่อใด ฟังก์ชัน VLOOKUP ในตัวสามารถค้นหาได้เฉพาะนามสกุลที่เกิดขึ้นครั้งแรกในตารางเท่านั้นและจะไม่ช่วยอะไรเรา คำถามเช่น “ใครเป็นผู้จัดการคำสั่งหมายเลข XNUMX?” จะยังคงไม่ได้รับคำตอบ tk VLOOKUP ในตัวไม่สามารถคืนค่าจากคอลัมน์ทางด้านซ้ายของการค้นหาได้

ปัญหาทั้งสองนี้ได้รับการแก้ไขในคราวเดียว เรามาเขียนฟังก์ชันของเราเองที่ไม่เพียงแต่จะมองหาฟังก์ชันแรกเท่านั้น แต่ในกรณีทั่วไปสำหรับการเกิดขึ้นที่ N นอกจากนี้ยังสามารถค้นหาและสร้างผลลัพธ์ในคอลัมน์ใดก็ได้ เรียกมันว่า VLOOKUP2 

เปิด Visual Basic Editor โดยกด ALT+F11 หรือโดยการเลือกจากเมนู บริการ – Macro – Visual Basic Editor (เครื่องมือ — มาโคร — โปรแกรมแก้ไข Visual Basic), ใส่โมดูลใหม่ (เมนู แทรก – โมดูล) และคัดลอกข้อความของฟังก์ชันนี้ที่นั่น:

ฟังก์ชัน VLOOKUP2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Select Case TypeName(Table) Case "Range" For i = 1 To Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue แล้ว iCount = iCount + 1 End If If iCount = N แล้ว VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 ถึง UBound (ตาราง) หาก Table (i, SearchColumnNum) = SearchValue จากนั้น iCount = iCount + 1 หาก iCount = N จากนั้น VLOOKUP2 = ตาราง (i, ResultColumnNum) ออกสำหรับ End ถ้าถัดไป i End เลือก End Function  

ปิด Visual Basic Editor และกลับไปที่ Excel

ตอนนี้ผ่าน แทรก – ฟังก์ชัน (แทรก — ฟังก์ชัน) ในหมวดหมู่ กำหนดโดยผู้ใช้ (กำหนดโดยผู้ใช้) คุณสามารถค้นหาฟังก์ชัน VLOOKUP2 ของเราและใช้งานได้ ไวยากรณ์ของฟังก์ชันมีดังนี้:

=VLOOKUP2(ตาราง; number_of_column_where_we มองหา; lookup_value; N; number_of_column_from_to_get_value)

ตอนนี้ข้อจำกัดของฟังก์ชันมาตรฐานไม่ใช่อุปสรรคสำหรับเรา:

การปรับปรุงฟังก์ชัน VLOOKUP

PS ขอขอบคุณ The_Prist เป็นพิเศษสำหรับการปรับปรุงฟังก์ชันเพื่อให้สามารถค้นหาในหนังสือปิดได้

  • การค้นหาและแทนที่ข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่งโดยใช้ฟังก์ชัน VLOOKUP
  • “ซ้าย VLOOKUP” โดยใช้ฟังก์ชัน INDEX และ MATCH

 

เขียนความเห็น