Text.EndsWith ตรวจสอบว่าข้อความหลักลงท้ายด้วยข้อความย่อย (substring) ที่กำหนดหรือไม่ คืนค่า true หากตรงกัน และ false หากไม่ตรงกัน สามารถใช้ Comparer เพื่อควบคุม Case Sensitivity
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| text | text (nullable) | ข้อความหลักที่ต้องการตรวจสอบว่าลงท้ายด้วยข้อความย่อยหรือไม่ | |
| substring | text | ข้อความย่อยที่ต้องการตรวจสอบการลงท้าย (ต้องไม่เป็น null) | |
| [comparer]ไม่บังคับ | function | Comparer.Ordinal (default case-sensitive) | ฟังก์ชัน Comparer สำหรับการเปรียบเทียบ เช่น Comparer.Ordinal หรือ Comparer.OrdinalIgnoreCase |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน Text.EndsWith ใน Power Query ใช้สำหรับตรวจสอบว่าข้อความหลัก ลงท้ายด้วยข้อความย่อยที่กำหนดหรือไม่ โดยคืนค่าเป็น logical (true/false)
เจ๋งของ Text.EndsWith คือสามารถใช้ร่วมกับ Comparer เพื่อควบคุมวิธีการเปรียบเทียบได้ เช่น Comparer.OrdinalIgnoreCase สำหรับการเปรียบเทียบที่ไม่สนใจ Case Sensitivity อันนี้ช่วยเยอะเวลาทำงานกับข้อมูลที่ผสมกันระหว่าง Uppercase กับ Lowercase
ส่วนตัวผมใช้ Text.EndsWith บ่อยครั้งสำหรับการกรองไฟล์ตามนามสกุล เช่น “filename.xlsx” จบด้วย “.xlsx” หรือกรองเบอร์โทรศัพท์ที่ลงท้ายด้วยหลัก specific 😎
เลือกเฉพาะไฟล์ที่ลงท้ายด้วย ".xlsx" หรือ ".csv"
ถ้าข้อความในคอลัมน์ลงท้ายด้วย "_Final" ให้ถือว่าเป็นรายงานฉบับสมบูรณ์
ข้อความ "apple" ลงท้ายด้วย "ple" จึงคืนค่า true
ข้อความ "banana" ไม่ได้ลงท้ายด้วย "nan" (ลงท้ายด้วย "ana") จึงคืนค่า false
เนื่องจากค่าเริ่มต้นเป็น Case Sensitive "Excel" ลงท้ายด้วย "cel" (ตัวพิมพ์เล็ก) ไม่ตรง จึงคืนค่า false
Comparer.OrdinalIgnoreCase ทำให้การเปรียบเทียบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ ดังนั้น "Excel" ลงท้ายด้วย "cel" (ตัวพิมพ์เล็ก) ก็ถือว่าตรง
ใช้ List.Select ร่วมกับ Text.EndsWith เพื่อกรองเฉพาะไฟล์ที่มีนามสกุล .xlsx
ใช้ Table.SelectRows ร่วมกับ Text.EndsWith เพื่อกรองเฉพาะ Email ที่ลงท้ายด้วย @company.com (ไม่สนใจ Case)
เป็น Case Sensitive ครับ เช่น Text.EndsWith("Excel", "cel") จะได้ false เพราะ "cel" (ตัวพิมพ์เล็ก) ไม่ตรงกับ "cel" ใน "Excel" ถ้าต้องการไม่สนใจ Case ต้องใช้ Comparer.OrdinalIgnoreCase
ฟังก์ชนจะคืนค่า null เพราะ text parameter เป็น nullable ถ้าต้องการหลีกเลี่ยง null ให้ใช้ ?? operator เช่น Text.EndsWith(Email ?? "", "@company.com")
Text.EndsWith ตรวจสอบการลงท้าย ส่วน Text.StartsWith ตรวจสอบการเริ่มต้น เช่น Text.EndsWith("hello.txt", ".txt") vs Text.StartsWith("hello.txt", "hello")
ไม่ได้ Text.EndsWith เป็นการตรวจสอบแบบทั่วไปเท่านั้น ถ้าต้องใช้ Regex ให้ใช้ Text.RegexTest() หรือ Text.RegexSplit() แทน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.EndsWith จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Text.Contains ใช้สำหรับตรวจสอบว่าข้อความที่กำหนด (text) มีข้อความย่อยที่ต้องการค้นหา (substring) อยู่ภายในหรือไม่ ส่งคืนค่า true หรือ false
หาตำแหน่งของข้อความย่อยในข้อความหลัก (0-indexed) โดยคืนค่า -1 หากไม่พบ
Text.StartsWith ตรวจสอบว่าข้อความหลักขึ้นต้นด้วยข้อความย่อยที่กำหนดหรือไม่ โดยคืนค่า true หรือ false สามารถระบุ Comparer เพื่อเลือกว่าจะให้ตรวจสอบแบบ Case Sensitive (ไว) หรือ Case Insensitive (ไม่ไว) ได้
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่