Text.Combine ใช้สำหรับรวมข้อความหลายตัวจาก List เข้าด้วยกันเป็นข้อความเดียว โดยสามารถเลือกใช้ตัวคั่น (separator) เช่น ลูกน้ำ เครื่องหมายขีด หรือ space ได้ เหมาะสำหรับสร้างชื่อเต็ม ที่อยู่ หรือรหัสประจำตัวจากส่วนประกอบย่อยๆ
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| texts | list | List ของข้อความที่ต้องการรวมกัน ค่า null ใน list จะถูกข้ามไปโดยอัตโนมัติ |
| [separator]ไม่บังคับ | text | ตัวคั่นที่ต้องการใส่ระหว่างแต่ละข้อความ ถ้าไม่ระบุจะต่อกันโดยไม่มีตัวคั่น |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Text.Combine ใช้สำหรับรวม List ของข้อความให้กลายเป็นสตริงข้อความเดียว โดยสามารถกำหนดตัวคั่น (Separator) ระหว่างแต่ละข้อความได้
ที่เจ๋งคือมันจะ ignore ค่า null อัตโนมัติ เลยสะดวกมากเวลามีข้อมูลที่ไม่สมบูรณ์ ตัวอย่างเช่น ถ้า Middle Name ว่างจะไม่เพิ่มช่องว่างพิเศษเข้ามา
ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยมากตอนต้องการสร้างที่อยู่แบบสมบูรณ์ หรือ merge ชื่อนามสกุลกับข้อมูลอื่นๆ มันทำให้โค้ด M ดูง่ายและสะอาดขึ้นเยอะครับ 😎
รวมส่วนประกอบของที่อยู่ เช่น เลขที่, ถนน, ตำบล, อำเภอ ให้เป็นสตริงเดียว
รวมรหัสหมวดหมู่, รหัสสินค้า, รหัสสี เข้าด้วยกันโดยมีตัวคั่น
นำ List ของ Tags ที่แยกไว้ มารวมเป็นสตริงเดียวเพื่อใช้ใน Description
รวมข้อความสองคำโดยไม่มีตัวคั่นใดๆ ต่อเป็นข้อความเดียวเลย
รวมข้อมูลที่อยู่สามส่วนโดยใช้ลูกน้ำและช่องว่างเป็นตัวคั่น ได้ที่อยู่แบบสมบูรณ์เลย
สังเกตว่าเมื่อมี null ในตรงกลาง มันจะถูก skip ไปโดยอัตโนมัติ ไม่ทำให้เกิดช่องว่างพิเศษ ประสิทธิภาพสูงมากเวลาข้อมูลไม่สมบูรณ์
ใช้ each context เพื่อสร้างข้อความรวมจากคอลัมน์ต่างๆ ผลลัพธ์เป็นคอลัมน์ใหม่ที่มีข้อมูลที่รวมแล้ว เหมาะสำหรับสร้างรหัสประจำตัวหรือ identifier หลากหลาย
สร้างรหัสพนักงานโดยรวมส่วนต่างๆ กับตัวคั่นเครื่องหมายขีด ใช้ทั่วไปในระบบที่ต้องการรหัสมาตรฐาน
ใช้ Text.Combine กับคอลัมน์ที่เป็น List โดยรวมสมาชิกแต่ละตัวด้วยลูกน้ะและช่องว่าง ส่วนตัวผมใช้วิธีนี้บ่อยมากตอนต้องการแสดงแท็กหลายรายการเป็นข้อความเดียว 😎
ค่า null จะถูกข้ามไปโดยอัตโนมัติ ไม่ต้องตัดออกก่อน ตัวเช่น {"A", null, "B"} กับตัวคั่น "-" จะได้ "A-B" ไม่ใช่ "A–B" ซึ่งสะดวกมากครับ
Text.Split ทำสิ่งตรงกันข้าม มันแยกข้อความเป็น List โดยใช้ตัวคั่นกำหนด ส่วน Text.Combine คือรวม List เป็นข้อความเดียว อันหนึ่งคือการแยก อีกอันคือการรวม เหมือนกับตัวผกผันกัน
ได้ "" (ข้อความว่าง) กลับมา เลยต้องระวังตอนทำ formula เพื่อหลีกเลี่ยงผลลัพธ์ที่ว่างเปล่า
จะเกิด Error ครับ ต้องแน่ใจว่า List มีแต่ Text เท่านั้น ถ้ามีตัวเลขต้องแปลงเป็น Text ก่อนด้วย Text.From() หรือ Number.ToText()
ได้ครับ ถ้าต้องการสร้าง csv format ให้ใช้ตัวคั่นเป็น "," และถ้าต้องการสร้าง json array อาจต้องรวมกับ Text.Format หรือ JSON functions อื่นๆ ด้วย
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.Combine จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
แปลงค่าใดๆ เป็นข้อความ (Text)
แทรกข้อความเข้าไปในตำแหน่งที่กำหนด
Text.Replace ใช้สำหรับแทนที่ทุกส่วนของข้อความเก่าในข้อความหลักด้วยข้อความใหม่ เป็น Case Sensitive และแทนที่ทีละครั้งที่เจอในข้อความทั้งหมด
Text.Split(text, separator) ใช้แยกข้อความเป็น List โดยอิงตามตัวคั่น (delimiter) ที่ระบุ สามารถใช้ตัวคั่นเพียงตัวเดียวหรือหลายตัวอักษร เช่น "|" หรือ ", the " ผลลัพธ์คืนค่าเป็น List ของข้อความ
Text.Upper แปลงอักขระทั้งหมดในข้อความเป็นตัวอักษรใหญ่ โดยรองรับการตั้งค่า culture ต่างๆ เพื่อจัดการการแปลงที่ถูกต้องตามภาษา
Combiner.CombineTextByDelimiter คืนค่าเป็น 'ฟังก์ชัน' ที่ช่วยรวม List ของข้อความด้วยตัวคั่น (Delimiter) ที่กำหนด มักใช้เป็น argument ในฟังก์ชันอื่นๆ เช่น Table.CombineColumns
List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม
Table.ToRows แปลงตารางให้เป็น List ของ List โดยแต่ละ List ย่อยแทนข้อมูล 1 แถว ไม่มีชื่อคอลัมน์ เหมาะสำหรับส่งออกข้อมูลเป็น JSON/CSV หรือประมวลผลแถวโดยไม่สนใจชื่อฟิลด์
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่