คุกกี้ช่วยให้เราสามารถนำเสนอบริการของเรา โดยการใช้บริการของเราคุณยินยอมที่จะใช้งานของเราคุกกี้
เคล็ดลับ: ภาษาอื่น ๆ ได้รับการแปลโดย Google คุณสามารถเยี่ยมชม English รุ่นของลิงก์นี้
เข้าสู่ระบบ
x
or
x
x
สมัครสมาชิก
x

or

วิธีการแบ่งข้อมูลลงในแผ่นงานหลายแผ่นตามคอลัมน์ใน Excel?

สมมติว่าคุณมีเวิร์กชีทที่มีแถวข้อมูลขนาดใหญ่และตอนนี้คุณจำเป็นต้องแบ่งข้อมูลออกเป็นหลายแผ่นตามข้อมูล ชื่อ (ดูภาพหน้าจอต่อไปนี้) และชื่อจะถูกป้อนแบบสุ่ม บางทีคุณสามารถจัดเรียงข้อมูลเหล่านี้ได้ก่อนแล้วจึงคัดลอกและวางข้อมูลเหล่านี้ทีละแผ่นในแผ่นงานใหม่ ๆ แต่คุณจะต้องอดทนรอเพื่อคัดลอกและวางข้อมูลซ้ำ ๆ วันนี้ฉันจะพูดถึงเทคนิคบางอย่างเพื่อแก้ปัญหานี้

doc แยกข้อมูลตามคอลัมน์ 1

แยกข้อมูลลงในแผ่นงานหลายชุดโดยอิงจากคอลัมน์ที่มีรหัส VBA

แบ่งข้อมูลออกเป็นหลายแผ่นตามคอลัมน์ที่มี Kutools for Excel


แยกข้อมูลลงในแผ่นงานหลายแผ่นตามคอลัมน์หรือแถวที่ระบุในแผ่นงาน:

ถ้าคุณต้องการแบ่งแผ่นงานขนาดใหญ่ออกเป็นแผ่นงานหลายแผ่นตามข้อมูลคอลัมน์ที่ระบุหรือจำนวนแถว Kutools สำหรับ Excel's แยกข้อมูล คุณลักษณะนี้ช่วยให้คุณสามารถแก้ปัญหานี้ได้อย่างรวดเร็วและง่ายดาย

doc แยกข้อมูลตามคอลัมน์ 6

Kutools สำหรับ Excel: มี Excel Add-ins ที่มีประโยชน์มากกว่า 200 และสามารถทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 60 วัน ดาวน์โหลดและทดลองใช้ฟรี Now!


แยกข้อมูลลงในแผ่นงานหลายชุดโดยอิงจากคอลัมน์ที่มีรหัส VBA


ถ้าคุณต้องการแบ่งข้อมูลตามค่าของคอลัมน์อย่างรวดเร็วและโดยอัตโนมัติรหัส VBA ต่อไปนี้เป็นตัวเลือกที่ดี โปรดทำดังนี้:

1. กดค้างไว้ ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอ็พพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในหน้าต่างโมดูล

Sub parse_data()
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
vcol = 1        
Set ws = Sheets("Master sheet")        
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = "A1:C1"            
titlerow = ws.Range(title).Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
For i = 2 To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.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
ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
Sheets(myarr(i) & "").Columns.AutoFit
Next
ws.AutoFilterMode = False
ws.Activate
End Sub

หมายเหตุ: ในรหัสข้างต้น:

  • vcol = 1 , จำนวน 1 คือหมายเลขคอลัมน์ที่คุณต้องการแบ่งใช้ข้อมูล
  • ตั้ง WS = แผ่นงาน ("แผ่นงานหลัก"), แผ่นงานหลัก เป็นชื่อแผ่นงานที่คุณต้องการใช้รหัสนี้
  • title = "A1: C1" , A1: C1 คือช่วงของชื่อ

ทั้งหมดนี้เป็นตัวแปรที่คุณสามารถเปลี่ยนได้ตามความต้องการของคุณ

3. จากนั้นกด F5 เพื่อเรียกใช้โค้ดข้อมูลทั้งหมดในแผ่นงานที่ใช้งานอยู่จะถูกแบ่งออกเป็นหลายแผ่นตามค่าคอลัมน์ และแผ่นงานแบ่งเป็นชื่อที่มีชื่อเซลล์แยก ดูภาพหน้าจอ:

doc แยกข้อมูลตามคอลัมน์ 2

หมายเหตุ: เวิร์กชีตแยกจะอยู่ในตอนท้ายของเวิร์กบุคที่มีแผ่นงานต้นแบบอยู่


แบ่งข้อมูลออกเป็นหลายแผ่นตามคอลัมน์ที่มี Kutools for Excel

ในฐานะที่เป็นผู้เริ่มต้นใช้งาน Excel รหัส VBA แบบยาวนี้เป็นเรื่องยากสำหรับพวกเราและส่วนใหญ่ของเรายังไม่ทราบวิธีแก้ไขโค้ดตามที่เราต้องการ

ที่นี่ฉันจะแนะนำคุณเครื่องมือมัลติฟังก์ชั่ -Kutools สำหรับ Excelมัน แยกข้อมูล อรรถประโยชน์ไม่เพียง แต่ช่วยให้คุณสามารถแบ่งข้อมูลลงในแผ่นงานหลายแผ่นตามคอลัมน์ แต่ยังสามารถแบ่งข้อมูลตามจำนวนแถว

