คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

TEXTBEFORE

ข้อความระดับกลางExcel 2024+ไม่มีใน Excel 2016–2021

อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด บางช่องใช้ผลจาก LibreOffice และตรงกับตัวคำนวณของหน้าเว็บ

TEXTBEFORE คืออะไร

ดึงข้อความที่อยู่ก่อนตัวคั่นที่กำหนด เช่น ชื่อก่อนเว้นวรรค หรือชื่อผู้ใช้ก่อน @ ในอีเมล

ใช้เมื่อไหร่

  • ดึงชื่อจากคอลัมน์ชื่อ-นามสกุล
  • ดึงชื่อผู้ใช้จากอีเมล หรือรหัสส่วนหน้าที่อยู่ก่อนขีด
  • ตัดส่วนท้ายที่ไม่ต้องการ เช่น ขนาดบรรจุในวงเล็บ หรือรหัสไปรษณีย์ท้ายที่อยู่

รูปแบบสูตร

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

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
textจำเป็นข้อความที่ต้องการค้น ใช้ wildcard ไม่ได้
delimiterจำเป็นตัวคั่น เอาข้อความที่อยู่ก่อนตัวคั่นนี้ หลายตัวใส่เป็น {" ",","}
[instance_num]ไม่บังคับตัวคั่นตัวที่เท่าไร ค่าเริ่มต้น 1 · ค่าติดลบนับจากท้ายข้อความ
[match_mode]ไม่บังคับ0 (ค่าเริ่มต้น) ตัวพิมพ์เล็กใหญ่ต้องตรง · 1 ไม่สนตัวพิมพ์เล็กใหญ่
[match_end]ไม่บังคับ0 (ค่าเริ่มต้น) · 1 ถือว่าท้ายข้อความเป็นตัวคั่นด้วย
[if_not_found]ไม่บังคับค่าที่แสดงเมื่อหาตัวคั่นไม่พบ ถ้าไม่ใส่จะได้ #N/A

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

เอาข้อความใน B ที่อยู่ก่อนเว้นวรรคแรก ได้ชื่อของผู้ติดต่อในคอลัมน์ D

I5
=TEXTBEFORE(I4," ")
ข้อความต้นทาง (text) I4 = "สมชาย ใจดี" ยาว 10 ตัวอักษร
แถวABCDEF
4ร้านค้าผู้ติดต่ออีเมลชื่อ
5สุขใจมาร์ท สาขาจตุจักรวรรณา ศรีอ่อนwanna.s@sukjai.example.comวรรณา
6สุขใจมาร์ท สาขาศรีราชาธนพล ใจกว้างthanaphon.j@sukjai.example.comธนพล
7ครัวคุณแม่อัญชลี พรหมวงศ์anchalee.p@kruamae.example.comอัญชลี
8บ้านสวนซูเปอร์ สาขาหาดใหญ่สมบัติ ทองสุขsombat.t@baansuan.example.comสมบัติ
9มินิมาร์ทป้าจิตจิตรา ชัยประเสริฐjittra.c@pajit.example.comจิตรา
10เจริญพาณิชย์ สาขาเชียงใหม่กฤษดา อินทร์แก้วkritsada.i@charoen.example.comกฤษดา
11
12
13
14
15
16
17
18
19
ช่องกรอกและผลลัพธ์
ชื่อ I5
ขั้นตอนการคำนวณ (4)
คลิกช่องสีเขียวมะนาวในตารางเพื่อดูสูตรของแถวนั้น · คลิกตัวเลขเพื่อแก้ค่า · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 ดึงชื่อ” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร D5: หาเว้นวรรคแรกใน B5 แล้วเอาข้อความทั้งหมดที่อยู่ก่อนหน้า
  • ลองพิมพ์ชื่อของคุณใน I4 แล้วดูผลที่ I5
  • ถ้าข้อมูลมีเว้นวรรคเกินหน้าข้อความ จะได้ข้อความว่าง ทำความสะอาดด้วย TRIM ก่อน

ตัวอย่างทั้งหมด 4 แบบ

  1. 1ดึงชื่อจากชื่อ-นามสกุล · เอาข้อความใน B ที่อยู่ก่อนเว้นวรรคแรก ได้ชื่อของผู้ติดต่อในคอลัมน์ D
  2. 2แยกชื่อสินค้ากับขนาดบรรจุในวงเล็บ · ตัดชื่อสินค้าตรง " (" และดึงขนาดบรรจุในวงเล็บด้วย TEXTBEFORE ซ้อน TEXTAFTER
  3. 3ตัดรหัสไปรษณีย์ท้ายที่อยู่ออก · instance_num = -1 นับเว้นวรรคจากท้ายข้อความ จึงตัดตรงหน้ารหัสไปรษณีย์พอดี
  4. 4ตัดชื่อสาขาออก แม้บางร้านไม่มีคำว่า สาขา · ร้านที่ไม่มีคำว่า สาขา หาตัวคั่นไม่พบ ใส่ if_not_found เพื่อใช้ชื่อเดิมแทน #N/A

