บทความนี้แสดงวิธี นำเข้าข้อมูล Text File ที่มี ตัวคั่นหลายตัว (multiple delimiters) เข้า Excel Worksheet ด้วย 3 วิธีที่แตกต่างกัน เราจะใช้ฟีเจอร์ในตัวของ Excel และโค้ด VBA เพื่อทำภารกิจนี้ มาสำรวจตัวอย่างเพื่อเข้าใจวิธีต่างๆ ให้ชัดเจน
3 วิธีที่เหมาะสมในการนำเข้า Text File ที่มีตัวคั่นหลายตัวเข้า Excel
สมมติว่าเรามีชุดข้อมูลที่มี ตัวคั่นหลายตัว ใน Text File ชุดข้อมูล ใน Text File มีลักษณะดังนี้-

ชุดข้อมูล แสดง รายละเอียดการขาย ของร้านค้า คุณสามารถ ดาวน์โหลด Text File สำหรับ ฝึกฝน จาก ลิงก์ ที่นี่ แต่ละ ข้อมูล ถูก แยก ด้วย คอมม่า หรือ เซมิโคลอน เราต้องการ นำเข้า ข้อมูล นี้จาก Text File ไป Excel Spreadsheet
1. นำเข้าข้อมูล Text File หลายตัวคั่นด้วยฟีเจอร์ Legacy Wizards
ฟีเจอร์ Legacy Wizard สำหรับ นำเข้า Text File ให้ตัวเลือกมากมายในการตั้งค่า โครงสร้างที่ต้องการ ของ ชุดข้อมูลที่นำเข้า ใน Excel Worksheet
ไปที่ Legacy Wizards
- ไป ที่แท็บ Data จาก Excel Ribbon.
- คลิก ที่ตัวเลือก Get Data.
- Hover เมาส์ที่ตัวเลือก Legacy Wizards.
- เลือก ตัวเลือก From Text (Legacy).

หากตัวเลือก From Text (Legacy) ไม่พร้อมใช้งาน
กรณี From Text (Legacy) ไม่พร้อม ในตัวเลือก Legacy Wizards ให้ทำดังนี้เพื่อ เปิดใช้งาน
- กด Alt + T + O บน คีย์บอร์ด เปิด Excel Options.
- คลิก ที่แท็บ Data.
- ติ๊ก กล่องชื่อ “From Text (Legacy)” ภายใต้ตัวเลือก “Show legacy data import wizards”.
- กด OK เพื่อบันทึกการตั้งค่า.

นำเข้า Text File
เนื่องจากเรา คลิก ที่ From Text (Legacy) จาก Legacy Wizards มัน เปิด หน้าต่าง “Import Text File” เพื่อ เลือก Text File ไป ที่ ตำแหน่งไฟล์ และ เลือก นำเข้า.

ตั้งค่าการกำหนดค่า
ขั้นตอนที่ 1 จาก 3:
- เลือกตัวเลือก Delimited.
- ติ๊กตัวเลือก “My data has headers” เนื่องจากชุดข้อมูลตัวอย่างที่เราใช้มี Header.
- คลิก ปุ่ม Next.

ขั้นตอนที่ 2 จาก 3:
- ติ๊ก ตัวเลือก Semicolon และ Comma ภายใต้ตัวเลือก Delimiters.
หมายเหตุ: ชุดข้อมูล ของเรามี ตัวคั่นสองตัว นี้ มี ตัวเลือกเพิ่มเติม รวมถึงตัวเลือก “Other” สำหรับ ตัวคั่น ที่ ไม่มี ใน รายการ.
- อีกทั้ง ติ๊ก ตัวเลือก “Treat consecutive delimiters as one”.
- คลิก ปุ่ม Next.

ขั้นตอนที่ 3 จาก 3:
- ตาม ค่าเริ่มต้น รูปแบบข้อมูลคอลัมน์ คือ General ในตัวอย่างนี้ เราจะปล่อยให้เป็นเดิม.
- สุดท้ายกดปุ่ม Finish.

เลือกเป้าหมาย
หลังขั้นตอนทั้งหมด เลือกที่ จะ วาง ข้อมูลที่นำเข้า ที่นี่เราเลือก เซลล์ A1 ใน Worksheet ปัจจุบัน.

ชุดข้อมูลที่นำเข้า

