Thep Excel

Table.CombineColumnsรวมหลายคอลัมน์เป็นหนึ่งเดียว

Table.CombineColumns รวมข้อมูลจากหลายคอลัมน์เข้าด้วยกันเป็นคอลัมน์เดียว โดยใช้ฟังก์ชัน Combiner ที่กำหนดเอง เช่น รวมชื่อ-นามสกุล หรือสร้างรหัสประจำตัว

fx
=Table.CombineColumns(table, sourceColumns, combiner, newColumnName) as table

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

อัปเดต 16 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
table table ตารางต้นทางที่ต้องการรวมคอลัมน์
sourceColumns list รายชื่อคอลัมน์ที่ต้องการรวม (ลำดับเรื่อง – ตัวแรกจะถูกรวมเข้าก่อน)
combiner function ฟังก์ชันรวมข้อมูล เช่น Combiner.CombineTextByDelimiter() หรือฟังก์ชันกำหนดเอง
newColumnName text ชื่อของคอลัมน์ใหม่ที่เก็บข้อมูลรวมทั้งหมด

Additional Notes

Table.CombineColumns ใช้สำหรับรวมข้อมูลจากหลายคอลัมน์เข้าด้วยกันเป็นคอลัมน์เดียว โดยใช้ฟังก์ชันรวมข้อความ (Combiner) ที่เรากำหนด

ที่เจ๋งคือ มันทำให้เราไม่ต้องแยกเขียนโค้ด Text.Combine หลายบรรทัด – เพียงแค่บอกว่าคอลัมน์ไหนที่ต้องรวม, รวมยังไง, ชื่อคอลัมน์ใหม่คืออะไร แล้วเสร็จ บอกเลยว่ามันช่วยเวลาและทำให้โค้ดสั้นลงเยอะ

ส่วนตัวผม มักใช้ Table.CombineColumns คู่กับ Combiner.CombineTextByDelimiter เวลาต้องการรวมข้อมูลแบบง่ายๆ โดยใช้ตัวคั่นที่กำหนดเอง – เหมือนการรวมวันที่ (Year-Month-Day) หรือสร้างรหัสประจำตัวจากหลายคอลัมน์ ทำให้โค้ดอ่านเข้าใจง่าย และแก้ไขได้ง่ายด้วย

How it works

สร้าง Full Name จาก First/Last Name

สร้าง Full Name จาก First/Last Name

สร้าง Full Address จากส่วนประกอบที่อยู่

สร้าง Full Address จากส่วนประกอบที่อยู่

สร้าง Key สำหรับการ Join จากหลายคอลัมน์

สร้าง Key สำหรับการ Join จากหลายคอลัมน์

Examples

รวมชื่อและนามสกุล (ตัวอย่างพื้นฐาน)let Source = Table.FromRecords({[First="John", Last="Doe"]}), Combined = Table.CombineColumns( Source, {"First", "Last"}, Combiner.CombineTextByDelimiter(" ", Q…

รวมคอลัมน์ First และ Last คั่นด้วยช่องว่าง ลำดับจะเป็น First + " " + Last

fx
let
Source = Table.FromRecords({[First="John", Last="Doe"]}),
Combined = Table.CombineColumns(
Source,
{"First", "Last"},
Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),
"FullName"
)
in
Combined

ผลลัพธ์Table with columns: [First, Last, FullName]
FullName = "John Doe"
สร้างรหัสประจำตัวจากปี เดือน วันlet Source = #table( type table [Year=text, Month=text, Day=text], {{"2025", "12", "23"}} ), Combined = Table.CombineColumns( Source, {"Year", "Month", "Day"},…

รวมคอลัมน์ Year, Month, Day ด้วยตัวคั่น "-" ได้ DateCode ในรูปแบบ ISO 8601

fx
let
Source = #table(
type table [Year=text, Month=text, Day=text],
{{"2025", "12", "23"}}
),
Combined = Table.CombineColumns(
Source,
{"Year", "Month", "Day"},
Combiner.CombineTextByDelimiter("-", QuoteStyle.None),
"DateCode"
)
in
Combined

