การแยกข้อมูลคอลัมน์เดียวเป็น 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 คอลัมน์


🧭 Timeline หัวข้อหลัก

  • 00:00:13 แนะนำวัตถุประสงค์: แยกข้อมูลจากคอลัมน์เดียวออกเป็น 2 คอลัมน์
  • 00:00:41 เปิด VBE และสร้าง Module ใหม่
  • 00:00:54 ตั้งชื่อ Procedure ว่า MakeDatabase
  • 00:01:09 ประกาศตัวแปร: R, Add, T, String, arr, I
  • 00:01:22 เริ่ม Loop ข้อมูลจากเซลล์ A2 เป็นต้นไป
  • 00:01:43 เคลียร์ข้อมูลปลายทางที่ C1 และเซลล์ติดกัน
  • 00:02:20 Loop ตรวจสอบค่าทีละเซลล์ในคอลัมน์ A
  • 00:02:45 ถ้าไม่ใช่ตัวเลข → กำหนดเป็นชื่อสินค้า
  • 00:03:20 ถ้าเป็นตัวเลข → กำหนดเป็นจำนวนสินค้า
  • 00:03:38 วางหัวคอลัมน์ที่ C1 และ D1: “Product” และ “Qty”
  • 00:04:06 วางข้อมูลที่ C2 เป็นต้นไปจากตัวแปร arr
  • 00:04:27 ทดสอบการรันโค้ดและตรวจสอบผลลัพธ์
  • 00:04:41 สรุปจบคลิป
Scroll to Top