Thep Excel

TEXTSPLITฟังก์ชันแยกข้อความตามตัวคั่น

TEXTSPLIT เป็นฟังก์ชัน Dynamic Array ที่ช่วยแยกข้อความในเซลล์ออกเป็นอาร์เรย์ของค่า (Spill) ตามตัวคั่นที่ระบุ สามารถแยกข้อมูลออกไปทางขวา (คอลัมน์) หรือลงด้านล่าง (แถว) หรือทั้งสองอย่างพร้อมกัน เหมาะสำหรับการจัดการข้อมูลนำเข้าที่รวมกันอยู่ในเซลล์เดียว

fx
=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

ความนิยม7/10
ความยาก4/10
ประโยชน์8/10

อัปเดต 1 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text Text ข้อความที่ต้องการแยก
col_delimiter Text ตัวคั่นสำหรับแยกเป็นคอลัมน์ (ถ้าจะแยกเฉพาะแถว ให้เว้นว่างไว้)
[row_delimiter]ไม่บังคับ Text none ตัวคั่นสำหรับแยกเป็นแถว
[ignore_empty]ไม่บังคับ Logical FALSE TRUE = ละเว้นเซลล์ว่าง (กรณีมีตัวคั่นติดกัน), FALSE = สร้างเซลล์ว่าง
[match_mode]ไม่บังคับ Number 0 0 = ตรงตัวพิมพ์เล็ก-ใหญ่ (Case-sensitive), 1 = ไม่สนใจตัวพิมพ์
[pad_with]ไม่บังคับ Any #N/A ค่าที่จะเติมให้เต็มถ้าอาร์เรย์ไม่เท่ากัน (กรณีแยก 2 มิติ)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

ฟังก์ชัน TEXTSPLIT ใช้สำหรับแยกข้อความ (Split Text) ออกเป็นหลายเซลล์โดยอัตโนมัติ สามารถกำหนดตัวคั่น (Delimiter) ได้ทั้งแนวคอลัมน์และแนวแถว รองรับการแยกด้วยตัวคั่นหลายตัวพร้อมกัน และสามารถละเว้นเซลล์ว่างได้ เป็นฟังก์ชันที่มาแทนที่ Text to Columns แบบเดิมๆ

How it works

แยกชื่อ-นามสกุล

แยกชื่อและนามสกุลที่คั่นด้วยช่องว่างออกจากกันเป็นคนละคอลัมน์

แยกรายการสินค้า

แยกรายการสินค้าที่คั่นด้วยคอมม่า (,) ให้อยู่คนละเซลล์

แยกข้อมูล 2 มิติ

แปลงข้อความเช่น "Name:John; Age:30" ให้เป็นตาราง 2 คอลัมน์ (Key, Value)

Examples

ตัวอย่างที่ 1: แยกข้อความด้วยช่องว่างTEXTSPLIT("สมชาย ใจดี", " ")

แยกข้อความ "สมชาย ใจดี" โดยใช้ช่องว่างเป็นตัวคั่น จะได้ "สมชาย" ในเซลล์แรก และ "ใจดี" ในเซลล์ถัดไป

fx
=TEXTSPLIT("สมชาย ใจดี", " ")

ผลลัพธ์สมชาย | ใจดี (2 เซลล์)
ตัวอย่างที่ 2: แยกด้วยตัวคั่นหลายแบบTEXTSPLIT("Apple, Banana; Cherry. Date", {",", ";", "."})

ใช้ Array Constant {…} เพื่อระบุตัวคั่นหลายตัว (คอมม่า, เซมิโคลอน, จุด) ในสูตรเดียว

fx
=TEXTSPLIT("Apple, Banana; Cherry. Date", {",", ";", "."})

ผลลัพธ์Apple | Banana | Cherry | Date
ตัวอย่างที่ 3: แยกเป็นแถว (ลงด้านล่าง)TEXTSPLIT("A,B,C", , ",")

เว้น col_delimiter ไว้ แล้วใส่ "," ใน row_delimiter แทน เพื่อให้ผลลัพธ์เรียงลงด้านล่าง

fx
=TEXTSPLIT("A,B,C", , ",")

