ไปยังเนื้อหาหลัก

แยกสตริงข้อความด้วยตัวคั่นเป็นหลายแถว - 3 เคล็ดลับด่วน

ผู้เขียน: Xiaoyang แก้ไขล่าสุด: 2023-06-08

โดยปกติ คุณสามารถใช้คุณลักษณะข้อความเป็นคอลัมน์เพื่อแบ่งเนื้อหาของเซลล์ออกเป็นหลายคอลัมน์โดยใช้ตัวคั่นเฉพาะ เช่น เครื่องหมายจุลภาค จุด เครื่องหมายอัฒภาค ทับ ฯลฯ แต่บางครั้ง คุณอาจต้องแบ่งเนื้อหาของเซลล์ที่คั่นออกเป็นหลายแถว และทำซ้ำข้อมูลจากคอลัมน์อื่นตามภาพด้านล่างที่แสดง คุณมีวิธีที่ดีในการจัดการกับงานนี้ใน Excel หรือไม่? บทช่วยสอนนี้จะแนะนำวิธีการที่มีประสิทธิภาพในการทำงานนี้ให้สำเร็จใน Excel


วิดีโอ: แบ่งสตริงข้อความตามตัวคั่นเป็นหลายแถว


วิธี A: แยกข้อความที่ใช้ตัวคั่นออกเป็นหลายแถวด้วยโค้ด VBA

ในส่วนนี้ ฉันจะแนะนำรหัส VBA สองรหัสเพื่อช่วยแยกเนื้อหาของเซลล์ซึ่งคั่นด้วยตัวคั่น

แยกข้อความโดยคั่นด้วยเครื่องหมายจุลภาค ช่องว่าง เครื่องหมายอัฒภาค ฯลฯ

หากต้องการแยกสตริงข้อความซึ่งคั่นด้วยตัวคั่นปกติ เช่น เครื่องหมายจุลภาค ช่องว่าง เครื่องหมายอัฒภาค เครื่องหมายทับ ฯลฯ โค้ดต่อไปนี้สามารถช่วยคุณได้ โปรดทำตามขั้นตอนด้านล่าง:

 หมายเหตุ: รหัสนี้ ไม่ สนับสนุน แก้คุณควรสำรองข้อมูลก่อนที่จะใช้รหัสนี้

ขั้นตอนที่ 1: เปิดตัวแก้ไขโมดูล VBA และคัดลอกโค้ด

1. เปิดใช้งานแผ่นที่คุณต้องการใช้ จากนั้นกด Alt + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

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

3. จากนั้นคัดลอกและวางโค้ดด้านล่างลงในโมดูลว่าง

รหัส VBA: แยกข้อความตามตัวคั่นเฉพาะ (เครื่องหมายจุลภาค จุด เว้นวรรค ฯลฯ)

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
    If xSplitChar = "" Then Exit Sub
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub   

ขั้นตอนที่ 2: รันโค้ดเพื่อรับผลลัพธ์

1. หลังจากวางรหัสแล้ว กรุณากด F5 คีย์เพื่อเรียกใช้รหัสนี้ จากนั้นกล่องพรอมต์จะปรากฏขึ้นเพื่อเตือนให้คุณเลือกเซลล์ที่มีข้อความคั่นที่คุณต้องการแยก ดูภาพหน้าจอ:

2. จากนั้นคลิก OKกล่องพรอมต์อื่นจะปรากฏขึ้นเพื่อเตือนให้คุณพิมพ์ตัวคั่นที่คุณต้องการแยกข้อมูลตาม ที่นี่ฉันพิมพ์เครื่องหมายจุลภาคและช่องว่าง (, ) ดูภาพหน้าจอ:

3. ในที่สุดคลิก OK ปุ่ม. ตอนนี้คุณจะเห็นว่าสตริงข้อความที่เลือกถูกแบ่งออกเป็นแถวตามเครื่องหมายจุลภาคและข้อมูลคอลัมน์สัมพัทธ์อื่นๆ จะถูกทำซ้ำตามภาพด้านล่างที่แสดง:


แยกข้อความโดยคั่นด้วยตัวแบ่งบรรทัด

ถ้าเนื้อหาในเซลล์ของคุณถูกคั่นด้วยการขึ้นบรรทัดใหม่ เพื่อแยกออกเป็นหลายแถว นี่คือโค้ด VBA อีกอันที่สามารถช่วยคุณได้

 หมายเหตุ: รหัสนี้ ไม่ สนับสนุน แก้ คุณควรสำรองข้อมูลก่อนที่จะใช้รหัสนี้

ขั้นตอนที่ 1: เปิดตัวแก้ไขโมดูล VBA และคัดลอกโค้ด

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

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

3. จากนั้นคัดลอกและวางโค้ดด้านล่างลงในโมดูลว่าง

