วันเสาร์ที่ 16 มีนาคม พ.ศ. 2556

การคัดลอกข้อมูลจากหลายแผ่นงาน ของ Excel

ถ้าต้องการรวมข้อมูลที่มีโครงสร้างเหมือนกัน ในหลาย ๆ แผ่นงาน นำมารวมไว้ในแผ่นงานเดียวกัน เพื่อจะได้เปรียบเทียบ หรือเรียงข้อมูลใหม่ จะทำอย่างไร

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

สมมติว่า ต้องการรวมข้อมูลจาก 2 แผ่นงาน ข้างล่างนี้ ไว้ด้วยกันเป็นแผ่นงานเดียว

ข้อมูลแผ่นงานที่ 1



ข้อมูลแผ่นงานที่ 2



วิธีที่สะดวกที่สุด คือการลากดำแล้ว คัดลอก และวาง จะสะดวกที่สุด แต่ถ้ามี เป็นสิบ ๆ แผ่นงาน ไม่น่าจะสะดวกแน่ ใช้ Macro ข้างล่างนี้ จัดการนำข้อมูลทั้งหมดมารวมกัน ดูจะสะดวกกว่ามาก

Sub Combine()
    Dim J As Integer
    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add ' เพิ่ม Sheet เพื่อยังคงรักษาข้อมูลเดิมไว้ทั้งหมด
    Sheets(1).Name = "รวมข้อมูลทั้งหมด"
    ' คัดลอกส่วนหัวตารางส่วนบน ถ้าข้อมูลอยู่ในตำแหน่งอื่น ให้เปลี่ยนตามข้อมูลที่มี
    Sheets(2).Activate  
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")
    ' สำรวจว่ามีทั้งหมดกี่แผ่นงาน และเลือกทั้งหมด
    For J = 2 To Sheets.Count ' จากแผ่นงานที่ 2 ถึงสุดท้าย
        Sheets(J).Activate ' เลือกแผ่นงานทั้งหมด
        Range("A1").Select
        Selection.CurrentRegion.Select 
        ' เลือกทั้งหมด ยกเว้นส่วนหัว
        Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
        ' คัดลอกข้อมูลจากทุกแผ่นงานมาต่อกันที่แผ่นงาน รวมข้อมูลทั้งหมด
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    Next
   
    Sheets(1).Activate
End Sub

วิธีใช้งาน
  1. ลากดำและคัดลอกฟังก์ชั่นข้างบน
  2. เปิดไฟล์ Excel ที่มีข้อมูลที่ต้องการเรียง แล้วกดปุ่ม Alt+F11 เพื่อเปิดหน้าต่าง VBA
  3. คลิกเลือก สมุดงานนี้
  4. คลิกบริเวณที่จะวางโค้ด แล้่ววางข้อมูล โดยกด Ctrl + V
  5. ปิดหน้าจอ VBA
  6. ไปที่แถบ มุมมอง  >  แมโคร > แสดงแมโคร
  7. เลือกแโคร แล้วจดปุ่ม เรียกใช้
  8. ข้อมูลทุกแผ่นงานจะมารวมกันที่แผ่นงานใหม่
  9. จากนั้นก็สามารถจะเรียงข้อมูล หรือกรองข้อมูลต่าง ๆ ได้ ตามต้องการ โดยเฉพาะ ถ้ามีข้อมูลเป็นร้อย ๆ แผ่นงาน ก็สามารถทำได้โดยง่าย


แหล่งที่มา

Allen Wyatt, http://excel.tips.net/T003005_Condensing_Multiple_Worksheets_Into_One.html


  


ไม่มีความคิดเห็น:

แสดงความคิดเห็น