Thep Excel

Text.EndsWithตรวจสอบว่าข้อความลงท้ายด้วยข้อความย่อยหรือไม่

Text.EndsWith ตรวจสอบว่าข้อความหลักลงท้ายด้วยข้อความย่อย (substring) ที่กำหนดหรือไม่ คืนค่า true หากตรงกัน และ false หากไม่ตรงกัน สามารถใช้ Comparer เพื่อควบคุม Case Sensitivity

fx
=Text.EndsWith(text, substring, [comparer]) as nullable logical

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

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text text (nullable) ข้อความหลักที่ต้องการตรวจสอบว่าลงท้ายด้วยข้อความย่อยหรือไม่
substring text ข้อความย่อยที่ต้องการตรวจสอบการลงท้าย (ต้องไม่เป็น null)
[comparer]ไม่บังคับ function Comparer.Ordinal (default case-sensitive) ฟังก์ชัน Comparer สำหรับการเปรียบเทียบ เช่น Comparer.Ordinal หรือ Comparer.OrdinalIgnoreCase

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

Additional Notes

ฟังก์ชัน Text.EndsWith ใน Power Query ใช้สำหรับตรวจสอบว่าข้อความหลัก ลงท้ายด้วยข้อความย่อยที่กำหนดหรือไม่ โดยคืนค่าเป็น logical (true/false)

เจ๋งของ Text.EndsWith คือสามารถใช้ร่วมกับ Comparer เพื่อควบคุมวิธีการเปรียบเทียบได้ เช่น Comparer.OrdinalIgnoreCase สำหรับการเปรียบเทียบที่ไม่สนใจ Case Sensitivity อันนี้ช่วยเยอะเวลาทำงานกับข้อมูลที่ผสมกันระหว่าง Uppercase กับ Lowercase

ส่วนตัวผมใช้ Text.EndsWith บ่อยครั้งสำหรับการกรองไฟล์ตามนามสกุล เช่น “filename.xlsx” จบด้วย “.xlsx” หรือกรองเบอร์โทรศัพท์ที่ลงท้ายด้วยหลัก specific 😎

How it works

กรองข้อมูลตามนามสกุลไฟล์

เลือกเฉพาะไฟล์ที่ลงท้ายด้วย ".xlsx" หรือ ".csv"

จัดหมวดหมู่ข้อมูล

ถ้าข้อความในคอลัมน์ลงท้ายด้วย "_Final" ให้ถือว่าเป็นรายงานฉบับสมบูรณ์

Examples

ตัวอย่างที่ 1: ตรวจสอบการลงท้ายแบบพื้นฐานText.EndsWith("apple", "ple")

ข้อความ "apple" ลงท้ายด้วย "ple" จึงคืนค่า true

fx
=Text.EndsWith("apple", "ple")

ผลลัพธ์true
ตัวอย่างที่ 2: ไม่ลงท้ายด้วยข้อความที่กำหนดText.EndsWith("banana", "nan")

ข้อความ "banana" ไม่ได้ลงท้ายด้วย "nan" (ลงท้ายด้วย "ana") จึงคืนค่า false

fx
=Text.EndsWith("banana", "nan")

ผลลัพธ์false
ตัวอย่างที่ 3: Case Sensitive (ค่าเริ่มต้น)Text.EndsWith("Excel", "cel")

เนื่องจากค่าเริ่มต้นเป็น Case Sensitive "Excel" ลงท้ายด้วย "cel" (ตัวพิมพ์เล็ก) ไม่ตรง จึงคืนค่า false

fx
=Text.EndsWith("Excel", "cel")

ผลลัพธ์false
ตัวอย่างที่ 4: ใช้ Comparer.OrdinalIgnoreCase สำหรับการเปรียบเทียบไม่สนใจ CaseText.EndsWith("Excel", "cel", Comparer.OrdinalIgnoreCase)

Comparer.OrdinalIgnoreCase ทำให้การเปรียบเทียบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ ดังนั้น "Excel" ลงท้ายด้วย "cel" (ตัวพิมพ์เล็ก) ก็ถือว่าตรง

