การแยกข้อมูลคอลัมน์เดียวเป็น 2 คอลัมน์

? ข้อมูลที่อยู่ในรูปแบบรายงานและวางข้อมูลอยู่ในคอลัมน์เดียว เมื่อจะนำไปใช้งานต่อจะมีความยุ่งยากลำบาก เพื่อให้สะดวกต่อการใช้งานควรแยกออกมาเป็น 2 คอลัมน์หรือมากกว่า ขึ้นอยู่กับลักษณะของข้อมูล เพื่อที่จะทำให้เป็น Database เสียก่อน เพื่อความสะดวกหากต้องการนำไปใช้ทำรายงานในรูปแบบที่ต้องการต่อไป

Video ด้านล่างนี้แสดงการนำข้อมูลที่ถูกจัดเก็บเป็นรูปแบบรายงานแต่อยู่ในคอลัมน์เดียว โดย Product จะเยื้องซ้าย ส่วนข้อมูล Quantity ที่เป็นตัวเลขจะเยื้องขวา เราจะนำข้อมูลดังกล่าวแยกออกมาเป็น 2 คอลัมน์ด้วย VBA เพื่อให้แสดงเป็น Database จะได้สะดวกในการนำไปทำรายงานตามต้องการ ตัวอย่าง Code ตามด้านล่างครับ

Sub MakeDatabase()
    Dim r As Range, t As String
    Dim arr(999, 1) As Variant, i As Integer
    With Sheets(1)
        .Range("c1").CurrentRegion.ClearContents
        For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
            If Not IsNumeric(r.Value) Then
                t = r.Value
            Else
                arr(i, 0) = t
                arr(i, 1) = r.Value
                i = i + 1
            End If
        Next r
        .Range("c1:d1").Value = Array("Pd", "Qty")
        .Range("c2").Resize(i, 2).Value = arr
    End With
End Sub

Video แสดงการนำข้อมูลในคอลัมน์เดียวแยกเป็น 2 คอลัมน์

Scroll to Top