RELATED
ส่งคืนค่าที่มีความสัมพันธ์กันจากอีกตารางหนึ่ง
ไวยากรณ์
RELATED(<column>)
พารามิเตอร์
| เงื่อนไข | ข้อกำหนด |
|---|---|
| คอลัมน์ | คอลัมน์ที่มีค่าที่จะเรียกใช้ |
ค่าผลลัพธ์
ค่าเดียวที่เกี่ยวข้องกับแถวปัจจุบัน
หมายเหตุ
ฟังก์ชัน RELATED กำหนดให้ความสัมพันธ์เกิดขึ้นระหว่างตารางปัจจุบันกับตารางที่มีข้อมูลที่เกี่ยวข้อง คุณระบุคอลัมน์ที่ประกอบด้วยข้อมูลที่คุณต้องการ และฟังก์ชันนี้จะเป็นไปตามความสัมพันธ์แบบกลุ่มต่อหนึ่งที่มีอย ู่เพื่อดึงค่าจากคอลัมน์ที่ระบุในตารางที่เกี่ยวข้อง ถ้าไม่มีความสัมพันธ์ คุณต้องสร้างความสัมพันธ์
เมื่อฟังก์ชัน RELATED ดำเนินการค้นหา ฟังก์ชันจะตรวจสอบค่าทั้งหมดในตารางที่ระบุโดยไม่คำนึงถึงตัวกรองใดๆ ที่อาจใช้
ฟังก์ชัน RELATED จำเป็นต้องมีบริบทแถว ดังนั้น จะสามารถใช้ในนิพจน์คอลัมน์ที่คำนวณเท่านั้น ซึ่งบริบทแถวปัจจุบันจะไม่กำกวม หรือเป็นฟังก์ชันซ้อนในนิพจน์ที่ใช้ฟังก์ชันการสแกนตาราง ฟังก์ชันการสแกนตาราง เช่น SUMX จะรับค่าของค่าแถวปัจจุบันและสแกนตารางอื่นสำหรับอินสแตนซ์ของค่านั้น
ไม่สามารถใช้ฟังก์ชันที่เกี่ยวข้องเพื่อดึงข้อมูลคอลัมน์ข้ามความสัมพันธ์แบบ ที่จำกัด
ตัวอย่าง
ในตัวอย่างต่อไปนี้ หน่วยวัด ยอดขายอินเทอร์เน็ตที่ไม่ใช่ในสหรัฐอเมริกา จะถูกสร้างขึ้นเพื่อสร้างรายงานยอดขายที่ไม่รวมยอดขายในสหรัฐอเมริกา ในการสร้างหน่วยวัดนี้ ตาราง InternetSales_USD ต้องถูกกรองเพื่อแยกยอดขายทั้งหมดที่เป็นของสหรัฐอเมริกาออกในตาราง SalesTerritory สหรัฐอเมริกาในฐานะประเทศจะปรากฏขึ้น 5 ครั้งในตาราง SalesTerritory หนึ่งครั้งสำหรับแต่ละภูมิภาคต่อไปนี้: ภาคตะวันตกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ ภาคกลาง ภาคตะวันตกเฉียงใต้ และภาคตะวันออกเฉียงใต้
วิธีแรกในการกรองยอดขายทางอินเทอร์เน็ตเพื่อที่จะสร้างหน่วยวัดอาจเป็นการเพิ่มนิพจน์ตัวกรองดังต่อไปนี้:
FILTER('InternetSales_USD'
, 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)
อย่างไรก็ตาม วิธีการนี้คือ counterintuitive มีแนวโน้มที่จะพิมพ์ข้อผิดพลาด และอาจไม่สามารถใช้งานได ้ถ้ามีการแยกภูมิภาคที่มีอยู่ในอนาคตออก
วิธีการที่ดีกว่าจะใช้ความสัมพันธ์ที่มีอยู่ระหว่าง InternetSales_USD และ SalesTerritory และระบุอย่างชัดเจนว่าประเทศต้องไม่ใช่สหรัฐอเมริกา เพื่อดำเนินการดังกล่าว ให้สร้างนิพจน์ตัวกรองดังต่อไปนี้:
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
นิพจน์นี้ใช้ฟังก์ชัน RELATED ในการค้นหาค่าประเทศในตาราง SalesTerritory โดยเริ่มต้นด้วยค่าของคอลัมน์หลัก SalesTerritoryKey ในตาราง InternetSales_USD ผลลัพธ์ของการค้นหาจะถูกใช้โดยฟังก์ชันตัวกรองเพื่อกำหนดว่าแถว InternetSales_USD มีการกรองหรือไม่
หมายเหตุ
ถ้าตัวอย่างไม่สามารถใช้ได้ คุณอาจจำเป็นต้องสร้างความสัมพันธ์ระหว่างตาราง
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
ตารางต่อไปนี้แสดงเฉพาะผลรวมสำหรับแต่ละภูมิภาค เพื่อพิสูจน์ว่านิพจน์ตัวกรองในหน่วยวัด ยอดขายอินเทอร์เน็ตที่ไม่ใช่ในสหรัฐอเมริกา ทำงานตามที่ตั้งใจไว้
| Row Labels | Internet Sales | Non USA Internet Sales |
|---|---|---|
| ออสเตรเลีย | $4,999,021.84 | $4,999,021.84 |
| แคนาดา | $1,343,109.10 | $1,343,109.10 |
| ฝรั่งเศส | $2,490,944.57 | $2,490,944.57 |
| เยอรมนี | $2,775,195.60 | $2,775,195.60 |
| สหราชอาณาจักร | $5,057,076.55 | $5,057,076.55 |
| ประเทศสหรัฐอเมริกา | $9,389,479.79 | |
| ผลรวมทั้งหมด | $26,054,827.45 | $16,665,347.67 |
รายการต่อไปนี้แสดงสิ่งที่คุณอาจได้รับหากคุณใช้หน่วยวัดนี้ในวิชวลตารางรายงาน:
| Row Labels | Accessories | Bikes | Clothing | Grand Total |
|---|---|---|---|---|
| 2005 | $1,526,481.95 | $1,526,481.95 | ||
| 2006 | $3,554,744.04 | $3,554,744.04 | ||
| 2007 | $156,480.18 | $5,640,106.05 | $70,142.77 | $5,866,729.00 |
| 2008 | $228,159.45 | $5,386,558.19 | $102,675.04 | $5,717,392.68 |
| ผลรวมทั้งหมด | $384,639.63 | $16,107,890.23 | $172,817.81 | $16,665,347.67 |