Table.CombineColumns รวมข้อมูลจากหลายคอลัมน์เข้าด้วยกันเป็นคอลัมน์เดียว โดยใช้ฟังก์ชัน Combiner ที่กำหนดเอง เช่น รวมชื่อ-นามสกุล หรือสร้างรหัสประจำตัว
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| table | table | ตารางต้นทางที่ต้องการรวมคอลัมน์ |
| sourceColumns | list | รายชื่อคอลัมน์ที่ต้องการรวม (ลำดับเรื่อง – ตัวแรกจะถูกรวมเข้าก่อน) |
| combiner | function | ฟังก์ชันรวมข้อมูล เช่น Combiner.CombineTextByDelimiter() หรือฟังก์ชันกำหนดเอง |
| newColumnName | text | ชื่อของคอลัมน์ใหม่ที่เก็บข้อมูลรวมทั้งหมด |
Table.CombineColumns ใช้สำหรับรวมข้อมูลจากหลายคอลัมน์เข้าด้วยกันเป็นคอลัมน์เดียว โดยใช้ฟังก์ชันรวมข้อความ (Combiner) ที่เรากำหนด
ที่เจ๋งคือ มันทำให้เราไม่ต้องแยกเขียนโค้ด Text.Combine หลายบรรทัด – เพียงแค่บอกว่าคอลัมน์ไหนที่ต้องรวม, รวมยังไง, ชื่อคอลัมน์ใหม่คืออะไร แล้วเสร็จ บอกเลยว่ามันช่วยเวลาและทำให้โค้ดสั้นลงเยอะ
ส่วนตัวผม มักใช้ Table.CombineColumns คู่กับ Combiner.CombineTextByDelimiter เวลาต้องการรวมข้อมูลแบบง่ายๆ โดยใช้ตัวคั่นที่กำหนดเอง – เหมือนการรวมวันที่ (Year-Month-Day) หรือสร้างรหัสประจำตัวจากหลายคอลัมน์ ทำให้โค้ดอ่านเข้าใจง่าย และแก้ไขได้ง่ายด้วย
สร้าง Full Name จาก First/Last Name
สร้าง Full Address จากส่วนประกอบที่อยู่
สร้าง Key สำหรับการ Join จากหลายคอลัมน์
รวมคอลัมน์ First และ Last คั่นด้วยช่องว่าง ลำดับจะเป็น First + " " + Last
รวมคอลัมน์ Year, Month, Day ด้วยตัวคั่น "-" ได้ DateCode ในรูปแบบ ISO 8601
รวมคอลัมน์ที่อยู่ทั้งหมด โดยใช้ ", " เป็นตัวคั่น เพื่อให้อ่านได้ชัดเจน
ใช้ QuoteStyle.All เพื่อให้แต่ละค่ามีเครื่องหมาย quote รอบด้าน เหมาะสำหรับข้อมูล CSV
Text.Combine รวมลิสต์ข้อความและส่งคืนข้อความอย่างเดียว ส่วน Table.CombineColumns ทำการรวมคอลัมน์จากตาราง แล้วสร้างคอลัมน์ใหม่เพิ่มเข้าไป ใช้ Table.CombineColumns เวลาต้องการเพิ่มคอลัมน์รวมในตาราง ไม่ต้องสร้างขั้นตอนแยกต่างหาก
Combiner.CombineTextByDelimiter() เป็นที่นิยมสำหรับรวมข้อมูลแบบง่าย หรือสามารถเขียนฟังก์ชันเอง เช่น each Text.Combine(List.Transform(_, Text.From), "-") สำหรับการรวมแบบกำหนดเอง
สำคัญมาก! ลำดับในรายการเป็นตัวกำหนดลำดับการรวม เช่น {"First", "Last"} จะให้ First + Last แต่ {"Last", "First"} จะให้ Last + First
ไม่ คอลัมน์เดิมยังคงอยู่ Table.CombineColumns เพียงเพิ่มคอลัมน์ใหม่เข้ามา ถ้าต้องการลบคอลัมน์เดิม ใช้ Table.RemoveColumns() หลังจากนั้น
ได้ แต่ต้องระวัง Combiner.CombineTextByDelimiter จัดการ null อัตโนมัติ ถ้าใช้ combiner แบบกำหนดเอง ต้องจัดการ null เอง ด้วย Text.From() หรือ Text.Replace()
QuoteStyle.None ไม่ใส่เครื่องหมาย quote รอบค่า (ปกติสำหรับข้อมูลทั่วไป), QuoteStyle.All ใส่เครื่องหมาย quote รอบทุกค่า (สำหรับ CSV หรือข้อมูลที่มีคอมมา)
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.CombineColumns จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Combiner.CombineTextByDelimiter คืนค่าเป็น 'ฟังก์ชัน' ที่ช่วยรวม List ของข้อความด้วยตัวคั่น (Delimiter) ที่กำหนด มักใช้เป็น argument ในฟังก์ชันอื่นๆ เช่น Table.CombineColumns
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่