ผลลัพธ์Table with DateCode="2025-12-23"
รวมที่อยู่จากหลายคอลัมน์let Source = Table.FromRecords({ [Street="123 Main St", City="Bangkok", Country="Thailand"] }), Combined = Table.CombineColumns( Source, {"Street", "City", "Cou…

รวมคอลัมน์ที่อยู่ทั้งหมด โดยใช้ ", " เป็นตัวคั่น เพื่อให้อ่านได้ชัดเจน

fx
let
Source = Table.FromRecords({
[Street="123 Main St", City="Bangkok", Country="Thailand"]
}),
Combined = Table.CombineColumns(
Source,
{"Street", "City", "Country"},
Combiner.CombineTextByDelimiter(", ", QuoteStyle.None),
"FullAddress"
)
in
Combined

ผลลัพธ์Table with FullAddress="123 Main St, Bangkok, Thailand"
ใช้ QuoteStyle สำหรับข้อมูลที่มีเครื่องหมายlet Source = Table.FromRecords({ [Product="Apple", Category="Fruit", Price="50"] }), Combined = Table.CombineColumns( Source, {"Product", "Category", "Price"},…

ใช้ QuoteStyle.All เพื่อให้แต่ละค่ามีเครื่องหมาย quote รอบด้าน เหมาะสำหรับข้อมูล CSV

fx
let
Source = Table.FromRecords({
[Product="Apple", Category="Fruit", Price="50"]
}),
Combined = Table.CombineColumns(
Source,
{"Product", "Category", "Price"},
Combiner.CombineTextByDelimiter("|", QuoteStyle.All),
"ProductInfo"
)
in
Combined

ผลลัพธ์Table with ProductInfo="\"Apple\"|\"Fruit\"|\"50\""

FAQs

Table.CombineColumns กับ Text.Combine ต่างกันอย่างไร?+

Text.Combine รวมลิสต์ข้อความและส่งคืนข้อความอย่างเดียว ส่วน Table.CombineColumns ทำการรวมคอลัมน์จากตาราง แล้วสร้างคอลัมน์ใหม่เพิ่มเข้าไป ใช้ Table.CombineColumns เวลาต้องการเพิ่มคอลัมน์รวมในตาราง ไม่ต้องสร้างขั้นตอนแยกต่างหาก

Combiner มีอะไรบ้าง?+

Combiner.CombineTextByDelimiter() เป็นที่นิยมสำหรับรวมข้อมูลแบบง่าย หรือสามารถเขียนฟังก์ชันเอง เช่น each Text.Combine(List.Transform(_, Text.From), "-") สำหรับการรวมแบบกำหนดเอง

ลำดับของคอลัมน์ในรายการ sourceColumns สำคัญหรือเปล่า?+

สำคัญมาก! ลำดับในรายการเป็นตัวกำหนดลำดับการรวม เช่น {"First", "Last"} จะให้ First + Last แต่ {"Last", "First"} จะให้ Last + First

คอลัมน์ต้นทางจะถูกลบไปหรือเปล่า?+

ไม่ คอลัมน์เดิมยังคงอยู่ Table.CombineColumns เพียงเพิ่มคอลัมน์ใหม่เข้ามา ถ้าต้องการลบคอลัมน์เดิม ใช้ Table.RemoveColumns() หลังจากนั้น

ใช้กับคอลัมน์ที่มี null ได้ไหม?+

ได้ แต่ต้องระวัง Combiner.CombineTextByDelimiter จัดการ null อัตโนมัติ ถ้าใช้ combiner แบบกำหนดเอง ต้องจัดการ null เอง ด้วย Text.From() หรือ Text.Replace()

QuoteStyle.None กับ QuoteStyle.All ต่างกันอย่างไร?+

QuoteStyle.None ไม่ใส่เครื่องหมาย quote รอบค่า (ปกติสำหรับข้อมูลทั่วไป), QuoteStyle.All ใส่เครื่องหมาย quote รอบทุกค่า (สำหรับ CSV หรือข้อมูลที่มีคอมมา)

Resources & Related

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

ฟังก์ชันนี้Table.CombineColumnsTable functions
Combiner functions (1)
Combiner.CombineTextByDelimiter

Combiner.CombineTextByDelimiter คืนค่าเป็น 'ฟังก์ชัน' ที่ช่วยรวม List ของข้อความด้วยตัวคั่น (Delimiter) ที่กำหนด มักใช้เป็น argument ในฟังก์ชันอื่นๆ เช่น Table.CombineColumns

Comments

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