Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| text | text | ข้อความที่ต้องการแปลงเป็นตัวพิมพ์เล็ก | |
| [culture]ไม่บังคับ | text | null | รหัสวัฒนธรรม (เช่น “en-US”, “th-TH”, “tr-TR”) เพื่อให้การแปลงเป็นไปตามกฎของภาษานั้นๆ หากไม่ระบุจะใช้ Culture เริ่มต้นของระบบ |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Text.Lower เป็นฟังก์ชันทำความสะอาดข้อมูล (Data Cleaning) ที่ใช้สำหรับแปลงตัวอักษรทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก
ที่เจ๋งคือ Text.Lower ช่วยให้เราสามารถทำการเปรียบเทียบข้อมูลแบบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (case-insensitive comparison) ได้ง่ายมาก เหมาะมากเวลาต้องจับคู่ข้อมูลจาก 2 source ที่เขียนแบบไม่เหมือนกัน
ส่วนตัวผมใช้ Text.Lower คู่กับ Table.SelectRows บ่อยมากครับ เพื่อทำให้การกรองข้อมูลนั้นไม่ไวต่อขนาดตัวอักษร ซึ่งช่วยให้เหลือความผิดพลาดที่เกิดจากตัวอักษรตัวใหญ่/เล็ก 😎
แปลงชื่อสินค้า หรือรหัสสินค้าให้เป็นตัวพิมพ์เล็กทั้งหมดเพื่อหลีกเลี่ยงปัญหาการจับคู่ข้อมูลที่แตกต่างกันด้วยตัวพิมพ์เล็ก/ใหญ่
กำหนดให้ข้อมูลในบางคอลัมน์ต้องเป็นตัวพิมพ์เล็กเสมอ เช่น ชื่อคีย์เวิร์ด
ใช้แปลงข้อความเป็นตัวพิมพ์เล็กทั้งหมดก่อนนำไปเปรียบเทียบ เพื่อให้ไม่สนใจความแตกต่างของ Case Sensitive
แปลงตัวอักษรทั้งหมดจากตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก โปรดทราบว่าช่องว่างและตัวเลขไม่เปลี่ยนแปลง
ไม่ว่าต้นฉบับจะเป็นตัวพิมพ์เล็กหรือใหญ่ Text.Lower จะแปลงทั้งหมดเป็นตัวพิมพ์เล็ก ตัวเลขและช่องว่างยังคงเดิม
ส่วนตัวผมใช้แบบนี้บ่อยมากเวลาต้องทำความสะอาดข้อมูลจาก multiple sources ที่เขียนแบบไม่เหมือนกัน 😎 Table.AddColumn จะสร้างคอลัมน์ใหม่ โดยใช้ each เพื่ออ้างอิงค่าในแต่ละแถว
ที่ต้องระวังคือ Email Address นั้นมักมีความเหมือนแบบ case-insensitive ดังนั้นการแปลงเป็น lowercase ก่อนเปรียบเทียบจึงเป็นวิธีที่ดีที่สุดครับ เรียกได้ว่าเป็นเคล็ดลับการจับคู่ข้อมูลที่ผมใช้เสมอ
ในภาษาตุรกี ตัวอักษร "İ" (I with dot) มีการแปลงแตกต่างจากภาษาอังกฤษ เมื่อใช้ Culture "tr-TR" จะได้ผลลัพธ์ที่ถูกต้องตามกฎของภาษานั้นๆ นี่คือเหตุผลที่ culture parameter มีความสำคัญมากครับ
หลักการทำงานเหมือนกัน แต่ Text.Lower ใช้ใน Power Query M Language ส่วน LOWER() ใช้ใน Excel Worksheet Function นอกจากนี้ Text.Lower ยังรองรับ culture parameter เพิ่มเติมอีก
ได้ null กลับมาครับ Text.Lower รองรับ nullable text ดังนั้นหากข้อมูลเป็น null จะคืนค่า null โดยไม่เกิด error
ได้ครับ Text.Lower จะแปลงเฉพาะตัวอักษร (a-z, A-Z) ส่วนตัวเลขและ special characters จะคงเดิม ไม่เปลี่ยนแปลง
จะใช้ Culture เริ่มต้นของระบบแทนครับ โดยทั่วไปจะเป็น "en-US" ถ้าต้องการการแปลงตามกฎของภาษาอื่น ให้ระบุ culture code อย่างชัดเจนเสมอ
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.Lower จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Text.Contains ใช้สำหรับตรวจสอบว่าข้อความที่กำหนด (text) มีข้อความย่อยที่ต้องการค้นหา (substring) อยู่ภายในหรือไม่ ส่งคืนค่า true หรือ false
แปลงอักษรตัวแรกของทุกคำเป็นตัวพิมพ์ใหญ่ (Title Case) และส่วนที่เหลือเป็นตัวพิมพ์เล็ก
Text.Replace ใช้สำหรับแทนที่ทุกส่วนของข้อความเก่าในข้อความหลักด้วยข้อความใหม่ เป็น Case Sensitive และแทนที่ทีละครั้งที่เจอในข้อความทั้งหมด
กลับด้านข้อความ (Reverse String)
Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง
Text.Upper แปลงอักขระทั้งหมดในข้อความเป็นตัวอักษรใหญ่ โดยรองรับการตั้งค่า culture ต่างๆ เพื่อจัดการการแปลงที่ถูกต้องตามภาษา
Date.DayOfWeekName คืนค่าชื่อวันในสัปดาห์เป็นข้อความ เหมาะสำหรับแสดงวันจากวันที่ในรูปแบบ Monday, Tuesday เป็นต้น สามารถกำหนด culture เพื่อแปลชื่อวันเป็นภาษาต่างๆ ได้
Record.TransformFields แปลงค่าในฟิลด์ที่ระบุของเรคอร์ดโดยใช้ฟังก์ชันแปลงค่า สามารถแปลงฟิลด์เดียวหรือหลายฟิลด์พร้อมกันได้ เหมาะสำหรับการทำความสะอาดข้อมูลและการแปลงประเภทข้อมูล
Table.TransformColumnNames ใช้ฟังก์ชันแปลงชื่อ (Name Generator) เพื่อเปลี่ยนชื่อคอลัมน์ทั้งหมดในตาราง เหมาะสำหรับจัดรูปแบบชื่อคอลัมน์เป็นแบบเดียวกัน เช่น ตัวพิมพ์ใหญ่ ลบช่องว่าง หรือเพิ่ม Prefix
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่