Thep Excel

Text.Start – ดึงอักขระจากตัวแรกของข้อความ

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

=Text.Start(text as nullable text, count as number) as nullable text

By ThepExcel AI Agent
4 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=Text.Start(text as nullable text, count as number) as nullable text

Argument Type Required Default Description
text nullable text Yes ข้อความต้นฉบับที่ต้องการดึงอักขระ
count number Yes จำนวนอักขระที่ต้องการดึงจากตัวแรก (ต้องเป็นจำนวนเต็มบวก)

How it works

ดึงชื่อสกุลหรือ initials

ดึงชื่อสกุลหรือ initials

ดึงรหัสประเภทหรือ prefix

ดึงรหัสประเภทหรือ prefix

สกัดชื่อหรือรหัสจากข้อมูลเต็ม

สกัดชื่อหรือรหัสจากข้อมูลเต็ม

Examples

ดึง 5 ตัวแรกจากข้อความ
Text.Start("Hello, World!", 5)
ดึงอักขระ 5 ตัวแรกจากข้อความ 'Hello, World!' ได้ 'Hello' (นับว่างด้วยครับ)
Power Query Formula:

= Text.Start("Hello, World!", 5)

Result:

"Hello"

ดึง Prefix จากรหัสสินค้า
let ProductCodes = {"TX-2025-001", "NY-2025-002", "CA-2025-003"}, GetCategory = List.Transform(ProductCodes, each Text.Start(_, 2)) in GetCategory
ดึง 2 ตัวแรกจากรหัสสินค้า เป็น category (TX, NY, CA) ใช้ List.Transform แล้วลูป each ตัวอักขระ
Power Query Formula:

let
    ProductCodes = {"TX-2025-001", "NY-2025-002", "CA-2025-003"},
    GetCategory = List.Transform(ProductCodes, each Text.Start(_, 2))
in
    GetCategory

Result:

{"TX", "NY", "CA"}

สร้าง Email Address จากชื่อ-สกุล
let People = Table.FromRows({{"Douglas", "Elis"}, {"Ana", "Jorayew"}}, {"FirstName", "LastName"}), WithEmail = Table.AddColumn(People, "Email", each Text.Combin…
สร้าง email โดยดึง 4 ตัวแรกของชื่อ + 3 ตัวแรกของสกุล + domain ใช้ Text.Combine รวมสตริง
Power Query Formula:

let
    People = Table.FromRows({{"Douglas", "Elis"}, {"Ana", "Jorayew"}}, {"FirstName", "LastName"}),
    WithEmail = Table.AddColumn(People, "Email", each Text.Combine({Text.Start([FirstName], 4), Text.Start([LastName], 3), "@contoso.com"}))
in
    WithEmail

Result:

Table with column Email = {"DougEli@contoso.com", "AnaJor@contoso.com"}

ดึง Month Code จากวันที่
let Dates = {"2025-01-15", "2025-02-20", "2025-03-10"}, MonthCodes = List.Transform(Dates, each "M-" & Text.Start(_, 7)) in MonthCodes
ดึง 7 ตัวแรกจากวันที่ (ปี-เดือน) แล้วเพิ่ม 'M-' นำหน้า เอาไว้ใช้เป็น Month Code
Power Query Formula:

let
    Dates = {"2025-01-15", "2025-02-20", "2025-03-10"},
    MonthCodes = List.Transform(Dates, each "M-" & Text.Start(_, 7))
in
    MonthCodes

Result:

{"M-2025-01", "M-2025-02", "M-2025-03"}

FAQs

จะเกิดอะไรถ้า count มากกว่าความยาวของข้อความ?

ถ้า count มากกว่าความยาวของข้อความ ฟังก์ชันจะคืนค่าข้อความทั้งหมด เช่น Text.Start(“Hi”, 10) ก็คืน “Hi” ครับ

Text.Start จะนับเว้นวรรค (space) ด้วยหรือไม่?

ใช่ครับ เว้นวรรคจะนับเป็นอักขระ 1 ตัว เช่น Text.Start(“Hello World”, 6) = “Hello ” (มี space)

ความแตกต่างระหว่าง Text.Start และ Text.Range คืออะไร?

Text.Start ดึงจากตัวแรก แต่ Text.Range ดึงจากตำแหน่งใดก็ได้ ถ้าอยากเริ่มจาก index 3 ต้องใช้ Text.Range

ถ้าข้อความเป็น null จะเกิดอะไร?

ถ้าข้อความเป็น null ฟังก์ชันจะคืนค่า null ป้อง error ทั้งนี้ต้องเช็คด้วย each [Column] null ก่อนครับ

Resources & Related

Additional Notes

Text.Start(text, count) ดึงอักขระ count ตัวแรกจากข้อความต้นฉบับ คืนค่าเป็น text

ที่เจ๋งคือ Text.Start ใช้ทำงานร่วมกับ Text.End ได้ดี เอาส่วนแรกและส่วนท้ายมารวมกัน ก็ได้ข้อมูลแบบ “First 3 – Last 3” แบบนี้ครับ

ส่วนตัวผม Text.Start มักใช้เพื่อดึง prefix ของข้อมูล เช่น ดึง 2 ตัวแรกจากรหัสสินค้า เป็น category ซะ ทำให้โค้ดสั้นลง 😎

Leave a Reply

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