รหัส VBA: แยกข้อความตามตัวแบ่งบรรทัด

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Chr(10)
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub 

ขั้นตอนที่ 2: รันโค้ดเพื่อรับผลลัพธ์

1. หลังจากวางรหัสแล้ว กรุณากด F5 คีย์เพื่อเรียกใช้รหัสนี้ ในกล่องที่โผล่ออกมา โปรดเลือกเซลล์ที่คุณต้องการแยก ดูภาพหน้าจอ:

2. จากนั้นคลิก OK ปุ่ม ข้อมูลในเซลล์ที่เลือกจะถูกแบ่งออกเป็นแถวตามภาพด้านล่างที่แสดง:


วิธี B: 10 วินาทีเพื่อแบ่งข้อความที่ใช้ตัวคั่นออกเป็นหลายแถวโดย Kutools for Excel

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

ขั้นตอนที่ 1: เลือกคุณสมบัติแยกข้อมูลเป็นแถว

คลิก Kutools > ผสานและแยก > แยกข้อมูลเป็นแถวดูภาพหน้าจอ:

ขั้นตอนที่ 2: ระบุเซลล์ข้อมูลและตัวคั่นสำหรับการแยก

ในกล่องโต้ตอบที่เด้งออกมา ให้ใช้ตัวเลือกต่อไปนี้:

  • 1). เลือกรายการเซลล์ที่คุณต้องการแยกจาก ช่วง (คอลัมน์เดียว) กล่องข้อความ;
  • 2). จากนั้น เลือกตัวคั่นที่แยกข้อมูลของคุณ ฉันจะเลือกที่นี่ อื่นๆ และพิมพ์ลูกน้ำและเว้นวรรค (, ) ลงในกล่องข้อความ
  • 3). ในที่สุดคลิก OK ปุ่ม

ตอนนี้เซลล์ที่เลือกด้วยสตริงข้อความที่ใช้ตัวคั่นได้ถูกแปลงเป็นหลายแถวตามตัวคั่นเฉพาะ ดูภาพหน้าจอ:

 เคล็ดลับ: หากคุณต้องการกู้คืนข้อมูลเดิม คุณเพียงแค่กด Ctrl + Z สำหรับการเลิกทำ

ง่ายต่อการใช้? สนใจคุณสมบัตินี้เชิญครับ คลิกเพื่อดาวน์โหลดเพื่อทดลองใช้ฟรี 30 วัน.


วิธี C: แยกข้อความที่ใช้ตัวคั่นออกเป็นหลายแถวโดย Power Query

หากคุณใช้ Office 365 หรือ Excel 2016 และเวอร์ชันที่ใหม่กว่า Power Query เป็นเครื่องมืออันทรงพลังที่สามารถช่วยคุณแยกข้อความที่มีตัวคั่นออกเป็นหลายแถวหรือหลายคอลัมน์ มีประโยชน์ถ้าคุณต้องการให้รีเฟรชข้อมูลแยกเมื่อข้อมูลเดิมของคุณเปลี่ยนแปลง โปรดทำตามขั้นตอนต่อไปนี้ให้เสร็จสิ้น:

ขั้นตอนที่ 1: นำตารางข้อมูลเข้ามา Power Query

1. เลือกช่วงข้อมูลที่คุณต้องการใช้ จากนั้นคลิก ข้อมูล > จากตารางดูภาพหน้าจอ:

 เคล็ดลับ: ใน Excel 2019 และ Office 365 คลิก ข้อมูล > จากตาราง/ช่วง.

2. ในที่โผล่ออกมา สร้างตาราง คลิกตกลง OK ปุ่มเพื่อสร้างตาราง ดูภาพหน้าจอ:

3 ตอนนี้ Power Query บรรณาธิการ หน้าต่างแสดงข้อมูล ดูภาพหน้าจอ:

ขั้นตอนที่ 2: ทำการเปลี่ยนแปลงใน Power Query

1. เลือกคอลัมน์ที่คุณต้องการแยก จากนั้นคลิก หน้าแรก > แยกคอลัมน์ > โดยตัวคั่นดูภาพหน้าจอ:

2 ใน แยกคอลัมน์ตามตัวคั่น กล่องโต้ตอบ:

