| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| table | Table | ตารางที่มีแถวต่างๆ ที่ต้องการประเมิน expression ในแต่ละแถว | |
| expression | Scalar | Expression ที่ประเมินในแต่ละแถว สามารถอ้างอิงคอลัมน์จากตารางหรือสร้าง expression ใหม่ | |
| [delimiter]ไม่บังคับ | Text | "" | ข้อความที่ใช้คั่นระหว่างค่าต่างๆ (เช่น “,” หรือ ” | “) ค่าเริ่มต้นคือ “” |
| [orderBy_expression]ไม่บังคับ | Scalar | Expression ที่ใช้กำหนดลำดับการเรียง สามารถเรียงตามค่า หรือตามคอลัมน์อื่น | |
| [order]ไม่บังคับ | Numeric/Boolean | 0 | ลำดับการเรียง 0 หรือ FALSE สำหรับ descending, 1 หรือ TRUE สำหรับ ascending |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
CONCATENATEX ประเมิน expression ในแต่ละแถวของตารางแล้วรวมผลลัพธ์เข้าด้วยกันเป็นข้อความเดียว ใช้ delimiter ช่วยคั่นค่าต่างๆ
ที่เจ๋งคือ มันเป็น iterator function ที่มี row context เวลาประเมิน expression แต่ยังคงเป็น scalar result – เข้าใจ concept นี้แล้ว DAX ก็ไม่ยากแล้ว
ส่วนตัวผม ใช้ CONCATENATEX บ่อยมากเมื่อต้องการทำ summary ของข้อมูลย่อย หรือสร้าง breadcrumb list เพื่อให้ผู้ใช้เข้าใจโครงสร้างข้อมูลได้ดีขึ้น
รวมชื่อสินค้าหลายแถวให้แสดงเป็นสตริงเดียว
เช่น รวมหมายเหตุของออเดอร์ให้แสดงในบรรทัดเดียวพร้อมตัวคั่น
ประเมิน expression ชื่อและนามสกุลในแต่ละแถว แล้วรวมด้วยจุลภาค expression ทำงานในแต่ละแถวของตาราง Employees ด้วย row context
กรองเฉพาะสินค้าประเภท Electronics แล้วเรียงตามราคา descending (0) ใช้ FILTER เพราะอยากกรองตามเงื่อนไขเฉพาะ
ใช้ TOPN หยิบ 5 รายการสูงสุด แล้วรวมด้วยเซมิโคลอน ใช้ VAR เพื่อความชัดเจน สามารถ reuse ItemList ได้
ใช้ RELATEDTABLE เพื่อดึงข้อมูลจากตารางที่เกี่ยวข้อง จากนั้นรวมด้วย > และเรียงตามคอลัมน์ SortOrder ascending (1) สร้าง navigation path ให้ผู้ใช้เห็นชัด
CONCATENATE รวมค่าจากคอลัมน์เดียวหรือที่ระบุเฉพาะ ส่วน CONCATENATEX ประเมิน expression ในแต่ละแถวของตารางทั้งหมด ทำให้ยืดหยุ่นมากขึ้น
ค่าเริ่มต้นคือ "" (ว่างเปล่า) ข้อความจะรวมติดกันโดยไม่มีตัวคั่น ถ้าต้องการคั่นต้องระบุ delimiter เช่น ", " หรือ " | "
ไม่ได้ CONCATENATEX ไม่รองรับ DirectQuery mode สำหรับ calculated columns หรือ RLS rules ต้องใช้ Import mode แทน
ใช้เมื่อต้องการเรียงลำดับค่าในผลลัพธ์ เช่น ต้องการเรียงตามหมวดหมู่ หรือเรียงตามค่าตัวเลข หากไม่ระบุจะเรียงตามลำดับของข้อมูลดั้งเดิม
ฟังก์ชันที่ผู้เขียนโยงไว้กับ CONCATENATEX จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
COMBINEVALUES รวมหลายค่าสเกลาร์เป็นข้อความเดียว โดยกำหนดตัวคั่นได้ เหมาะกับการสร้างคีย์รวมจากหลายคอลัมน์ในแถวเดียว
CONCATENATE ต่อข้อความ 2 ค่าให้เป็นสตริงเดียว เหมาะกับการทำ label หรือรวมข้อความจาก 2 แหล่งในบริบทปัจจุบัน
FIXED แปลงตัวเลขเป็นข้อความ พร้อมกำหนดจำนวนทศนิยม และเลือกใส่/ไม่ใส่ตัวคั่นหลักพัน เหมาะกับการแสดงผลแบบรูปแบบคงที่
MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH
REPT ทำซ้ำข้อความตามจำนวนที่กำหนด ช่วยสร้างสัญลักษณ์ซ้ำๆ เช่น ดาว, จุด, หรือเครื่องหมายคั่น เพื่อจัดรูปแบบและเน้นข้อมูลในรายงาน
แปลงตารางเป็นสตริงรูปแบบ CSV โดยกำหนดจำนวนแถวสูงสุด ตัวคั่น และว่าจะใส่หัวคอลัมน์หรือไม่
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่