Note: The other languages of the website are Google-translated. Back to English

วิธีการ vlookup คืนค่าหลายค่าในเซลล์เดียวใน Excel

โดยปกติใน Excel เมื่อคุณใช้ฟังก์ชัน VLOOKUP หากมีค่าหลายค่าที่ตรงกับเกณฑ์คุณก็จะได้ค่าแรก แต่บางครั้งคุณต้องการส่งคืนค่าที่สอดคล้องกันทั้งหมดที่ตรงตามเกณฑ์ลงในเซลล์เดียวตามภาพหน้าจอต่อไปนี้คุณจะแก้ไขได้อย่างไร

Vlookup เพื่อคืนค่าหลายค่าลงในเซลล์เดียวด้วยฟังก์ชัน TEXTJOIN (Excel 2019 และ Office 365)

Vlookup เพื่อส่งคืนค่าหลายค่าในเซลล์เดียวด้วย User Defined Function

Vlookup เพื่อส่งคืนค่าหลายค่าในเซลล์เดียวด้วยคุณสมบัติที่มีประโยชน์


Vlookup เพื่อคืนค่าหลายค่าลงในเซลล์เดียวด้วยฟังก์ชัน TEXTJOIN (Excel 2019 และ Office 365)

หากคุณมี Excel เวอร์ชันที่สูงกว่าเช่น Excel 2019 และ Office 365 มีฟังก์ชันใหม่ - ข้อความเข้าร่วมด้วยฟังก์ชันที่ทรงพลังนี้คุณสามารถ vlookup และคืนค่าที่ตรงกันทั้งหมดลงในเซลล์เดียวได้อย่างรวดเร็ว

Vlookup เพื่อส่งคืนค่าที่ตรงกันทั้งหมดลงในเซลล์เดียว

กรุณาใช้สูตรด้านล่างในเซลล์ว่างที่คุณต้องการใส่ผลลัพธ์จากนั้นกด Ctrl + Shift + Enter คีย์เข้าด้วยกันเพื่อให้ได้ผลลัพธ์แรกจากนั้นลากที่จับเติมลงไปที่เซลล์ที่คุณต้องการใช้สูตรนี้และคุณจะได้รับค่าที่เกี่ยวข้องทั้งหมดตามภาพด้านล่างที่แสดง:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

หมายเหตุ ในสูตรข้างต้น A2: A11 คือช่วงการค้นหามีข้อมูลการค้นหา E2 คือค่าการค้นหา C2: C11 คือช่วงข้อมูลที่คุณต้องการส่งคืนค่าที่ตรงกัน ","เป็นตัวคั่นในการแยกหลายระเบียน

Vlookup เพื่อส่งคืนค่าที่ตรงกันทั้งหมดโดยไม่ซ้ำกันในเซลล์เดียว

หากคุณต้องการส่งคืนค่าที่ตรงกันทั้งหมดตามข้อมูลการค้นหาโดยไม่ซ้ำกันสูตรด้านล่างอาจช่วยคุณได้

กรุณาคัดลอกและวางสูตรต่อไปนี้ลงในเซลล์ว่างจากนั้นกด Ctrl + Shift + Enter คีย์เข้าด้วยกันเพื่อให้ได้ผลลัพธ์แรกจากนั้นคัดลอกสูตรนี้เพื่อเติมเซลล์อื่น ๆ และคุณจะได้รับค่าที่เกี่ยวข้องทั้งหมดโดยไม่ต้องมีค่าที่ไม่ชัดเจนดังภาพด้านล่างที่แสดง:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

หมายเหตุ ในสูตรข้างต้น A2: A11 คือช่วงการค้นหามีข้อมูลการค้นหา E2 คือค่าการค้นหา C2: C11 คือช่วงข้อมูลที่คุณต้องการส่งคืนค่าที่ตรงกัน ","เป็นตัวคั่นในการแยกหลายระเบียน

Vlookup เพื่อส่งคืนค่าหลายค่าในเซลล์เดียวด้วย User Defined Function

ฟังก์ชัน TEXTJOIN ข้างต้นพร้อมใช้งานสำหรับ Excel 2019 และ Office 365 เท่านั้นหากคุณมี Excel เวอร์ชันอื่น ๆ ที่ต่ำกว่าคุณควรใช้รหัสบางอย่างเพื่อทำงานนี้ให้เสร็จ

Vlookup เพื่อส่งคืนค่าที่ตรงกันทั้งหมดลงในเซลล์เดียว