อ่านเพิ่มเติม: How to Import Data into Excel from Another Excel File (2 Ways)
2. เตรียมข้อมูลแล้วนำเข้า Text File หลายตัวคั่นด้วยฟีเจอร์ Get and Transform Data
ในภาพประกอบนี้ เราจะใช้ฟีเจอร์ Get and Transform Data ของ Excel เพื่อ นำเข้า ข้อมูลที่มี ตัวคั่นหลายตัว จาก Text File ไป Excel Worksheet แต่ครั้งนี้เราต้อง เตรียม ข้อมูล ก่อน นำเข้า ไป Excel
เตรียมชุดข้อมูล
เราต้อง ลดตัวคั่นหลายตัว ให้เหลือ ตัวคั่นเดียว เพื่อ ทำงาน กับฟีเจอร์ Get and Transform สำหรับชุดข้อมูลของเรา ต้อง แทนที่ เซมิโคลอน ทั้งหมดด้วย คอมม่า ทำดังนี้
- สร้าง สำเนา ของ Text File ต้นฉบับ ชื่อ SampleDataModified.txt.
- เปิด ไฟล์ และ กด Ctrl + H.
- ในหน้าต่าง Replace ใส่ เซมิโคลอน ในกล่อง “Find what” และ คอมม่า ใน “Replace with”.
- คลิกปุ่ม Replace All.

- ตอนนี้มีแค่ คอมม่า เป็น ตัวคั่น ใน ชุดข้อมูล.

นำเข้า Text File
ทำตามขั้นตอนง่ายๆ เพื่อ นำเข้า Text File ที่ แก้ไขแล้ว ด้วยฟีเจอร์ Get and Transform ใน Excel
- ไป ที่แท็บ Data.
- คลิก ปุ่ม Get Data.
- Hover ที่ตัวเลือก From File.
- คลิก ตัวเลือก From Text/CSV.

- ไป ที่ ตำแหน่งไฟล์ ของ SampleTextModified.txt และ เลือก ไฟล์ นำเข้า.

- ในตัวอย่างแสดง ชุดข้อมูล เป็น Table.
- คลิก ปุ่ม Load.

ชุดข้อมูลที่นำเข้า

อ่านเพิ่มเติม: How to Import Data from Text File into Excel (3 Methods)
บทความที่คล้ายคลึง
- Import Data from Excel into Word Automatically Using VBA (2 Ways)
- How to Extract Data from a List Using Excel Formula (5 Methods)
- Excel Macro: Extract Data from Multiple Excel Files (4 Methods)
- How to Extract Year from Date in Excel (3 Ways)
- How to Extract Month from Date in Excel (5 Quick Ways)
3. รันโค้ด VBA นำเข้าข้อมูล Text File หลายตัวคั่นเข้า Excel Worksheet
เราจะใช้ฟังก์ชัน VBA Split และ InStr เพื่อกำหนดค่าโค้ด VBA ให้ นำเข้า Text File ไป Excel Worksheet มา แนะนำ ฟังก์ชัน ก่อน
ฟังก์ชัน VBA Split: Split function ใน Excel VBA ใช้ แยก สตริง เป็น Substrings ฟังก์ชัน คืนค่า Zero-based one-dimensional array แต่ละ Element ของ Array คือ Substring ที่แยกโดย ตัวคั่นที่กำหนดไว้ล่วงหน้า ไวยากรณ์ของ VBA Function คือ-
Split(expression, [delimiter, [limit, [compare]]])
ที่นี่,
expression– พารามิเตอร์ที่จำเป็น แทน Text string ที่มี Substrings และ Delimiter หากสตริง ว่าง ฟังก์ชันจะ คืนค่า Empty array ด้วย
delimiter– String character ที่ใช้ แยก String เป็น Substrings หากละเว้น ฟังก์ชันจะใช้ Space character เป็น Delimiter และหากเป็น Empty string จะคืน Original string เป็น Output.
limit– แทน จำนวน Substrings ที่จะคืนใน Output หากละเว้น จะ คืน Substrings ทั้งหมด.
compare– มี ค่าหลายอย่าง ใช้ vbBinaryCompare สำหรับ Delimiter Case-sensitive และ vbTextCompare สำหรับ Case-insensitive delimiter ใน Split function.
ฟังก์ชัน VBA InStr: ใช้ InStr function ใน Excel VBA เพื่อ ค้นหา สตริงเฉพาะ ภายใน สตริงที่กำหนด จาก ตำแหน่งที่กำหนดไว้ล่วงหน้า Syntax คือ-
InStr([start], string 1, string 2, [compare])
ที่นี่,
[start]- ตำแหน่ง ที่เริ่ม ค้นหา ค่าเริ่มต้นคือ 1 หาก ละเว้น.
string 1- Given string ที่ฟังก์ชัน ค้นหา Desired string.
string 2- Specific string ที่ฟังก์ชัน ค้นหา ภายใน Given string.
[compare]- ประเภท การเปรียบเทียบ ค่าเริ่มต้นคือ Binary Comparison.
เพื่อ นำเข้าข้อมูล Text File หลายตัวคั่นเข้า Excel Worksheet ต้อง เปิด และ เขียนโค้ด VBA ใน Visual Basic Editor ทำตาม ขั้นตอน เพื่อ เปิด Visual Basic Editor และเขียนโค้ด
- ไปที่แท็บ Developer จาก Excel Ribbon.
- คลิก ตัวเลือก Visual Basic.

