TEXTBEFORE
อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด บางช่องใช้ผลจาก LibreOffice และตรงกับตัวคำนวณของหน้าเว็บ
TEXTBEFORE คืออะไร
ดึงข้อความที่อยู่ก่อนตัวคั่นที่กำหนด เช่น ชื่อก่อนเว้นวรรค หรือชื่อผู้ใช้ก่อน @ ในอีเมล
ใช้เมื่อไหร่
- ดึงชื่อจากคอลัมน์ชื่อ-นามสกุล
- ดึงชื่อผู้ใช้จากอีเมล หรือรหัสส่วนหน้าที่อยู่ก่อนขีด
- ตัดส่วนท้ายที่ไม่ต้องการ เช่น ขนาดบรรจุในวงเล็บ หรือรหัสไปรษณีย์ท้ายที่อยู่
รูปแบบสูตร
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
| แถว | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 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 |
ขั้นตอนการคำนวณ (4)
- อ่านสูตร D5: หาเว้นวรรคแรกใน B5 แล้วเอาข้อความทั้งหมดที่อยู่ก่อนหน้า
- ลองพิมพ์ชื่อของคุณใน I4 แล้วดูผลที่ I5
- ถ้าข้อมูลมีเว้นวรรคเกินหน้าข้อความ จะได้ข้อความว่าง ทำความสะอาดด้วย TRIM ก่อน
ตัวอย่างทั้งหมด 4 แบบ
- 1ดึงชื่อจากชื่อ-นามสกุล · เอาข้อความใน B ที่อยู่ก่อนเว้นวรรคแรก ได้ชื่อของผู้ติดต่อในคอลัมน์ D
- 2แยกชื่อสินค้ากับขนาดบรรจุในวงเล็บ · ตัดชื่อสินค้าตรง " (" และดึงขนาดบรรจุในวงเล็บด้วย TEXTBEFORE ซ้อน TEXTAFTER
- 3ตัดรหัสไปรษณีย์ท้ายที่อยู่ออก · instance_num = -1 นับเว้นวรรคจากท้ายข้อความ จึงตัดตรงหน้ารหัสไปรษณีย์พอดี
- 4ตัดชื่อสาขาออก แม้บางร้านไม่มีคำว่า สาขา · ร้านที่ไม่มีคำว่า สาขา หาตัวคั่นไม่พบ ใส่ if_not_found เพื่อใช้ชื่อเดิมแทน #N/A
ข้อผิดพลาดที่พบบ่อย
เคล็ดลับจากห้องเรียน
ใช้กับ Excel ของคุณได้ไหม
| เวอร์ชัน | Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 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 ใช้อะไร
แยกข้อความเป็นงานเตรียมข้อมูล ทำใน Power Query ก่อนโหลดเข้าโมเดล
ไฟล์ฝึก TEXTBEFORE
9Expert-TEXTBEFORE-Practice-v1.2.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1ชื่อผู้ใช้ (ข้อความก่อน @) ของอีเมลในช่อง I7
- ข้อ 2ชื่อร้านในช่อง G9 โดยไม่เอาคำว่า สาขา และชื่อสาขา
- ข้อ 3ชื่อร้านในช่อง G10 โดยตัดคำว่า สาขา ถ้าไม่มีคำนี้ให้ใช้ชื่อเดิมทั้งหมด
- ข้อ 4ที่อยู่ในช่อง C10 โดยไม่เอารหัสไปรษณีย์ (ข้อความก่อนเว้นวรรคสุดท้าย)
- ข้อ 5ชื่อร้านในโดเมนของอีเมลช่อง I11 (ข้อความระหว่าง @ กับจุดแรก)
วิดีโอประกอบ
ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน
เปิดใน YouTubeแบบทดสอบ 3 ข้อ
1. =TEXTBEFORE("SF-2025-0734","-") ได้อะไร
instance_num มีค่าเริ่มต้นเป็น 1 จึงตัดตรงขีดแรก
2. =TEXTBEFORE("SF-2025-0734","-",-1) ได้อะไร
ค่าติดลบนับตัวคั่นจากท้าย จึงตัดตรงขีดสุดท้าย
3. ข้อความไม่มีตัวคั่น และไม่ได้ใส่ if_not_found จะได้อะไร
Microsoft ระบุว่าได้ #N/A เมื่อหาตัวคั่นไม่พบ ใส่ if_not_found หรือ match_end = 1 เพื่อเปลี่ยนผล
ไปต่อ
ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)