1. กด ALT + F11 และจะเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: Vlookup เพื่อส่งคืนค่าหลายค่าในเซลล์เดียว

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. จากนั้นบันทึกและปิดรหัสนี้กลับไปที่แผ่นงานและป้อนสูตรนี้: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") ลงในเซลล์ว่างที่คุณต้องการวางผลลัพธ์จากนั้นลากที่จับเติมลงเพื่อรับค่าที่เกี่ยวข้องทั้งหมดในเซลล์เดียวที่คุณต้องการดูภาพหน้าจอ:

หมายเหตุ ในสูตรข้างต้น A2: A11 คือช่วงการค้นหามีข้อมูลการค้นหา E2 คือค่าการค้นหา C2: C11 คือช่วงข้อมูลที่คุณต้องการส่งคืนค่าที่ตรงกัน ","เป็นตัวคั่นในการแยกหลายระเบียน

Vlookup เพื่อส่งคืนค่าที่ตรงกันทั้งหมดโดยไม่ซ้ำกันในเซลล์เดียว

หากต้องการละเว้นรายการที่ซ้ำกันในค่าการจับคู่ที่ส่งคืนโปรดดำเนินการกับรหัสด้านล่าง

1. กด Alt + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: Vlookup และส่งคืนค่าที่ตรงกันที่ไม่ซ้ำกันหลายค่าในเซลล์เดียว

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. หลังจากใส่รหัสแล้วคลิก เครื่องมือ > อ้างอิง ในการเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน จากนั้นในหน้าต่างที่โผล่ออกมา เอกสารอ้างอิง - VBAProject กล่องโต้ตอบตรวจสอบ รันไทม์การเขียนสคริปต์ของ Microsoft ตัวเลือกใน อ้างอิงที่มีอยู่ กล่องรายการดูภาพหน้าจอ:

4. จากนั้นคลิก OK เพื่อปิดกล่องโต้ตอบบันทึกและปิดหน้าต่างรหัสกลับไปที่แผ่นงานและป้อนสูตรนี้: =MultipleLookupNoRept(E2,$A$2:$C$11,3) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values, see screenshot:

หมายเหตุ ในสูตรข้างต้น A2: C11 คือช่วงข้อมูลที่คุณต้องการใช้ E2 คือค่าการค้นหาตัวเลข 3 คือหมายเลขคอลัมน์ที่มีค่าที่ส่งคืน

Vlookup เพื่อส่งคืนค่าหลายค่าในเซลล์เดียวด้วยคุณสมบัติที่มีประโยชน์

 หากคุณมีไฟล์ Kutools สำหรับ Excelเดียวกันกับที่ แถวรวมขั้นสูง คุณสามารถรวมหรือรวมแถวได้อย่างรวดเร็วโดยยึดตามค่าเดียวกันและทำการคำนวณบางอย่างตามที่คุณต้องการ

หมายเหตุที่จะใช้สิ่งนี้ แถวรวมขั้นสูงประการแรกคุณควรดาวน์โหลดไฟล์ Kutools สำหรับ Excelแล้วใช้คุณสมบัตินี้อย่างรวดเร็วและง่ายดาย

หลังจากการติดตั้ง Kutools สำหรับ Excelโปรดดำเนินการดังนี้:

1. เลือกช่วงข้อมูลที่คุณต้องการรวมข้อมูลหนึ่งคอลัมน์โดยยึดตามคอลัมน์อื่น

2. คลิก Kutools > ผสานและแยก > แถวรวมขั้นสูงดูภาพหน้าจอ:

3. ในการโผล่ออกมา แถวรวมขั้นสูง กล่องโต้ตอบ:

  • คลิกชื่อคอลัมน์หลักที่จะรวมกันโดยยึดตามแล้วคลิก คีย์หลัก
  • จากนั้นคลิกคอลัมน์อื่นที่คุณต้องการรวมข้อมูลตามคอลัมน์หลักแล้วคลิก รวมกัน เพื่อเลือกตัวคั่นหนึ่งตัวสำหรับแยกข้อมูลที่รวมกัน

4. จากนั้นคลิก OK และคุณจะได้รับผลลัพธ์ดังต่อไปนี้:

ดาวน์โหลดและทดลองใช้ Kutools for Excel ฟรีทันที!