- ในหน้าต่าง Visual Basic For Applications คลิก Insert Dropdown เพื่อ เลือก ตัวเลือก New Module.

วาง โค้ด ใน Visual Code Editor และ กด F5 เพื่อ รัน โค้ดต่อไปนี้ แทนที่ เซมิโคลอน ของ Text File ด้วย คอมม่า โดยใช้ VBA Replace function
Sub ImportTextFileDatatoExcel()
Dim fileLocation As String, textData As String
Dim rowNum As Long
folderLocation = "D:\Exceldemy"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderLocation)
rowNum = 1
Close #1
For Each textFile In folder.Files
fileLocation = folder & "\" & textFile.Name
Open fileLocation For Input As #1
Do While Not EOF(1)
Line Input #1, textData
textData = Replace(textData, ";", ",")
If InStr(textData, ",") = 0 Then
Cells(rowNum, 1) = textData
Else
tArray = Split(textData, ",")
nColumn = 1
For Each element In tArray
Cells(rowNum, nColumn) = element
nColumn = nColumn + 1
Next element
End If
rowNum = rowNum + 1
Loop
Close #1
Next textFile
End Sub
ในโค้ดข้างต้น ใส่ ตำแหน่งโฟลเดอร์ของคุณ ที่ เก็บ Text File ในโค้ด ภาพหน้าจอด้านล่างแสดง ตำแหน่งไฟล์ สำหรับ ภาพประกอบ นี้

ชุดข้อมูลที่นำเข้า

อ่านเพิ่มเติม: Convert Excel to Text File with Delimiter (2 Easy Approaches)
หมายเหตุ
- โค้ด VBA ที่เราใช้สามารถ ทำงาน กับ หลาย Text Files ใน โฟลเดอร์ปลายทาง ได้อย่างมีประสิทธิภาพ.
- หาก ตัวคั่นที่ระบุไม่มีอยู่ ใน Source String ฟังก์ชัน Split จะคืนค่า String ตามเดิม.
- หาก Compare Argument ของ Split Function ละเว้น ค่าเริ่มต้นคือ vbBinaryCompare.
- InStrRev Function คืนค่า 0 หาก Substring ไม่มีใน Given String.
สรุป
ตอนนี้เรารู้วิธีนำเข้าข้อมูล Text File เข้า Excel ด้วยตัวคั่นหลายตัวใน Excel ด้วยตัวอย่างที่เหมาะสม หวังว่าจะช่วยให้คุณใช้ฟังก์ชันนี้มั่นใจขึ้น หากมีคำถามหรือข้อเสนอแนะ อย่าลืมใส่ในกล่องความคิดเห็นด้านล่าง
บทความที่เกี่ยวข้อง
- Extract Filtered Data in Excel to Another Sheet (4 Methods)
- How to Extract Data from Excel Sheet (6 Effective Methods)
- Extract Data from Image into Excel (With Quick Steps)
- How to Convert Notepad to Excel with Columns (5 Methods)
- Excel VBA: Pull Data Automatically from a Website (2 Methods)
- VBA Code to Convert Text File to Excel (7 Methods)