Thep Excel

TEXTBEFOREดึงข้อความก่อนตัวคั่น

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

fx
=TEXTBEFORE(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])

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

อัปเดต 1 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text Text ข้อความต้นฉบับที่ต้องการดึงส่วนก่อนตัวคั่น
delimiter Text/Array ตัวคั่นที่ใช้แยก (รองรับ Array หลายตัวคั่น)
[instance_num]ไม่บังคับ Number 1 ลำดับตัวคั่นที่ต้องการ (1=แรก, -1=สุดท้าย)
[match_mode]ไม่บังคับ Number 0 0 = case-sensitive, 1 = case-insensitive
[match_end]ไม่บังคับ Number 0 0 = ไม่จับคู่ต้นข้อความ, 1 = จับคู่ต้นข้อความเป็นตัวคั่น
[if_not_found]ไม่บังคับ Text #N/A ค่าที่ return เมื่อไม่พบตัวคั่น (default = #N/A error)

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

Additional Notes

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

How it works

แยก Username จาก Email

ดึงส่วน username (john) จาก email address โดยใช้ @ เป็นตัวคั่น

แยกรหัสนำหน้า

ดึงส่วนนำหน้าของรหัสสินค้า เช่น PRD-2024-001 → PRD

แยกชื่อไฟล์

ดึงชื่อไฟล์ (ไม่รวมนามสกุล) เช่น report.xlsx → report

Examples

ตัวอย่างที่ 1: ดึง Username จาก EmailTEXTBEFORE("user@example.com", "@")

ดึงข้อความก่อน @ ได้ username

fx
=TEXTBEFORE("user@example.com", "@")

ผลลัพธ์"user"
ตัวอย่างที่ 2: ดึงชื่อ (First Name)TEXTBEFORE("John Doe Smith", " ")

instance_num=1 (default) หมายถึงก่อนช่องว่างแรก ได้ชื่อจริง

fx
=TEXTBEFORE("John Doe Smith", " ")

ผลลัพธ์"John"
ตัวอย่างที่ 3: ก่อนตัวคั่นลำดับที่ 2TEXTBEFORE("A-B-C-D", "-", 2)

instance_num=2 ดึงก่อนเครื่องหมาย – ตัวที่ 2 ได้ A-B

fx
=TEXTBEFORE("A-B-C-D", "-", 2)

ผลลัพธ์"A-B"
ตัวอย่างที่ 4: ดึงชื่อไฟล์ (ไม่รวม Extension)TEXTBEFORE("report.2024.xlsx", ".", -1)

instance_num=-1 ก่อนจุดสุดท้าย ได้ชื่อไฟล์โดยไม่รวมนามสกุล

fx
=TEXTBEFORE("report.2024.xlsx", ".", -1)

ผลลัพธ์"report.2024"
ตัวอย่างที่ 5: Case-Insensitive MatchTEXTBEFORE("Hello World", "WORLD", 1, 1)

match_mode=1 ทำให้ WORLD จับคู่กับ World ได้ (ไม่สนใจ case)

fx
=TEXTBEFORE("Hello World", "WORLD", 1, 1)

ผลลัพธ์"Hello "
ตัวอย่างที่ 6: กำหนดค่า Default เมื่อไม่พบTEXTBEFORE("NoDelimiter", "@", 1, 0, 0, "N/A")

ไม่พบ @ ในข้อความ จึง return ค่า if_not_found = N/A แทน #N/A error

fx
=TEXTBEFORE("NoDelimiter", "@", 1, 0, 0, "N/A")

ผลลัพธ์"N/A"

FAQs

TEXTBEFORE ต่างจาก LEFT+FIND อย่างไร?+

TEXTBEFORE ง่ายกว่ามาก ไม่ต้องคำนวณตำแหน่งและความยาว LEFT+FIND ต้องเขียน =LEFT(A1,FIND("@",A1)-1) ซึ่งซับซ้อนกว่าและ error หากไม่พบตัวคั่น

instance_num ลบหมายความว่าอะไร?+

instance_num ลบนับจากท้าย เช่น -1 = ตัวคั่นสุดท้าย, -2 = ตัวคั่นรองสุดท้าย เหมาะสำหรับดึงส่วนนำหน้าตัวคั่นสุดท้าย

#N/A error เกิดจากอะไร?+

เกิดเมื่อไม่พบ delimiter ในข้อความ ใช้ if_not_found กำหนดค่า default แทน error

ใช้หลาย delimiter พร้อมกันได้ไหม?+

ได้ ใส่เป็น Array เช่น =TEXTBEFORE(A1, {"-", "_"}) จะค้นหาทั้ง – และ _ ใช้ตัวที่พบก่อน

TEXTBEFORE รองรับ Excel เวอร์ชันไหน?+

Microsoft 365 และ Excel 2024 เท่านั้น ไม่รองรับ Excel 2021 หรือเก่ากว่า

Resources & Related

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

ฟังก์ชันนี้TEXTBEFOREText
Text (7)
FIND

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

LEFT

LEFT ดึงตัวอักษรจากด้านซ้ายสุดของข้อความตามจำนวนที่ต้องการ ถ้าไม่ระบุจำนวนจะดึงมา 1 ตัว ผลลัพธ์เป็น Text เสมอแม้ดึงตัวเลขออกมา

MID

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

REGEXEXTRACT

REGEXEXTRACT เป็นฟังก์ชันสำหรับดึงข้อความย่อย (Substring) ที่ตรงกับรูปแบบ Regular Expression (Regex) ที่กำหนด เหมาะสำหรับการทำ Data Cleaning ขั้นสูง

RIGHT

RIGHT จะคืนค่าเป็นข้อความ (Text) ที่ถูกตัดมาจากด้านขวาสุดของข้อความต้นฉบับตามจำนวนที่ระบุ ถ้าไม่ระบุจำนวน ฟังก์ชันจะดึงมาเพียง 1 ตัวอักษร
.
ที่เจ๋งคือสามารถใช้ร่วมกับ LEN หรือ FIND เพื่อตัดข้อความแบบไดนามิกได้ ผลลัพธ์ที่ได้จะเป็น Text เสมอ ถ้าต้องการนำไปคำนวณต่อ ต้องแปลงเป็นตัวเลขก่อนครับ

TEXTAFTER

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

TEXTSPLIT

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

Comments

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