บางครั้ง ในการวิเคราะห์ข้อมูล คุณอาจจำเป็นต้องแบ่งเนื้อหาของเวิร์กชีต Excel ออกเป็นเวิร์กบุ๊ก Excel หลายเล่มตามคอลัมน์เฉพาะ ในบทความนี้ เราจะสอน 2 วิธีง่ายๆ ในการทำเช่นนั้น
ผู้ใช้จำนวนมากมักต้องการแยกแผ่นงาน Excel ที่มีข้อมูลจำนวนมากเป็นแถว ๆ สมุดงาน Excel แยกกันโดยยึดตามคอลัมน์เฉพาะ ตัวอย่างเช่นนี่คือตัวอย่างแผ่นงาน Excel ของฉัน ฉันต้องการแยกข้อมูลของแผ่นงานนี้ตามคอลัมน์ "Price of single license (US $)" เป็นสมุดงานหลายเล่ม

โดยทั่วไปคุณมักจะใช้วิธีที่ 1 ต่อไปนี้เพื่อกรองและคัดลอกข้อมูลด้วยตนเอง แต่มันจะค่อนข้างน่าเบื่อและโง่หากมีตัวเลือกตัวกรองมากเกินไป ดังนั้นที่นี่เราจึงแสดงวิธีที่สะดวกกว่ามากนั่นคือวิธีที่ 2 ซึ่งใช้ VBA ตอนนี้อ่านเพื่อรับรายละเอียด
วิธีที่ 1: คัดลอกเนื้อหาเพื่อแยกสมุดงาน Excel หลังตัวกรอง
- ในตอนแรกเลือกเซลล์ในคอลัมน์เฉพาะเช่น“ เซลล์ B1” ในอินสแตนซ์ของฉันเอง
- จากนั้นไปที่แท็บ "ข้อมูล" แล้วคลิกปุ่ม "ตัวกรอง"
- จากนั้นคลิกปุ่ม "ลูกศรลง" ในส่วนหัวของคอลัมน์เพื่อแสดงรายการตัวเลือกตัวกรอง
- ตอนนี้ยกเลิกการเลือกตัวเลือก“ (เลือกทั้งหมด)”
- หลังจากนั้นคุณสามารถเลือกหนึ่งตัวเลือกตัวกรองเช่น“ 29.95” ในตัวอย่างของฉันแล้วคลิก“ ตกลง”
- ในครั้งเดียวจะเหลือเฉพาะข้อมูลที่มีค่าในคอลัมน์ B "29.95"
- จากนั้นคัดลอกข้อมูลที่กรองแล้ววางลงในสมุดงาน Excel ใหม่
- ต่อมาใช้วิธีเดียวกันนี้ในการแยกข้อมูลอื่น ๆ เพื่อแยกสมุดงาน Excel
วิธีที่ 2: แบทช์แยกเนื้อหาออกเป็นสมุดงาน Excel หลายเล่มผ่าน VBA
- ในตอนแรกตรวจสอบให้แน่ใจว่าได้เปิดแผ่นงานเฉพาะแล้ว
- จากนั้นเปิดตัวแก้ไข VBA ตาม "วิธีเรียกใช้รหัส VBA ใน Excel ของคุณ"
- จากนั้นใส่รหัสต่อไปนี้ในโครงการ“ ThisWorkbook”
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow, nRow, nNextRow As Integer
Dim strColumnValue As String
Dim objDictionary As Object
Dim varColumnValues As Variant
Dim varColumnValue As Variant
Dim objExcelWorkbook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Set objWorksheet = ActiveSheet
nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = 2 To nLastRow
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
strColumnValue = objWorksheet.Range("B" & nRow).Value
If objDictionary.Exists(strColumnValue) = False Then
objDictionary.Add strColumnValue, 1
End If
Next
varColumnValues = objDictionary.Keys
For i = LBound(varColumnValues) To UBound(varColumnValues)
varColumnValue = varColumnValues(i)
'Create a new Excel workbook
Set objExcelWorkbook = Excel.Application.Workbooks.Add
Set objSheet = objExcelWorkbook.Sheets(1)
objSheet.Name = objWorksheet.Name
objWorksheet.Rows(1).EntireRow.Copy
objSheet.Activate
objSheet.Range("A1").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
objSheet.Paste
objSheet.Columns("A:B").AutoFit
End If
Next
Next
End Sub
- หลังจากนั้นคลิกไอคอน“ Run” ในแถบเครื่องมือหรือกดปุ่ม“ F5”
- เมื่อแมโครเสร็จสิ้นสมุดงาน Excel แยกต่างหากจะถูกสร้างขึ้นพร้อมกับข้อมูลที่แยกจากเวิร์กชีต Excel ต้นทาง
- สมุดงานแต่ละเล่มจะมีลักษณะเหมือนภาพหน้าจอต่อไปนี้
การเปรียบเทียบ
| ข้อดี | ข้อเสีย | |
| 1 วิธี | 1. ใช้งานง่ายสำหรับผู้ใช้ Excel ทุกคน | ลำบากหากมีตัวเลือกตัวกรองมากเกินไป |
| 2. รวดเร็วหากมีตัวเลือกตัวกรองน้อย | ||
| 2 วิธี | มีประสิทธิภาพมากกว่าวิธีที่ 1 มากไม่ว่าจะมีตัวเลือกตัวกรองจำนวนเท่าใดก็ตาม | ใช้งานยากสำหรับมือใหม่ VBA |
ป้องกันการสูญหายของข้อมูล Excel
แม้ว่า MS Excel จะก้าวหน้าและซับซ้อนมากขึ้นเรื่อย ๆ แต่ก็ยังมีแนวโน้มที่จะเกิดความผิดพลาดในบางครั้งเนื่องจากปัจจัยอื่น ๆ เช่น Add-in ของบุคคลที่สามที่เป็นอันตรายหรือข้อผิดพลาดจากมนุษย์เป็นต้น เนื่องจากความผิดพลาดของ Excel สามารถนำไปสู่ ความเสียหายของ Excelเพื่อหลีกเลี่ยงการสูญหายของข้อมูล Excel คุณต้องสำรองไฟล์ Excel ของคุณเป็นประจำ มิฉะนั้นคุณต้องใช้เครื่องมือซ่อมแซม Excel เช่น DataNumen Excel Repair เพื่อแก้ไขไฟล์ Excel ที่เสียหาย
บทนำผู้เขียน:
Shirley Zhang เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ SQL Server ซ่อมแซม และผลิตภัณฑ์ซอฟต์แวร์ซ่อมแซมแนวโน้ม ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.