ผลลัพธ์A
B
C (3 แถว)
ตัวอย่างที่ 4: ละเว้นเซลล์ว่างTEXTSPLIT("A,,B", ",", , TRUE)

มีคอมม่าติดกัน 2 ตัว (,,) ปกติจะเกิดเซลล์ว่าง แต่กำหนด ignore_empty=TRUE จึงข้ามไป

fx
=TEXTSPLIT("A,,B", ",", , TRUE)

ผลลัพธ์A | B
ตัวอย่างที่ 5: แยก 2 มิติแล้วเติมช่องว่างที่ขาด (pad_with)TEXTSPLIT("เดือน1|A,B,C"&CHAR(10)&"เดือน2|D,E", ",", CHAR(10), , , "")

เมื่อแยกทั้งแนวคอลัมน์และแถวพร้อมกัน แต่ละบรรทัดมีจำนวนค่าไม่เท่ากัน ปกติ Excel จะเติม #N/A ในช่องที่ขาด แต่กำหนด pad_with="" ให้เติมสตริงว่างแทน จะได้ตารางที่ดูสะอาดกว่า

fx
=TEXTSPLIT("เดือน1|A,B,C"&CHAR(10)&"เดือน2|D,E", ",", CHAR(10), , , "")

ผลลัพธ์A,B,C ในแถวแรก / D,E,"" ในแถวสอง (แทนที่จะเป็น #N/A)

FAQs

TEXTSPLIT ต่างจาก Text to Columns อย่างไร?+

TEXTSPLIT เป็นสูตรที่อัปเดตอัตโนมัติเมื่อข้อมูลต้นทางเปลี่ยน (Dynamic) ส่วน Text to Columns เป็นเครื่องมือที่ทำครั้งเดียวจบ (Static) และทับข้อมูลเดิม

ใช้ใน Excel 2019 ได้ไหม?+

ไม่ได้ ฟังก์ชันนี้มีเฉพาะใน Excel 365, Excel 2021 และ Excel for the web เท่านั้น

ทำไมผลลัพธ์บางเซลล์ขึ้น #N/A?+

เกิดเมื่อแยกทั้งคอลัมน์และแถวพร้อมกัน (2 มิติ) แล้วแต่ละบรรทัดมีจำนวนชิ้นไม่เท่ากัน Excel ต้องเติมช่องที่ขาดเพื่อให้เป็นตารางสี่เหลี่ยม และค่าเริ่มต้นที่ใช้เติมคือ #N/A ถ้าไม่อยากเห็น ให้กำหนด pad_with เป็นค่าอื่น เช่น "" หรือ 0

ทำไมสูตรขึ้น #VALUE!?+

ส่วนใหญ่เกิดจากปล่อยช่อง text ว่างไว้ หรือไม่ได้ระบุตัวคั่นเลยทั้ง col_delimiter และ row_delimiter (ต้องมีอย่างน้อยหนึ่งตัว) อีกสาเหตุที่พบบ่อยคือพิมพ์เครื่องหมายคำพูดโค้ง (" ") จาก Word แทนที่จะเป็นคำพูดตรง (") ทำให้ Excel อ่านสูตรไม่ออก

match_mode ช่วยอะไรได้บ้าง?+

ควบคุมว่าตัวคั่นต้องตรงตัวพิมพ์เล็ก-ใหญ่หรือไม่ เช่น =TEXTSPLIT("AxBxC","x",,,0) จะแยกตรง x ตัวเล็กเท่านั้น แต่ถ้าข้อความมี X ตัวใหญ่ปนอยู่ด้วยและต้องการแยกทั้งคู่ ให้ตั้ง match_mode=1

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ TEXTSPLIT จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้TEXTSPLITText
Text (8)
ARRAYTOTEXT

ฟังก์ชันที่แปลงอาร์เรย์หรือช่วงเซลล์ให้เป็นข้อความเดียว โดยสามารถเลือกรูปแบบการแสดงผล (อ่านง่ายหรือ Strict Format)

DETECTLANGUAGE

ฟังก์ชัน Microsoft 365 ที่ตรวจจับภาษาของข้อความในเซลล์ แล้วคืนค่าเป็นรหัสภาษา (เช่น "th", "en", "es") ใช้คู่กับ TRANSLATE เพื่อแปลภาษาแบบอัตโนมัติ

FIND

FIND ค้นหาตำแหน่งเริ่มต้นของคำที่ต้องการภายในข้อความหลัก โดยสนใจตัวพิมพ์เล็ก-ใหญ่ (เช่น "A" ไม่เหมือนกับ "a") ถ้าค้นหาไม่เจอจะคืนค่า Error #VALUE! มักใช้ร่วมกับ MID, LEFT, RIGHT เพื่อตัดคำตามตำแหน่ง

MID

MID ตัดข้อความออกจากตำแหน่งเริ่มต้นที่คุณกำหนด โดยระบุความยาวของข้อความที่ต้องการ สะดวกมากสำหรับดึงข้อมูลบางส่วนจากข้อความที่ยาว เช่น รหัสสินค้า, รหัสพนักงาน, หรือวันที่ที่ฝังตัวในข้อความ

TEXT

TEXT ใช้รหัสรูปแบบ (Format Codes) เช่น "dd/mm/yyyy" สำหรับวันที่ หรือ "#,##0.00" สำหรับตัวเลขมีทศนิยม ผลลัพธ์ที่ได้จะเป็นข้อความ (Text) เสมอ ไม่สามารถนำไปคำนวณต่อได้

TEXTAFTER

TEXTAFTER ดึงข้อความหลังจากตัวคั่นที่ระบุ รองรับการเลือกลำดับตัวคั่น (instance_num) การค้นหาแบบ case-insensitive (match_mode) และค่า default เมื่อไม่พบ (if_not_found) ทำให้แยกข้อมูลได้ง่ายกว่า MID+FIND ใช้คู่กับ TEXTBEFORE TEXTSPLIT

TEXTBEFORE

TEXTBEFORE ดึงข้อความก่อนหน้าตัวคั่นที่ระบุ รองรับการเลือกลำดับตัวคั่น (instance_num) การค้นหาแบบ case-insensitive (match_mode) และค่า default เมื่อไม่พบ (if_not_found) ทำให้แยกข้อมูลได้ง่ายกว่า LEFT+FIND ใช้คู่กับ TEXTAFTER TEXTSPLIT

TEXTJOIN

TEXTJOIN รวมข้อความจากหลายเซลล์หรือทั้งช่วงเป็นข้อความเดียว โดยกำหนดตัวคั่นเองได้และสั่งข้ามเซลล์ว่างได้ในคำสั่งเดียว ต่างจาก CONCATENATE ที่ต้องพิมพ์ตัวคั่นและเชื่อมทีละเซลล์เอง งานที่ใช้บ่อยคือรวมที่อยู่หลายบรรทัด สร้างลิสต์คั่นด้วยคอมม่าไว้ส่งออก หรือรวมผลลัพธ์จาก FILTER ให้ออกมาเป็นข้อความเดียว

Web (2)
FILTERXML

FILTERXML ดึงข้อมูลเฉพาะส่วนจาก XML content โดยใช้ XPath expression เพื่อระบุตำแหน่งของข้อมูลที่ต้องการ ทำให้ง่ายในการแยกข้อมูลที่เป็นประโยชน์จากผลลัพธ์ XML ที่ส่งกลับมาจาก WEBSERVICE มักใช้ร่วมกับ WEBSERVICE และ ENCODEURL เพื่อดึงข้อมูลจาก web API

WEBSERVICE

WEBSERVICE ส่งคำขอ GET ไปยัง URL ของ web service (API) บนอินเทอร์เน็ตหรือ Intranet และส่งกลับข้อมูลที่ได้รับ ใช้เพื่อดึงข้อมูลแบบ real-time เช่น ราคาหุ้น อัตราแลกเปลี่ยน ข้อมูลสภาพอากาศ โดยปกติใช้ร่วมกับ FILTERXML เพื่อแยกข้อมูลที่ต้องการจากผลลัพธ์ XML และกับ ENCODEURL เพื่อเข้ารหัส URL ให้ปลอดภัย

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่