หากต้องการแยกสตริงข้อความด้วยเครื่องหมายจุลภาค ช่องว่าง เครื่องหมายอัฒภาค ฯลฯ โปรดทำดังนี้:

  • 1). เลือกตัวคั่นข้อมูลของคุณคั่นด้วยจาก เลือกหรือป้อนตัวคั่น รายการแบบหล่นลง
  • 2). เลือก การเกิดขึ้นของตัวคั่นแต่ละครั้ง จาก แยกที่ มาตรา;
  • 3). จากนั้นคลิก ตัวเลือกขั้นสูง เพื่อขยายส่วน และเลือก แถว ภายใต้ แบ่งเป็น;
  • 4). ในที่สุดคลิก OK เพื่อปิดกล่องโต้ตอบนี้

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

  • 1). เลือก ประเพณี จาก เลือกหรือป้อนตัวคั่น รายการแบบหล่นลง
  • 2). จาก ใส่อักขระพิเศษ เลื่อนลงคลิก ไลน์ฟีดและตัวละคร #(ลฟ) จะถูกแทรกลงในกล่องข้อความภายใต้ ประเพณี โดยอัตโนมัติ;
  • 3). เลือก การเกิดขึ้นของตัวคั่นแต่ละครั้ง จากส่วนแยกที่;
  • 4). จากนั้นคลิก ตัวเลือกขั้นสูง เพื่อขยายส่วน และเลือก แถว ภายใต้ แบ่งเป็น;
  • 5). ในที่สุดคลิก OK เพื่อปิดกล่องโต้ตอบนี้

3. ขณะนี้ ข้อมูลที่เลือกได้ถูกแบ่งออกเป็นหลายแถวตามภาพด้านล่างที่แสดง:

ขั้นตอนที่ 3: ส่งออกไฟล์ Power Query ไปยังตาราง Excel

1. จากนั้น คุณควรส่งออกข้อมูลลงในแผ่นงานของคุณ กรุณาคลิก หน้าแรก > ปิดและโหลด > ปิดและโหลด / ปิดและโหลดไปที่,(ตรงนี้ผมจะกด ปิดและโหลด) ดูภาพหน้าจอ:

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

2. ในที่สุด ข้อมูลจะถูกโหลดไปยังแผ่นงานใหม่ ดูภาพหน้าจอ:

 เคล็ดลับ: หากคุณต้องการอัปเดตข้อมูลของคุณในตารางเดิมบ่อยๆ โปรดอย่ากังวล คุณเพียงคลิกขวาที่ตารางผลลัพธ์แล้วคลิก รีเฟรช เพื่อรับผลลัพธ์ใหม่แบบไดนามิก


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

  • แบ่งค่าเซลล์ออกเป็นหลายคอลัมน์
  • ใน Excel เมื่อคุณต้องการแบ่งรายการค่าของเซลล์ออกเป็นหลายคอลัมน์ด้วยตัวคั่นบางตัว เช่น เครื่องหมายจุลภาค เว้นวรรค จุด ขึ้นบรรทัดใหม่ ฯลฯ โดยปกติแล้วคุณลักษณะ Text To Columns ในตัวอาจช่วยให้คุณทำงานขั้นตอนนี้ให้เสร็จ โดยขั้นตอน บทความนี้ผมจะพูดถึงทริคดีๆ ให้คุณแบ่งค่าเซลล์ออกเป็นหลายๆ คอลัมน์หรือหลายแถวได้ง่ายๆ และรวดเร็ว
  • แยกเซลล์ออกเป็นหลายแถวหรือหลายคอลัมน์
  • สมมติว่าคุณมีเซลล์เดียวที่มีหลายเนื้อหาคั่นด้วยอักขระเฉพาะตัวอย่างเช่นเซมิโคลอนจากนั้นคุณต้องการแบ่งเซลล์ยาวนี้ออกเป็นหลายแถวหรือหลายคอลัมน์ตามอัฒภาคในกรณีนี้คุณมีวิธีง่ายๆหรือไม่ เพื่อแก้ปัญหาใน Excel?
  • แยกสตริงข้อความตามกรณี
  • ใน Excel เรามักจะแบ่งข้อความตามความกว้างคงที่หรือตัวคั่นด้วยฟังก์ชัน Text to Columns แต่คุณเคยพยายามแบ่งข้อความด้วยตัวพิมพ์ใหญ่และตัวพิมพ์เล็กหรือไม่? ตัวอย่างเช่นคุณมีรายการข้อมูลและคุณต้องแบ่งออกเป็นสองคอลัมน์ตามกรณี: คอลัมน์หนึ่งมีสตริงตัวพิมพ์เล็กและอีกคอลัมน์หนึ่งมีสตริงตัวพิมพ์ใหญ่ตามที่แสดงด้านล่างภาพหน้าจอ ฟังก์ชัน Text to Columns ไม่รองรับการดำเนินการนี้อย่างไรก็ตามฉันสามารถแนะนำเทคนิคในการแยกสตริงข้อความอย่างรวดเร็วตามกรณีใน Excel
  • แยกหมายเลขออกเป็นแต่ละหลัก
  • สมมติว่าคุณต้องแบ่งหรือแยกหมายเลขออกเป็นแต่ละหลักตามภาพด้านล่างนี้คุณจะทำอย่างไรเพื่อให้บรรลุ บทความนี้จะนำเสนอสองวิธีสำหรับคุณ
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations