Thep Excel

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

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

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

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

อัปเดต 4 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
text nullable text ข้อความต้นฉบับที่ต้องการดึงอักขระ
count number จำนวนอักขระที่ต้องการดึงจากตัวแรก (ต้องเป็นจำนวนเต็มบวก)

Additional Notes

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

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

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

How it works

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

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

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

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

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

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

Examples

ดึง 5 ตัวแรกจากข้อความText.Start("Hello, World!", 5)

ดึงอักขระ 5 ตัวแรกจากข้อความ 'Hello, World!' ได้ 'Hello' (นับว่างด้วยครับ)

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

ผลลัพธ์"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 ตัวอักขระ

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

ผลลัพธ์{"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 รวมสตริง

fx
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

ผลลัพธ์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

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

ผลลัพธ์{"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

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

ฟังก์ชันนี้Text.StartText functions
Text functions (6)
Text.At

Text.At ใช้สำหรับดึงอักขระตัวเดียวที่ตำแหน่งที่ระบุในข้อความ โดยใช้การนับ zero-based index ที่ตำแหน่ง 0 คือตัวแรก ตำแหน่ง 1 คือตัวที่สอง เป็นต้น

Text.BeforeDelimiter

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

Text.End

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

Text.Length

Text.Length ใช้นับจำนวนตัวอักษรทั้งหมดในสตริงข้อความ รวมถึงช่องว่างและอักขระพิเศษ ผลลัพธ์คืนค่าเป็นตัวเลข มีประโยชน์ในการตรวจสอบคุณภาพข้อมูล การกรองข้อมูลตามความยาว หรือการคำนวณ Logic ต่างๆ

Text.Middle

Text.Middle ใช้สำหรับดึงข้อความตั้งแต่ตำแหน่งที่ระบุไปจำนวนอักขระที่กำหนด หากไม่ระบุจำนวนตัวอักษร จะดึงจากตำแหน่งเริ่มต้นไปถึงท้าย

Text.Range

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

Comments

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