Kutools สำหรับ Excel : มี Excel Add-ins ที่มีประโยชน์มากกว่า 300 และสามารถทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 60 วัน.

ถ้าคุณได้ติดตั้ง Kutools สำหรับ Excelโปรดทำดังนี้

1. เลือกช่วงของข้อมูลที่คุณต้องการแบ่ง

2. คลิก Kutools More > แผ่นงาน > แยกข้อมูล, ดูภาพหน้าจอ:

doc แยกข้อมูลตามคอลัมน์ 3

3. ใน แยกข้อมูลลงในแผ่นงานหลายแผ่น คุณต้อง:

1) เลือก เฉพาะคอลัมน์ ตัวเลือกใน แยกตาม และเลือกค่าคอลัมน์ที่คุณต้องการแบ่งข้อมูลตามรายการแบบหล่นลง (หากข้อมูลของคุณมีส่วนหัวและคุณต้องการแทรกลงในแผ่นงานแยกแต่ละใหม่โปรดตรวจสอบ ข้อมูลของฉันมีส่วนหัว ตัวเลือก.)

2) จากนั้นคุณสามารถระบุชื่อแผ่นงานแยกภายใต้ ชื่อเวิร์กชีตใหม่ ให้ระบุกฎของชื่อเวิร์กชีตจาก กฎระเบียบ รายการแบบหล่นลงคุณสามารถเพิ่ม อุปสรรค or วิภัตติ สำหรับชื่อแผ่นงานเช่นกัน

3) คลิก OK ปุ่ม. ดูภาพหน้าจอ:

doc แยกข้อมูลตามคอลัมน์ 4

4. ตอนนี้ข้อมูลถูกแบ่งออกเป็นแผ่นงานหลายแผ่นในสมุดงานใหม่

doc แยกข้อมูลตามคอลัมน์ 5

คลิกเพื่อดาวน์โหลด Kutools for Excel และทดลองใช้ฟรีวันนี้!


แบ่งข้อมูลออกเป็นหลายแผ่นตามคอลัมน์ที่มี Kutools for Excel

Kutools สำหรับ Excel รวมเครื่องมือ Excel ที่มีประโยชน์มากมายกว่า 300 ทดลองใช้ฟรีโดยไม่มีข้อ จำกัด ใน 60 วัน ดาวน์โหลดทดลองใช้ฟรีวันนี้!


บทความที่เกี่ยวข้อง:

วิธีการแบ่งข้อมูลลงในแผ่นงานหลายแผ่นโดยนับแถว?



เครื่องมือเพิ่มประสิทธิภาพที่แนะนำ

แท็บ Office

gold star1 นำแท็บที่มีประโยชน์ไปยัง Excel และซอฟต์แวร์ Office อื่น ๆ เช่นเดียวกับ Chrome, Firefox และ Internet Explorer ใหม่

Kutools สำหรับ Excel

gold star1 น่าทึ่ง! เพิ่มประสิทธิภาพการทำงานของคุณในอีก 5 นาที ไม่จำเป็นต้องมีทักษะพิเศษประหยัดสองชั่วโมงทุกวัน!

gold star1 300 คุณสมบัติใหม่สำหรับ Excel, Make Excel ง่ายมากและมีประสิทธิภาพ:

  • ผสานเซลล์ / แถว / คอลัมน์โดยไม่สูญเสียข้อมูล
  • รวมและรวมแผ่นงานหลายแผ่นและสมุดงาน
  • เปรียบเทียบช่วง, คัดลอกหลายช่วง, แปลงข้อความเป็นวันที่, หน่วยและการแปลงสกุลเงิน
  • นับตามสี, เพจย่อยย่อย, การเรียงลำดับขั้นสูงและตัวกรอง Super,
  • เพิ่มเติมเลือก / แทรก / ลบ / ข้อความ / รูปแบบ / ลิงก์ / ความคิดเห็น / เวิร์คบุ๊ค / แผ่นงานเครื่องมือ ...

ภาพหน้าจอของ Kutools for Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Lubo · 2 years ago
    Hello,
    The VBA works great,
    Do you give me more information how to chance to separated data in different sheet started from number row 36 and fill only 3- 5 columns
    Thank you in advance
  • To post as a guest, your comment is unpublished.
    Mark · 2 years ago
    Using this script has increased the size of my file! It has inserted white space - how do I get rid of that?
  • To post as a guest, your comment is unpublished.
    Rohit · 2 years ago
    Awesome !
    Thank you so much for publishing this code. It is immensely helpful for learners like me who study other's code to get better at VBA
  • To post as a guest, your comment is unpublished.
    Mark · 2 years ago
    I have successfully split my source sheet into multiple sheets, but I have found a problem.
    This introduces alot of white space into the sheets. Have a look at the horizontal scroll bar before and after running the VBS.
    I only had columns to Y, now the sheets (the source and new sheets) go to XFD! How do I delete the white space!?
    Thanks otherwise for the code.
  • To post as a guest, your comment is unpublished.
    Mark · 2 years ago
    I have found a problem, whilst I do have everything split into separate sheets now it seems to have included alot of white space to the right in each new workbook - not only that the source sheet is now bloated with white space also - have a look at the size of the horizontal scroll bar on the source sheet before and after running this VBS.
    This has increased the size of my xlsx file. I need to find an easy way to remove the white space bloat now.