บทความที่เกี่ยวข้องเพิ่มเติม:

  • ฟังก์ชัน VLOOKUP พร้อมตัวอย่างพื้นฐานและขั้นสูง
  • ใน Excel ฟังก์ชัน VLOOKUP เป็นฟังก์ชันที่มีประสิทธิภาพสำหรับผู้ใช้ Excel ส่วนใหญ่ซึ่งใช้เพื่อค้นหาค่าทางด้านซ้ายสุดของช่วงข้อมูลและส่งคืนค่าที่ตรงกันในแถวเดียวกันจากคอลัมน์ที่คุณระบุ บทช่วยสอนนี้กำลังพูดถึงวิธีการใช้ฟังก์ชัน VLOOKUP พร้อมตัวอย่างขั้นพื้นฐานและขั้นสูงใน Excel
  • ส่งคืนค่าที่ตรงกันหลายค่าตามเกณฑ์หนึ่งหรือหลายเกณฑ์
  • โดยปกติการค้นหาค่าเฉพาะและส่งคืนรายการที่ตรงกันนั้นเป็นเรื่องง่ายสำหรับพวกเราส่วนใหญ่โดยใช้ฟังก์ชัน VLOOKUP แต่คุณเคยพยายามส่งคืนค่าที่ตรงกันหลายค่าตามเกณฑ์อย่างน้อยหนึ่งเกณฑ์หรือไม่? ในบทความนี้ฉันจะแนะนำสูตรสำหรับแก้งานที่ซับซ้อนนี้ใน Excel
  • Vlookup และส่งคืนค่าหลายค่าในแนวตั้ง
  • โดยปกติคุณสามารถใช้ฟังก์ชัน Vlookup เพื่อรับค่าแรกที่สอดคล้องกัน แต่บางครั้งคุณต้องการส่งคืนระเบียนที่ตรงกันทั้งหมดตามเกณฑ์เฉพาะ บทความนี้ฉันจะพูดถึงวิธี vlookup และส่งคืนค่าที่ตรงกันทั้งหมดในแนวตั้งแนวนอนหรือในเซลล์เดียว
  • Vlookup และส่งคืนค่าหลายค่าจากรายการแบบหล่นลง
  • ใน Excel คุณจะ vlookup และส่งคืนค่าที่เกี่ยวข้องหลายค่าจากรายการแบบเลื่อนลงได้อย่างไรซึ่งหมายความว่าเมื่อคุณเลือกหนึ่งรายการจากรายการแบบหล่นลงค่าสัมพัทธ์ทั้งหมดจะแสดงพร้อมกัน บทความนี้ผมจะแนะนำวิธีการแก้ปัญหาทีละขั้นตอน

เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (43)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะปรับสูตรนี้เพื่อแยกแต่ละค่าที่ส่งคืน แต่ ", " รวมทั้งคืนค่าเฉพาะค่าที่ไม่ซ้ำได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับรหัส!!

สำหรับไวด์การ์ด วิธีการหนึ่งคือการใช้INSTR

