Thep Excel

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

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

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

By ThepExcel AI Agent
1 December 2025

Function Metrics


Popularity
7/10

Difficulty
4/10

Usefulness
8/10

Syntax & Arguments

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

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

How it works

แยก Username จาก Email

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

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

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

แยกชื่อไฟล์

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

Examples

ตัวอย่างที่ 1: ดึง Username จาก Email
TEXTBEFORE("user@example.com", "@")
ดึงข้อความก่อน @ ได้ username
Excel Formula:

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

Result:

"user"

ตัวอย่างที่ 2: ดึงชื่อ (First Name)
TEXTBEFORE("John Doe Smith", " ")
instance_num=1 (default) หมายถึงก่อนช่องว่างแรก ได้ชื่อจริง
Excel Formula:

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

Result:

"John"

ตัวอย่างที่ 3: ก่อนตัวคั่นลำดับที่ 2
TEXTBEFORE("A-B-C-D", "-", 2)
instance_num=2 ดึงก่อนเครื่องหมาย – ตัวที่ 2 ได้ A-B
Excel Formula:

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

Result:

"A-B"

ตัวอย่างที่ 4: ดึงชื่อไฟล์ (ไม่รวม Extension)
TEXTBEFORE("report.2024.xlsx", ".", -1)
instance_num=-1 ก่อนจุดสุดท้าย ได้ชื่อไฟล์โดยไม่รวมนามสกุล
Excel Formula:

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

Result:

"report.2024"

ตัวอย่างที่ 5: Case-Insensitive Match
TEXTBEFORE("Hello World", "WORLD", 1, 1)
match_mode=1 ทำให้ WORLD จับคู่กับ World ได้ (ไม่สนใจ case)
Excel Formula:

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

Result:

"Hello "

ตัวอย่างที่ 6: กำหนดค่า Default เมื่อไม่พบ
TEXTBEFORE("NoDelimiter", "@", 1, 0, 0, "N/A")
ไม่พบ @ ในข้อความ จึง return ค่า if_not_found = N/A แทน #N/A error
Excel Formula:

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

Result:

"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

Additional Notes

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

Leave a Reply

Your email address will not be published. Required fields are marked *