ข้อผิดพลาดที่พบบ่อย

#N/Aสาเหตุ: ไม่มีตัวคั่นในข้อความ หรือ instance_num มากกว่าจำนวนตัวคั่นที่มีแก้: ใส่ if_not_found หรือ match_end = 1
#VALUE!สาเหตุ: instance_num เป็น 0 หรือมากกว่าความยาวข้อความแก้: ใช้ 1, 2, … หรือค่าติดลบ -1, -2, …
ได้ข้อความว่าง หรือมีเว้นวรรคค้างสาเหตุ: ข้อมูลมีเว้นวรรคเกิน หรือตัวคั่นไม่รวมเว้นวรรคแก้: ทำความสะอาดด้วย TRIM หรือใส่เว้นวรรคในตัวคั่น เช่น " ("
#NAME?สาเหตุ: เปิดใน Excel 2016–2021 ที่ไม่มี TEXTBEFOREแก้: ใช้ LEFT กับ FIND ดูชีต Excel 2016-2021

เคล็ดลับจากห้องเรียน

ต้องการทุกอย่างก่อนคำสุดท้าย ใช้ instance_num = -1 ไม่ต้องนับว่ามีกี่คำ
ข้อความระหว่างตัวคั่นสองตัว ใช้ TEXTBEFORE ครอบ TEXTAFTER เช่น ข้อความในวงเล็บ
Excel 2016–2021 ใช้ =LEFT(B5,FIND(" ",B5)-1) แทน TEXTBEFORE(B5," ")

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
TEXTBEFORE

ใช้ Excel 2016, 2019 หรือ 2021 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างบนหน้านี้ และมีในชีต “Excel 2016-2021” ของไฟล์ฝึก

แทนตัวอย่างสูตรทางเลือก
ตัวอย่าง 1 ชื่อ=LEFT(B5,FIND(" ",B5)-1)
ตัวอย่าง 2 ชื่อสินค้า=LEFT(B5,FIND(" (",B5)-1)
ตัวอย่าง 2 ขนาดบรรจุ=MID(B5,FIND("(",B5)+1,FIND(")",B5)-FIND("(",B5)-1)
ตัวอย่าง 3 ก่อนเว้นวรรคสุดท้าย=LEFT(B5,FIND("|",SUBSTITUTE(B5," ","|",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)
ตัวอย่าง 4 ไม่พบให้ใช้ชื่อเดิม=IFERROR(LEFT(B5,FIND(" สาขา",B5)-1),B5)

เลือกฟังก์ชันให้ถูกงาน

ฟังก์ชันใช้เมื่อตัวอย่าง
TEXTBEFOREเอาข้อความก่อนตัวคั่น (Excel 2024 ขึ้นไป)=TEXTBEFORE(B5," ")
TEXTAFTERเอาข้อความหลังตัวคั่น=TEXTAFTER(B5," ")
TEXTSPLITแยกทุกชิ้นออกเป็นหลายช่อง=TEXTSPLIT(B5," ")
LEFT + FINDทำแบบเดียวกันได้ทุกเวอร์ชัน=LEFT(B5,FIND(" ",B5)-1)

ใน Power BI ใช้อะไร

แบบ 4 · ควรทำใน Power QueryPower Query: Split Column, Extract

แยกข้อความเป็นงานเตรียมข้อมูล ทำใน Power Query ก่อนโหลดเข้าโมเดล

ไฟล์ฝึก TEXTBEFORE

9Expert-TEXTBEFORE-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 32 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 ดึงชื่อ2 ตัดวงเล็บ3 นับจากท้าย4 ไม่มีตัวคั่นแบบฝึกหัดเฉลยสรุปย่อExcel 2016-2021

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1ชื่อผู้ใช้ (ข้อความก่อน @) ของอีเมลในช่อง I7
  2. ข้อ 2ชื่อร้านในช่อง G9 โดยไม่เอาคำว่า สาขา และชื่อสาขา
  3. ข้อ 3ชื่อร้านในช่อง G10 โดยตัดคำว่า สาขา ถ้าไม่มีคำนี้ให้ใช้ชื่อเดิมทั้งหมด
  4. ข้อ 4ที่อยู่ในช่อง C10 โดยไม่เอารหัสไปรษณีย์ (ข้อความก่อนเว้นวรรคสุดท้าย)
  5. ข้อ 5ชื่อร้านในโดเมนของอีเมลช่อง I11 (ข้อความระหว่าง @ กับจุดแรก)

วิดีโอประกอบ

คลิปเรื่อง TEXTBEFORE จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

แบบทดสอบ 3 ข้อ

1. =TEXTBEFORE("SF-2025-0734","-") ได้อะไร

2. =TEXTBEFORE("SF-2025-0734","-",-1) ได้อะไร

3. ข้อความไม่มีตัวคั่น และไม่ได้ใส่ if_not_found จะได้อะไร

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม