Thep Excel

CONCATENATEX – รวมข้อความจากแถวหลายแถว

CONCATENATEX ทำหน้าที่รวมข้อความจากแต่ละแถวในตารางเข้าด้วยกัน เหมาะสำหรับสร้างรายชื่อค่าที่คั่นด้วยจุลภาค หรือรวมข้อมูลจากหลายแถว ใช้ได้กับตัวอักษรหรือค่าใดๆที่ต้องการทำให้เป็นข้อความ

=CONCATENATEX(<table>, <expression>, [<delimiter>], [<orderBy_expression>], [<order>])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
7/10

Difficulty
5/10

Usefulness
7/10

Syntax & Arguments

=CONCATENATEX(<table>, <expression>, [<delimiter>], [<orderBy_expression>], [<order>])

Argument Type Required Default Description
table Table Yes ตารางที่มีแถวต่างๆ ที่ต้องการประเมิน expression ในแต่ละแถว
expression Scalar Yes Expression ที่ประเมินในแต่ละแถว สามารถอ้างอิงคอลัมน์จากตารางหรือสร้าง expression ใหม่
delimiter Text Optional "" ข้อความที่ใช้คั่นระหว่างค่าต่างๆ (เช่น “,” หรือ ” | “) ค่าเริ่มต้นคือ “”
orderBy_expression Scalar Optional Expression ที่ใช้กำหนดลำดับการเรียง สามารถเรียงตามค่า หรือตามคอลัมน์อื่น
order Numeric/Boolean Optional 0 ลำดับการเรียง 0 หรือ FALSE สำหรับ descending, 1 หรือ TRUE สำหรับ ascending

How it works

ทำรายการชื่อสินค้าในหมวดที่เลือก

รวมชื่อสินค้าหลายแถวให้แสดงเป็นสตริงเดียว

รวมข้อความหมายเหตุจากหลายแถว

เช่น รวมหมายเหตุของออเดอร์ให้แสดงในบรรทัดเดียวพร้อมตัวคั่น

Examples

รวมชื่อพนักงานโดยใช้จุลภาค
Employee List = CONCATENATEX(Employees, Employees[FirstName] & " " & Employees[LastName], ", ")
ประเมิน expression ชื่อและนามสกุลในแต่ละแถว แล้วรวมด้วยจุลภาค expression ทำงานในแต่ละแถวของตาราง Employees ด้วย row context
DAX Formula:

Employee List = CONCATENATEX(Employees, Employees[FirstName] & " " & Employees[LastName], ", ")

Result:

"Alan Brewer, Michael Blythe, James Bailey"

รวมสินค้าตามประเภท เรียงตามค่านอก
Category Products = CONCATENATEX(FILTER(Products, Products[Category] = "Electronics"), Products[ProductName], " | ", Products[Price], 0)
กรองเฉพาะสินค้าประเภท Electronics แล้วเรียงตามราคา descending (0) ใช้ FILTER เพราะอยากกรองตามเงื่อนไขเฉพาะ
DAX Formula:

Category Products = CONCATENATEX(FILTER(Products, Products[Category] = "Electronics"), Products[ProductName], " | ", Products[Price], 0)

Result:

"Laptop | Monitor | Keyboard"

นับจำนวนและรวมค่าด้วย VAR
Items Summary = VAR ItemList = CONCATENATEX( TOPN(5, Sales, Sales[Amount], 0), Sales[ProductName] & " (" & Sales[Amount] & ")", "; " ) RETURN "Top 5: " & ItemLi…
ใช้ TOPN หยิบ 5 รายการสูงสุด แล้วรวมด้วยเซมิโคลอน ใช้ VAR เพื่อความชัดเจน สามารถ reuse ItemList ได้
DAX Formula:

Items Summary =
VAR ItemList = CONCATENATEX(
    TOPN(5, Sales, Sales[Amount], 0),
    Sales[ProductName] & " (" & Sales[Amount] & ")",
    "; "
)
RETURN
    "Top 5: " & ItemList

Result:

"Top 5: Product A (500); Product B (450); Product C (400); Product D (350); Product E (300)"

สร้าง breadcrumb hierarchy ด้วย RELATED
Breadcrumb = VAR CurrentCategory = VALUES(Products[Category]) VAR RelatedSubcategories = RELATEDTABLE(Subcategories) RETURN CONCATENATEX( RelatedSubcategories,…
ใช้ RELATEDTABLE เพื่อดึงข้อมูลจากตารางที่เกี่ยวข้อง จากนั้นรวมด้วย > และเรียงตามคอลัมน์ SortOrder ascending (1) สร้าง navigation path ให้ผู้ใช้เห็นชัด
DAX Formula:

Breadcrumb =
VAR CurrentCategory = VALUES(Products[Category])
VAR RelatedSubcategories = RELATEDTABLE(Subcategories)
RETURN
    CONCATENATEX(
        RelatedSubcategories,
        Subcategories[Name],
        " > ",
        Subcategories[SortOrder],
        1
    )

Result:

"Electronics > Computers > Laptops"

FAQs

CONCATENATEX ต่างจาก CONCATENATE อย่างไร?

CONCATENATE รวมค่าจากคอลัมน์เดียวหรือที่ระบุเฉพาะ ส่วน CONCATENATEX ประเมิน expression ในแต่ละแถวของตารางทั้งหมด ทำให้ยืดหยุ่นมากขึ้น

ถ้าไม่ระบุ delimiter จะเป็นอย่างไร?

ค่าเริ่มต้นคือ “” (ว่างเปล่า) ข้อความจะรวมติดกันโดยไม่มีตัวคั่น ถ้าต้องการคั่นต้องระบุ delimiter เช่น “, ” หรือ ” | “

สามารถใช้กับ DirectQuery mode ได้ไหม?

ไม่ได้ CONCATENATEX ไม่รองรับ DirectQuery mode สำหรับ calculated columns หรือ RLS rules ต้องใช้ Import mode แทน

เมื่อไหร่ต้องใช้ orderBy_expression?

ใช้เมื่อต้องการเรียงลำดับค่าในผลลัพธ์ เช่น ต้องการเรียงตามหมวดหมู่ หรือเรียงตามค่าตัวเลข หากไม่ระบุจะเรียงตามลำดับของข้อมูลดั้งเดิม

Resources & Related

Additional Notes

CONCATENATEX ประเมิน expression ในแต่ละแถวของตารางแล้วรวมผลลัพธ์เข้าด้วยกันเป็นข้อความเดียว ใช้ delimiter ช่วยคั่นค่าต่างๆ

ที่เจ๋งคือ มันเป็น iterator function ที่มี row context เวลาประเมิน expression แต่ยังคงเป็น scalar result – เข้าใจ concept นี้แล้ว DAX ก็ไม่ยากแล้ว

ส่วนตัวผม ใช้ CONCATENATEX บ่อยมากเมื่อต้องการทำ summary ของข้อมูลย่อย หรือสร้าง breadcrumb list เพื่อให้ผู้ใช้เข้าใจโครงสร้างข้อมูลได้ดีขึ้น

Leave a Reply

Your email address will not be published. Required fields are marked *