คุณสามารถแทนที่ [ ถ้า rng = pValue แล้ว ] ด้วย [ InStr(1, rng.Value, pValue) จากนั้น ] และถ้าคุณไม่ต้องการให้เป็นแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ให้ใช้ [ InStr(1, rng.Value, pValue, vbTextCompare) จากนั้น ]
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับรหัส VBA ด้านบน คุณช่วยบอกวิธีทำให้ผลลัพธ์เข้าสู่บรรทัดใหม่ในเซลล์ เช่น Alt-Enter 300 400 1000 1300 ได้ไหม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับการแบ่งปันรหัสข้างต้น ฉันใช้สิ่งนี้มาหลายเดือนแล้ว แต่วันนี้ดูเหมือนจะไม่ทำงาน ฉันได้รับเซลล์ว่างแทนที่จะเป็นข้อผิดพลาดปกติเมื่อมีข้อมูลที่จะส่งคืน ความคิดใด?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
งานเด็ด..ได้ของตรงตามต้องการ!!! รักมัน !!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันประทับใจมากกับงานนี้และมันง่ายมากที่จะสร้างมันขึ้นมาเพื่อใช้ฟังก์ชันนี้ อย่างไรก็ตาม ฉันต้องการการสนับสนุนเพิ่มเติม ของฉัน ? คือฉันจะเลือกตัวเลขจากเซลล์ที่มีหลายเซลล์ในอาร์เรย์ vlookup ของฉันได้อย่างไร เช่น ถ้าเซลล์ A1 = 100, A2 = 350, A3 = 69 C1 = 100; 1222; 12133 C2 = 69; 222 D1 = Apple D2 = banana ดังนั้นฉันจะเลือก 100 จากคอลัมน์อาร์เรย์ตาราง C ของฉันได้อย่างไรเพื่อรับการติดต่อ D1 = apple โปรดทราบว่าฉันมีตัวเลข 7 หลักในค่าการค้นหาและอาร์เรย์ตารางที่คั่นด้วย ";" ฉันจะขอบคุณมากถ้าคุณสามารถแก้ปัญหานี้และช่วยฉันในการประหยัดเวลาได้มาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับรหัส VBA ฉันได้สิ่งที่ฉันต้องการแล้ว! ฉันแก้ไขเฉพาะรหัส " rng.Offset(0, pIndex - 1) " เป็น " rng.Offset(0, pIndex - 2) " MYVLOOKUP สามารถค้นหาจากขวาไปซ้ายได้เช่นกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่คือสิ่งที่ฉันต้องการจริงๆ และไม่ได้คิดที่จะสร้าง UDF ของตัวเอง อย่างไรก็ตาม มันจะไม่ทำงานเหมือนกับ VLOOKUP หากสตริงที่คุณกำลังค้นหาไม่ได้อยู่ในคอลัมน์แรกเท่านั้น สตริงดังกล่าวอาจให้ข้อมูลที่อยู่นอกช่วงเดิมที่ส่งผ่าน ชื่อ หมายเลข ชื่ออื่น คอลัมน์ที่ไม่อยู่ในช่วงที่ส่งผ่าน Jay 1 Jay 1 Jay 2 Jay 2 Chris 3 Chris 3 Jorge 4 Jorge 4 Jay 5 Jay 5 Jorge 6 Jorge 6 หากตารางด้านบนเป็นเซลล์ A1:D7 ถ้าคุณผ่านเฉพาะ A1:C7 ของคุณ ฟังก์ชัน "MYVLOOKUP" ส่งคืนค่า 1 1 2 2 5 5 เมื่อคุณคาดว่าจะคืนค่า 1 2 5 การเปลี่ยนแปลงด้านล่างช่วยแก้ไขปัญหา: ฟังก์ชัน MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long) 'Update 20150310 'Updated 6 /9/16 Jay Coltrain 'Dim rng As Range Dim xResult As String xResult = "" Dim Rows As Long, i As Long Rows = pWorkRng.Rows.Count For i = 1 To Rows If pWorkRng.Cells(i, 1) ค่า = pValue จากนั้น xResult = xResult & " " & pWorkRng.Cells(i, 1).Offset(0, pIndex - 1) End If Next i 'สำหรับแต่ละ rng ใน pWorkRng' ถ้า rng = pValue แล้ว ' xResult = xResult & " " & rng.Offset(0, pIndex - 1) ' End ถ้า 'ถัดไป MYVLOOKUP = xResult End Function
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช้งานได้ดี แต่ฉันต้องการความช่วยเหลือเกี่ยวกับคำสั่งเพื่อลบรายการที่ซ้ำกันออกจากผลลัพธ์ อย่างจริงจังแม้ว่างานที่ดี
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช้งานได้ดี แต่ฉันยังคงต้องการความช่วยเหลือเกี่ยวกับฟังก์ชันคำสั่งเพื่อลบรายการที่ซ้ำกันออกจากผลลัพธ์
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
แจ้งให้ฉันทราบเมื่อมีความคิดเห็นติดตาม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
กลับไม่มีอะไร! หลังจากใช้ MYLOOKUP ไม่ได้ผลแต่ว่างเปล่า
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี มันใช้งานได้ดี สิ่งที่ฉันต้องการจะทำคือปรับโค้ดเพื่อแยกผลลัพธ์ค่าคุณด้วย "///" หรือเครื่องหมายอื่น ๆ (ด้วยเหตุผลทางเทคนิค ฉันไม่ต้องการเพียงตัวคั่นอักขระตัวเดียว) นอกจากนี้ ฉันสังเกตเห็นว่าสูตรนี้ใช้ไม่ได้กับไวด์การ์ด ฉันรู้ว่าฉันถามมากเกินไป แต่มันทำไม่ได้เพราะ vlookup สามารถทำงานได้เมื่อฉันค้นหา =myvlookup("*"&E6&"*",$A$2:$C$15,2) ซึ่งมันน่าจะทำ/สามารถทำได้ ความช่วยเหลือใด ๆ ?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หัวขึ้น ฉันพบวิธีหาตัวคั่นในผลลัพธ์นั้น เป็นพื้นฐาน แต่ฉันคิดออก xResult = xResult & "///" & rng.Offset(0, pIndex - 1) แม้ว่าสิ่งสุดท้ายและเป็นที่ต้องการมากที่สุดคือทำให้สามารถทำงานกับอักขระตัวแทนในเกณฑ์การค้นหาได้ ขอขอบคุณอีกครั้งสำหรับโซลูชันที่สวยงามและยอดเยี่ยมนี้ มีประโยชน์มาก ตอนนี้แค่อยากให้มาโครทำงานและติดตั้งใน excel ของฉันอย่างถาวร ไม่ว่าฉันกำลังทำอะไรอยู่ เพื่อให้ฉันสามารถใช้งานได้เมื่อจำเป็น และไวลด์การ์ด! ขอบคุณมาก. สัญลักษณ์ตัวแทนเป็นเพียงสิ่งเดียวที่ต้องทำ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ในการรับบันทึกเฉพาะ คุณสามารถใช้ด้านล่าง: (แก้ไขโดยอ้างอิงรหัสผู้ใช้อื่น) ฟังก์ชัน MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long) 'Update 20150310 'Updated 6/9/16 Jay Coltrain 'Dim rng As Range Dim xResult As String xResult = "" Dim Rows As Long, i As Long Rows = pWorkRng.Rows.Count For i = 1 To Rows ถ้า pWorkRng.Cells(i, 1).Value = pValue แล้ว xResult = xResult & "," & pWorkRng.Cells(i, 1).Offset(0, pIndex - 1) End If Next i Dim varSection As Variant Dim sTemp As String Dim sDelimiter As String sDelimiter = "," For Each varSection In Split(xResult, sDelimiter) ถ้า InStr(1, sDelimiter & sTemp & sDelimiter, sDelimiter & varSection & sDelimiter, vbTextCompare) = 0 จากนั้น sTemp = sTemp & sDelimiter & varSection End If Next varSection MYVLOOKUP = Mid (sDelimiter, Len()
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้ทำงานได้อย่างสมบูรณ์ แต่ฉันต้องใช้เวลาพอสมควรเพื่อให้ Function ทำงานได้อย่างถูกต้องภายใน 20 แท็บ สเปรดชีต 50k+ บรรทัดของฉัน ตอนนี้คำถามใหญ่คือวิธีการใช้สตริงที่มีตัวคั่นนั้นแล้วใช้แต่ละรายการเป็นดัชนี/การจับคู่ (ไม่ได้แต่งงานกับดัชนี/การจับคู่ แต่ดูเหมือนเร็วกว่า) ในชุดข้อมูลอื่นโดยคืนค่า SUM ของผลตอบแทนทั้งหมดไว้ในเซลล์เดียว . สถานการณ์ของฉันคือฉันมีคำสั่งซื้อเดียวที่มีใบแจ้งหนี้หลายใบ ฟังก์ชัน MYVLOOKUP ของคุณทำงานได้อย่างยอดเยี่ยมในการรายงานกลับใบแจ้งหนี้ทั้งหมดในเซลล์เดียว สิ่งที่ฉันต้องการจะทำตอนนี้คือนำผลตอบแทนที่ต่อกันแต่ละส่วนมารวมกับเซลล์ที่รายงาน หมุนผ่านอาร์เรย์นั้นและจำนวนเงินที่ชำระของใบแจ้งหนี้แต่ละใบทั้งหมดกลับเข้าไปในเซลล์สูตร ฉันขอขอบคุณสำหรับความช่วยเหลือที่คุณสามารถนำเสนอได้ และขอขอบคุณสำหรับฟังก์ชัน MYVLOOKUP!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ทำอะไรก็ได้รับ #คุณค่าเสมอ! กลับมาแทนผลลัพธ์ vlookup ทำงานได้ดี ดังนั้นข้อมูลจึงใช้งานได้ ทำตามขั้นตอนการเปิดใช้งานมาโครแล้ว ฉันยังรวมทุกอย่างไว้ในแผ่นเดียว ความคิดใด ๆ ??
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มาโครที่ดีมีประโยชน์ แต่จำเป็นต้องรู้ว่าสามารถแก้ไขเพื่อตรวจสอบ 2 เกณฑ์ได้หรือไม่ & มีใครพบว่าใช้ไวด์การ์ดได้หรือไม่ ความช่วยเหลือใด ๆ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีแก้ไขผลลัพธ์หรือไม่ ดังนั้นแทนที่จะแสดง 1000 1000 -1000 มันจะแสดงเช่น 1,000/1,000/(1,000) หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฟังก์ชันที่ยอดเยี่ยม อย่างไรก็ตาม การเพิ่มจำนวนถึง 100,000 รายการพิสูจน์ให้เห็นถึงแล็ปท็อปที่แย่ของฉันเพียงเล็กน้อย จะต้องปล่อยให้มันทำงานข้ามคืน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันวิเศษมาก ขอบคุณ!
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