fx
=Text.EndsWith("Excel", "cel", Comparer.OrdinalIgnoreCase)

ผลลัพธ์true
ตัวอย่างที่ 5: ใช้กรองไฟล์ตามนามสกุลlet Files = {"document.xlsx", "image.png", "backup.xlsx", "data.csv"}, FilteredExcel = List.Select(Files, each Text.EndsWith(_, ".xlsx")) in FilteredExcel

ใช้ List.Select ร่วมกับ Text.EndsWith เพื่อกรองเฉพาะไฟล์ที่มีนามสกุล .xlsx

fx
let
Files = {"document.xlsx", "image.png", "backup.xlsx", "data.csv"},
FilteredExcel = List.Select(Files, each Text.EndsWith(_, ".xlsx"))
in
FilteredExcel

ผลลัพธ์{"document.xlsx", "backup.xlsx"}
ตัวอย่างที่ 6: ใช้ในการกรองแถว Table สำหรับตรวจสอบ Email Domainlet Customers = Table.FromRows({{"john@company.com"}, {"jane@gmail.com"}, {"bob@company.com"}}, {"Email"}), CompanyEmails = Table.SelectRows(Customers, each Tex…

ใช้ Table.SelectRows ร่วมกับ Text.EndsWith เพื่อกรองเฉพาะ Email ที่ลงท้ายด้วย @company.com (ไม่สนใจ Case)

fx
let
Customers = Table.FromRows({{"john@company.com"}, {"jane@gmail.com"}, {"bob@company.com"}}, {"Email"}),
CompanyEmails = Table.SelectRows(Customers, each Text.EndsWith([Email], "@company.com", Comparer.OrdinalIgnoreCase))
in
CompanyEmails

ผลลัพธ์Table with 2 rows (john@company.com, bob@company.com)

FAQs

Text.EndsWith เป็น Case Sensitive หรือไม่?+

เป็น Case Sensitive ครับ เช่น Text.EndsWith("Excel", "cel") จะได้ false เพราะ "cel" (ตัวพิมพ์เล็ก) ไม่ตรงกับ "cel" ใน "Excel" ถ้าต้องการไม่สนใจ Case ต้องใช้ Comparer.OrdinalIgnoreCase

ถ้า text parameter เป็น null จะเกิดอะไร?+

ฟังก์ชนจะคืนค่า null เพราะ text parameter เป็น nullable ถ้าต้องการหลีกเลี่ยง null ให้ใช้ ?? operator เช่น Text.EndsWith(Email ?? "", "@company.com")

ส่วนต่างระหว่าง Text.EndsWith กับ Text.StartsWith คืออะไร?+

Text.EndsWith ตรวจสอบการลงท้าย ส่วน Text.StartsWith ตรวจสอบการเริ่มต้น เช่น Text.EndsWith("hello.txt", ".txt") vs Text.StartsWith("hello.txt", "hello")

สามารถใช้ Text.EndsWith กับ Pattern Matching แบบ Regex ได้ไหม?+

ไม่ได้ Text.EndsWith เป็นการตรวจสอบแบบทั่วไปเท่านั้น ถ้าต้องใช้ Regex ให้ใช้ Text.RegexTest() หรือ Text.RegexSplit() แทน

Resources & Related

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

ฟังก์ชันนี้Text.EndsWithText functions
Text functions (3)
Text.Contains

Text.Contains ใช้สำหรับตรวจสอบว่าข้อความที่กำหนด (text) มีข้อความย่อยที่ต้องการค้นหา (substring) อยู่ภายในหรือไม่ ส่งคืนค่า true หรือ false

Text.PositionOf

หาตำแหน่งของข้อความย่อยในข้อความหลัก (0-indexed) โดยคืนค่า -1 หากไม่พบ

Text.StartsWith

Text.StartsWith ตรวจสอบว่าข้อความหลักขึ้นต้นด้วยข้อความย่อยที่กำหนดหรือไม่ โดยคืนค่า true หรือ false สามารถระบุ Comparer เพื่อเลือกว่าจะให้ตรวจสอบแบบ Case Sensitive (ไว) หรือ Case Insensitive (ไม่ไว) ได้

Comments

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