การทำความเข้าใจฟังก์ชันสำหรับลำดับขั้นหลัก-รองใน DAX

DAX มีฟังก์ชันห้ารายการเพื่อช่วยให้ผู้ใช้สามารถจัดการข้อมูลที่แสดงเป็นลำดับขั้นหลัก-รองในแบบจำลอง ด้วยฟังก์ชันนี้ ผู้ใช้จะสามารถรับสายข้อมูลระดับหลักทั้งหมดในแถว จะมีจำนวนกี่ระดับที่มีสายข้อมูลระดับหลักสูงสุด ซึ่งเป็นระดับ n หลักที่อยู่เหนือแถวปัจจุบัน ซึ่งคือโหนดสืบทอด n จากด้านบนของลำดับขั้ั้นแถวปัจจุบัน และเป็นรายการหลักในลำดับขั้นแถวปัจจุบันหรือไม่

ฟังก์ชันหลัก-รองใน DAX

ตารางต่อไปนี้ประกอบด้วยลำดับขั้นหลัก-รองในคอลัมน์: EmployeeKey และ ParentEmployeeKey ที่ใช้ในตัวอย่างฟังก์ชันทั้งหมด

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

ในตารางข้างต้น คุณสามารถดูว่า พนักงาน 112 ไม่มีการกำหนดรายการหลัก พนักงาน 14 มีพนักงาน 112 เป็นผู้จัดการ (ParentEmployeeKey) พนักงาน 3 มีพนักงาน 14 เป็นผู้จัดการ และพนักงาน 11, 13 และ 162 มีพนักงาน 3 เป็นผู้จัดการ ตารางข้างต้นนี้ช่วยให้เข้าใจว่า พนักงาน 112 ไม่มีผู้จัดการทีเป็นผู้บังคับบัญชาอีกขั้น และพนักงานรายนี้เป็นผู้จัดการขั้นสูงสุดสำหรับพนักงานทุกคนที่แสดงที่นี่ นอกจากนี้ พนักงาน 3 จะขึ้้นตรงต่อพนักงาน 14 และพนักงาน 11, 13, 162 จะขึ้นตรงต่อพนักงาน 3

ตารางต่อไปนี้แสดงฟังก์ชันที่พร้อมใช้งาน คำอธิบายโดยย่อของฟังก์ชัน และตัวอย่างของฟังก์ชันในข้อมูลเดียวกันที่แสดงไว้ข้างต้น

ฟังก์ชัน PATH - แสดงข้อความที่คั่นด้วยตัวระบุของรายการหลักทั้งหมดไปยังแถวปัจจุบัน โดยเริ่มต้นจากรายการที่เก่าที่สุดหรือสูงสุดไปจนถึงรายการปัจจุบัน

EmployeeKey ParentEmployeeKey เส้นทาง
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

ฟังก์ชัน PATHLENGTH - แสดงจำนวนระดับใน PATH() ที่กำหนด โดยเริ่มตั้งแต่ระดับปัจจุบันจนถึงระดับหลักสูงสุดหรือเก่าที่สุด ในตัวอย่างต่อไปน คอลัมน์ PathLength จะถูกกำหนดเป็น '= PATHLENGTH([Path])' ตัวอย่างจะรวมข้อมูลทั้งหมดจากตัวอย่าง Path() เพื่อช่วยให้เข้าใจวิธีการทำงานของฟังก์ชันนี้

EmployeeKey ParentEmployeeKey เส้นทาง PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

ฟังก์ชัน PATHITEM- ส่งกลับรายการในตำแหน่งที่ระบุจาก PATH() เช่น ผลลัพธ์ โดยนับจากซ้ายไปขวา ในตัวอย่างต่อไปนี้ คอลัมน์ PathItem -ลำดับที่ 4 จากซ้ายถูกกำหนดเป็น '= PATHITEM([Path], 4)' ตัวอย่างนี้ส่งกลับ EmployeKey ที่ตำแหน่งที่สี่ในสตริงเส้นทางจากด้านซ้าย โดยใช้ข้อมูลตัวอย่างเดียวกันจากตัวอย่าง Path()

EmployeeKey ParentEmployeeKey เส้นทาง PathItem - ลำดับที่ 4 จากซ้าย
112 112
14 112 112|14 14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

ฟังก์ชัน PATHITEMREVERSE - ส่งกลับรายการที่ ตำแหน่ง จาก PATH() เช่น ผลลัพธ์ของฟังก์ชัน โดยนับถอยหลังจากขวาไปซ้าย
ในตัวอย่างต่อไปนี้ คอลัมน์ PathItemReverse -ลำดับที่ 3 จากขวาถูกกำหนดเป็น '= PATHITEMREVERSE([Path], 3)' ตัวอย่างนี้ส่งกลับ EmployeKey ที่ตำแหน่งที่สามในสตริงเส้นทางจากด้านขวา โดยใช้ข้อมูลตัวอย่างเดียวกันจากตัวอย่าง Path()

EmployeeKey ParentEmployeeKey เส้นทาง PathItemReverse - ลำดับที่ 3 จากขวา
112 112
14 112 112|14 14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

ฟังก์ชัน PATHCONTAINS - ส่งกลับค่า TRUE ถ้ารายการที่ระบุปรากฏภายในเส้นทางที่ระบุ ในตัวอย่างต่อไปนี้ คอลัมน์ PathContains - พนักงาน 162 ถูกกําหนดเป็น ' ' ตัวอย่าง = PATHCONTAINS([Path], "162") นี้แสดงค่า = PATHCONTAINS([Path], "162") ถ้าเส้นทางที่กําหนดประกอบด้วยพนักงาน 162 ตัวอย่างนี้ใช้ผลลัพธ์จากตัวอย่าง Path() ข้างต้น

EmployeeKey ParentEmployeeKey เส้นทาง PathContains - พนักงาน 162
112 112 FALSE
14 112 112|14 14 FALSE
3 14 112|14|3 FALSE
11 3 112|14|3|11 FALSE
13 3 112|14|3|13 FALSE
162 3 112|14|3|162 TRUE
117 162 112|14|3|162|117 TRUE