Page 1 of 1

การ Match ข้อมูลระหว่าง 2 ชีท

Posted: Mon Feb 11, 2013 11:29 pm
by niwat2811
รบกวนสอบถามท่านผู้รู้เกี่ยวกับเรื่องการ Match ข้อมูลระหว่าง 2 ชีท
โดยที่ Sheet1 เป็นที่เก็บข้อมูล Sheet2 เป็นชีทที่ต้องการให้แสดงผล
โดยการเปรียบเทียบข้อมูลระหว่าง Column B ทั้ง 2 ชีท ถ้าข้อมูลเหมือนกัน
ให้นำข้อมูลจาก Sheet1 Column C และ Column D มาวางที่ Sheet2
แต่ถ้าไม่มีข้อมูลก็ให้เว้นว่างไว้ คำตอบที่ต้องการอยู่ที่ Sheet2 ครับ
Code อยู่ใน Module1 ชื่อว่า DataMatch ครับ

Re: การ Match ข้อมูลระหว่าง 2 ชีท

Posted: Tue Feb 12, 2013 7:24 am
by snasui
:D ลองดูตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Sub DataMatch()
    Dim LR As Long, i As Long, ws1 As Worksheet, ws2 As Worksheet
    Dim MatchVal As Long
    Application.ScreenUpdating = False
    Set ws1 = Sheets("Sheet1")
    Set ws2 = Sheets("Sheet2")
    With Sheets("Sheet2")
        LR = ws2.Range("B" & Rows.Count).End(xlUp).Row
        For i = 2 To LR
            If IsNumeric(Application.Match(.Range("B" & i).Value, ws1.Columns("B"), 0)) Then
                MatchVal = Application.Match(.Range("B" & i).Value, ws1.Columns("B"), 0)
                .Range("C" & i).Resize(1, 2).Value = ws1.Range("C" & MatchVal).Resize(1, 2).Value
            End If
        Next i
    End With
End Sub

Re: การ Match ข้อมูลระหว่าง 2 ชีท

Posted: Tue Feb 12, 2013 9:17 am
by niwat2811
แจ้งผลครับ Code ใช้งานได้ตรงตามความต้องการครับ
แต่สงสัยว่า MatchVal ตรงนี้มันคืออะไรครับ :mrgreen: :mrgreen:

Re: การ Match ข้อมูลระหว่าง 2 ชีท

Posted: Tue Feb 12, 2013 9:32 am
by snasui
:D คือผลลัพธ์ของ Statement นี้ครับ Application.Match(.Range("B" & i).Value, ws1.Columns("B"), 0) ซึ่งเทียบได้กับผลของฟังก์ชั่น Match ธรรมดาใน Excel ครับ