Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

หากคุณต้องการ แยกชีท Excel หลายชีทตามค่าในคอลัมน์ บทความนี้รวบรวม 5 วิธีที่ง่ายและมีประสิทธิภาพ

บางครั้งข้อมูลจำนวนมากต้องแยกตามคอลัมน์เพื่อทำงานแยกกัน ใช้ Excel 365 สาธิต (เวอร์ชันอื่นใช้ได้)

ดาวน์โหลดสมุดงาน

5 วิธีแยกชีทตามค่าคอลัมน์

ใช้ตารางคะแนนนักเรียน 3 คน แยกเป็น 3 ชีทตามคอลัมน์ Student Name

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

วิธี 1: ฟังก์ชัน FILTER (Excel 365/2021+)

ใช้ FILTER ดึงข้อมูลแต่ละคนไปชีทของตน

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

ขั้นตอน:

  1. สร้างชีท 3 ชีท ชื่อ Daniel Defoe, Henry Jackson, Donald Paul
  2. ในชีท Daniel Defoe ที่เซลล์ B3 ใส่สูตร: =FILTER(Filter!B5:D16,Filter!B5:B16="Daniel Defoe")

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

กด Enter → ได้ข้อมูล Daniel Defoe → เพิ่มหัวตารางและเส้นขอบ

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

ทำซ้ำสำหรับอีก 2 คน

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

วิธี 2: Pivot Table + Show Report Filter Pages

ฟีเจอร์เก่าที่ทรงพลัง แยกชีทอัตโนมัติ

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

  1. Insert → PivotTable → New Worksheet
  2. ลาก Student Name → Filters, Subject & Grade → Rows
  3. Design → Report Layout → Show in Outline Form
  4. Design → Grand Totals → Off for Rows and Columns
  5. PivotTable Analyze → Options → Show Report Filter Pages → เลือก Student Name → OK

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

ผลลัพธ์: ได้ 3 ชีทแยกตามชื่อนักเรียนอัตโนมัติ

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

วิธี 3: ใช้ Table + Slicer

แปลงเป็น Table แล้วใช้ Slicer กรองข้อมูลในแต่ละชีท

  1. คัดลอกข้อมูลไป 3 ชีท → Insert → Table
  2. Table Design → Insert Slicer → เลือก Student Name
  3. ในแต่ละชีท คลิก Slicer เลือกชื่อคนละคน

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

วิธี 4: ใช้ Filter ทั่วไป

คัดลอกข้อมูลไปแต่ละชีท → Data → Filter → กรองชื่อแต่ละคน

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

วิธี 5: VBA Macro (อัตโนมัติทั้งหมด)

โค้ด VBA แยกชีทอัตโนมัติจากคอลัมน์ที่เลือก

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

  1. Developer → Visual Basic → Insert → Module
  2. วางโค้ดด้านล่าง → F5 รัน
Sub Splitsheet()
    Dim lr As Long, sheet As Worksheet, vcol, i As Integer
    Dim icol As Long, myarr As Variant, title As String
    Dim titlerow As Integer, xTRg As Range, xVRg As Range
    Dim xWSTRg As Worksheet
    
    On Error Resume Next
    Set xTRg = Application.InputBox("Select the header row:", "", Type:=8)
    If TypeName(xTRg) = "Nothing" Then Exit Sub
    Set xVRg = Application.InputBox("Select the column to split by:", "", Type:=8)
    If TypeName(xVRg) = "Nothing" Then Exit Sub
    
    vcol = xVRg.Column
    Set sheet = xTRg.Worksheet
    lr = sheet.Cells(sheet.Rows.Count, vcol).End(xlUp).Row
    title = xTRg.AddressLocal
    titlerow = xTRg.Cells(1).Row
    icol = sheet.Columns.Count
    sheet.Cells(1, icol) = "Unique"
    Application.DisplayAlerts = False
    
    If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
        Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
    Else
        Sheets("xTRgWs_Sheet").Delete
        Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
    End If
    
    Set xWSTRg = Sheets("xTRgWs_Sheet")
    xTRg.Copy xWSTRg.Paste Destination:=xWSTRg.Range("A1")
    sheet.Activate
    
    For i = (titlerow + xTRg.Rows.Count) To lr
        On Error Resume Next
        If sheet.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(sheet.Cells(i, vcol), sheet.Columns(icol), 0) = 0 Then
            sheet.Cells(sheet.Rows.Count, icol).End(xlUp).Offset(1) = sheet.Cells(i, vcol)
        End If
    Next
    
    myarr = Application.WorksheetFunction.Transpose(sheet.Columns(icol).SpecialCells(xlCellTypeConstants))
    sheet.Columns(icol).Clear
    
    For i = 2 To UBound(myarr)
        sheet.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
        If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
            Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
        Else
            Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
        End If
        xWSTRg.Range(title).Copy Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
        sheet.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
        Sheets(myarr(i) & "").Columns.AutoFit
    Next
    
    xWSTRg.Delete
    sheet.AutoFilterMode = False
    sheet.Activate
    Application.DisplayAlerts = True
End Sub

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

รันแล้วเลือก Header Row และคอลัมน์ Student Name → ได้ 3 ชีทอัตโนมัติ

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี
คู่มือด่วน: แยกชีท Excel หลายชีทตามค่าคอลัมน์ - 5 วิธี

สรุป

5 วิธีแยกชีทตามคอลัมน์: 1) FILTER (ทันสมัย, ไดนามิก) 2) Pivot Table + Show Report Filter Pages (คลาสสิค, อัตโนมัติ) 3) Table + Slicer (โต้ตอบได้) 4) Filter แบบมือ (ง่าย, ไม่ต้องเพิ่มฟีเจอร์) 5) VBA (อัตโนมัติเต็มที่, เหมาะงานซ้ำ)

อ่านเพิ่มเติม

  • Split Sheets into Separate Workbooks in Excel (4 Methods)
  • How to Open Two Excel Files Separately (5 Easy Methods)
  • Open Multiple Excel Files in One Workbook (4 Easy Ways)
  • How to View Excel Sheets in Separate Windows (4 Methods)