หากคุณต้องการ แยกชีท Excel หลายชีทตามค่าในคอลัมน์ บทความนี้รวบรวม 5 วิธีที่ง่ายและมีประสิทธิภาพ
บางครั้งข้อมูลจำนวนมากต้องแยกตามคอลัมน์เพื่อทำงานแยกกัน ใช้ Excel 365 สาธิต (เวอร์ชันอื่นใช้ได้)
ดาวน์โหลดสมุดงาน
5 วิธีแยกชีทตามค่าคอลัมน์
ใช้ตารางคะแนนนักเรียน 3 คน แยกเป็น 3 ชีทตามคอลัมน์ Student Name

วิธี 1: ฟังก์ชัน FILTER (Excel 365/2021+)
ใช้ FILTER ดึงข้อมูลแต่ละคนไปชีทของตน

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


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


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


วิธี 2: Pivot Table + Show Report Filter Pages
ฟีเจอร์เก่าที่ทรงพลัง แยกชีทอัตโนมัติ

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







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



วิธี 3: ใช้ Table + Slicer
แปลงเป็น Table แล้วใช้ Slicer กรองข้อมูลในแต่ละชีท
- คัดลอกข้อมูลไป 3 ชีท → Insert → Table
- Table Design → Insert Slicer → เลือก Student Name
- ในแต่ละชีท คลิก Slicer เลือกชื่อคนละคน











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








วิธี 5: VBA Macro (อัตโนมัติทั้งหมด)
โค้ด VBA แยกชีทอัตโนมัติจากคอลัมน์ที่เลือก

- Developer → Visual Basic → Insert → Module
- วางโค้ดด้านล่าง → 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




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





สรุป
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)