Thep Excel

Text.BeforeDelimiterดึงข้อความก่อนตัวคั่น

Text.BeforeDelimiter ดึงข้อความส่วนที่อยู่ก่อนตัวคั่นที่กำหนด พร้อมตัวเลือกระบุตัวคั่นตัวไหน

fx
=Text.BeforeDelimiter(text, delimiter, [index]) as any

ความนิยม6/10
ความยาก3/10
ประโยชน์6/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text text ข้อความต้นทางที่ต้องการดึงข้อมูล
delimiter text ตัวคั่นที่ใช้ในการแยก เช่น ‘.’ หรือ ‘-‘ หรือ ‘@’
[index]ไม่บังคับ number or list 0 (ตัวแรก) ตัวเลือก: ระบุตัวคั่นตัวไหน (0-based) หรือใช้รูปแบบ {occurrence, RelativePosition.FromStart|FromEnd}

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

Additional Notes

Text.BeforeDelimiter(text, delimiter, [index]) ใช้สำหรับดึงข้อความก่อนหน้าตัวคั่นที่กำหนด

ที่เจ๋งคือมันสามารถระบุตัวคั่นตัวไหนได้ เช่นถ้าข้อความมีหลายตัวคั่น ผมจะดึงข้อความก่อนตัวคั่นตัวที่สอง หรือนับจากท้ายสุดก็ได้

ส่วนตัวผมชอบใช้คู่กับ Text.AfterDelimiter เพื่อแยกข้อมูล เช่นแยกชื่อจากอีเมล (john.doe@company.com) ออกมาเป็น John.Doe ได้เลย 😎

Examples

ตัวอย่างพื้นฐาน – ดึงข้อความก่อนจุดText.BeforeDelimiter("John.Doe", ".")

ดึงข้อความก่อนจุด (.) ตัวแรก จึงได้ 'John'

fx
=Text.BeforeDelimiter("John.Doe", ".")

ผลลัพธ์"John"
ใช้กับข้อมูลตัวเลข – ดึงส่วนแรกText.BeforeDelimiter("111-222-333", "-")

ดึงข้อความก่อนเครื่องหมายลบ (-) ตัวแรก จึงได้ '111'

fx
=Text.BeforeDelimiter("111-222-333", "-")

ผลลัพธ์"111"
ดึงข้อมูลก่อนตัวคั่นตัวที่สองText.BeforeDelimiter("111-222-333", "-", 1)

ระบุ index=1 เพื่อหาตัวคั่นตัวที่สอง จึงได้ '111-222' (รวมตัวคั่นตัวแรก)

fx
=Text.BeforeDelimiter("111-222-333", "-", 1)

ผลลัพธ์"111-222"
แยกโดเมนจากอีเมลText.BeforeDelimiter("john.doe@company.com", "@")

ดึงข้อความก่อน @ จึงได้ชื่อผู้ใช้จากที่อยู่อีเมล

fx
=Text.BeforeDelimiter("john.doe@company.com", "@")

ผลลัพธ์"john.doe"
นับตัวคั่นจากท้ายสุดText.BeforeDelimiter("path/to/file.txt", ".", {0, RelativePosition.FromEnd})

ใช้ RelativePosition.FromEnd เพื่อนับจากท้ายสุด ได้ส่วนที่ไม่รวมนามสกุลไฟล์

fx
=Text.BeforeDelimiter("path/to/file.txt", ".", {0, RelativePosition.FromEnd})

ผลลัพธ์"path/to/file"
ใช้ในตารางเต็มรูปlet Source = Table.FromRows( {{"Alice.Smith"}, {"Bob.Johnson"}, {"Carol.White"}}, {"FullName"} ), AddFirstName = Table.AddColumn( Source, "FirstName", each Text…

เพิ่มคอลัมน์ใหม่ที่ใช้ Text.BeforeDelimiter เพื่อแยกชื่อหน้า

fx
let
Source = Table.FromRows(
{{"Alice.Smith"}, {"Bob.Johnson"}, {"Carol.White"}},
{"FullName"}
),
AddFirstName = Table.AddColumn(
Source,
"FirstName",
each Text.BeforeDelimiter([FullName], ".")
)
in
AddFirstName

ผลลัพธ์ตารางที่มีคอลัมน์ FirstName ที่ดึงชื่อหน้าจาก FullName

FAQs

ถ้าข้อความไม่มีตัวคั่นจะเกิดอะไร?+

ฟังก์ชันจะคืนค่าข้อความทั้งหมดเอง ไม่มีข้อผิดพลาด

ต่างกับ Text.Split อย่างไร?+

Text.Split ตัดข้อความออกเป็นลิสต์ทั้งหมด Text.BeforeDelimiter ดึงเฉพาะส่วนหน้า

ใช้ RelativePosition ได้กับเรื่องอะไร?+

ใช้เมื่อต้องการนับตัวคั่นจากท้ายสุด เช่นแยกนามสกุลไฟล์จากที่อยู่ไฟล์

ตัวคั่นอาจเป็นสตริงยาวได้ไหม?+

ได้ เช่น Text.BeforeDelimiter("Hello—World", "—") จะได้ "Hello"

Resources & Related

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

ฟังก์ชันนี้Text.BeforeDelimiterText functions
Text functions (5)
Text.AfterDelimiter

ดึงข้อความหลังจากตัวคั่นที่กำหนด สามารถเลือกว่าจะใช้ตัวคั่นที่ 1, 2, 3 เป็นต้น

Text.BetweenDelimiters

ดึงข้อความที่อยู่ระหว่างตัวคั่น 2 ตัว

Text.End

Text.End ใช้สำหรับดึงอักขระจำนวนที่ระบุจากท้ายสตริงข้อความ เป็นประโยชน์สำหรับการดึงนามสกุลไฟล์ และส่วนท้ายของข้อมูล

Text.Split

Text.Split(text, separator) ใช้แยกข้อความเป็น List โดยอิงตามตัวคั่น (delimiter) ที่ระบุ สามารถใช้ตัวคั่นเพียงตัวเดียวหรือหลายตัวอักษร เช่น "|" หรือ ", the " ผลลัพธ์คืนค่าเป็น List ของข้อความ

Text.Start

Text.Start ดึงอักขระจำนวนที่กำหนดจากตัวแรกของสตริงข้อความ ใช้สำหรับดึงชื่อย่อ รหัส หรือส่วนแรกของข้อมูล

Comments

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