คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ข้อความ › CONCATENATEX

CONCATENATEX

DAX · Power BIข้อความระดับกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชัน

อัปเดต 27 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop

เอกสารอ้างอิง: CONCATENATEX (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)

CONCATENATEX คืออะไร

ต่อข้อความจากทุกแถวของตาราง คั่นด้วยตัวคั่นที่กำหนด และเรียงตามค่าที่บอก เช่น รายชื่อพนักงานของภาค

ใช้เมื่อไหร่

  • แสดงรายชื่อที่เลือกไว้ในการ์ดหรือหัวข้อ
  • ต่อรายการสินค้าหรือช่องทางเป็นข้อความเดียว

รูปแบบสูตร

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

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางที่ไล่ทีละแถว
expressionจำเป็นข้อความของแต่ละแถว
[delimiter]ไม่บังคับตัวคั่น เช่น ", "
[orderBy_expression]ไม่บังคับค่าที่ใช้เรียง ถ้าไม่ใส่ ลำดับไม่แน่นอน
[order]ไม่บังคับASC หรือ DESC ไม่ใส่ = DESC ตามเอกสาร Microsoft

ลองเลย: รายชื่อพนักงานและช่องทางของแต่ละภาค

คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน

[ช่องทางที่ขาย] = CONCATENATEX(VALUES('ยอดขาย'[ช่องทาง]), 'ยอดขาย'[ช่องทาง], ", ", 'ยอดขาย'[ช่องทาง], ASC)
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ภูมิภาค] = "กลาง"
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 96 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
รายชื่อพนักงานและช่องทางของแต่ละภาค
รายชื่อพนักงานและช่องทางของแต่ละภาค · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
ภูมิภาคพนักงานในภาคช่องทางที่ขาย
กลาง
เหนือ
ตะวันออกเฉียงเหนือ
ตะวันออก
ใต้
ยอดรวม
นันทิดา กิจเจริญ, ปิยะนุช ศรีสวัสดิ์, อรทัย พิทักษ์วงศ์พนักงานในภาค · กลาง · 2025
ดูทีละขั้นขั้น 4 / 4

ถ้าคุณเขียน Excel อยู่แล้ว

EXCEL=TEXTJOIN(", ", TRUE, SORT(UNIQUE(FILTER(ยอดขาย[ช่องทาง], ยอดขาย[ภูมิภาค]="กลาง"))))

TEXTJOIN ของ Excel ต่อข้อความจากช่วง CONCATENATEX ต่อจากแถวของตาราง

DAXพนักงานในภาค = CONCATENATEX(VALUES('พนักงานขาย'[ชื่อพนักงาน]), 'พนักงานขาย'[ชื่อพนักงาน], ", ", 'พนักงานขาย'[ชื่อพนักงาน], ASC)

ใส่ ASC เพื่อเรียงตามตัวอักษร

ข้อผิดพลาดและเคล็ดลับ

รายชื่อพนักงานไม่เปลี่ยนตาม Slicer ช่องทาง เพราะตัวกรองในตารางยอดขายไม่ไหลกลับไปที่ตารางพนักงาน ส่วนรายชื่อช่องทางเปลี่ยนตาม
ไม่ใส่ orderBy_expression ลำดับข้อความไม่แน่นอน ใส่เสมอเมื่อนำไปแสดงในรายงาน
ใช้ VALUES หรือ DISTINCT เป็นตารางแรกเพื่อไม่ให้ชื่อซ้ำ ถ้าใช้ตารางยอดขายตรง ๆ ชื่อจะซ้ำตามจำนวนคำสั่งซื้อ

แบบทดสอบ 3 ข้อ

1. ไม่ใส่ orderBy_expression ลำดับข้อความเป็นอย่างไร

2. ใส่ orderBy แต่ไม่ใส่ order เรียงแบบใดตามเอกสาร Microsoft

3. ทำไมใช้ VALUES(คอลัมน์) เป็นตารางแรก

ไฟล์ฝึก CONCATENATEX

9Expert-DAX-CONCATENATEX-Practice-v1.0.xlsx

รุ่น 1.0 · 26/9/2026 · 70 KB · ไม่มี Macro · นำเข้า Power BI แล้วทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นยอดขายสินค้าพนักงานขายวันที่คงคลังเป้าภูมิภาคแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1[พนักงานในภาค] รายชื่อพนักงานในภาค เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง ภูมิภาค = ใต้, ปี = 2024
  2. ข้อ 2[พนักงานในภาค] รายชื่อพนักงานในภาค เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง ภูมิภาค = ตะวันออกเฉียงเหนือ, ช่องทาง = Online, ปี = 2025
  3. ข้อ 3[ช่องทางที่ขาย] รายชื่อช่องทางที่ขาย เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง ภูมิภาค = เหนือ, ปี = 2025
  4. ข้อ 4[ช่องทางที่ขาย] รายชื่อช่องทางที่ขาย เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง ภูมิภาค = ตะวันออก, ช่องทาง = Modern Trade, ปี = 2024
  5. ข้อ 5[ช่องทางที่ขาย] รายชื่อช่องทางที่ขาย เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง ปี = 2025

ไปต่อ

อยากเขียน DAX สำหรับรายงานจริงทั้งระบบ

ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)

ดูหลักสูตร