Thep Excel

USERELATIONSHIP – เปิดใช้งานความสัมพันธ์ชั่วคราว

เปิดใช้ความสัมพันธ์ที่ inactive ชั่วคราว

USERELATIONSHIP ช่วยให้ CALCULATE หรือฟังก์ชันอื่น ๆ สามารถใช้งานความสัมพันธ์ที่ถูกทำเครื่องหมายเป็น Inactive (เส้นประ) ได้ชั่วคราว เพื่อคำนวณภายใต้บริบทของความสัมพันธ์นั้น

=USERELATIONSHIP(Column1, Column2)

By ThepExcel AI Agent
1 December 2025

Syntax & Arguments

=USERELATIONSHIP(Column1, Column2)

Argument Type Required Default Description
Column1 column Yes คอลัมน์ฝั่ง Many ของความสัมพันธ์ (เช่น Sales[OrderDate])
Column2 column Yes คอลัมน์ฝั่ง One ของความสัมพันธ์ (เช่น ‘Date'[Date])

How it works

วิเคราะห์ยอดขายตามวันที่จัดส่ง (Delivery Date)

ถ้ามีวันที่ OrderDate เป็น Active Relationship แต่ต้องการดูยอดขายตาม DeliveryDate ชั่วคราว

เปรียบเทียบยอดขายหลายช่วงเวลา

ใช้ Date Table เดียวกันแต่มีหลายความสัมพันธ์กับ Fact Table เพื่อดูยอดขายตามวันที่สั่งซื้อ, วันที่จัดส่ง, วันที่ชำระเงิน พร้อมๆ กัน

Examples

ตัวอย่างที่ 1: ยอดขายตามวันที่จัดส่ง

สมมติว่า 'Date'[Date] มี Active Relationship กับ Sales[OrderDate] แต่เราใช้ USERELATIONSHIP เพื่อเปลี่ยนไปใช้ Sales[DeliveryDate] ใน Measure นี้
DAX Formula:

Sales by Delivery Date = 
CALCULATE( 
    [Total Sales], 
    USERELATIONSHIP(Sales[DeliveryDate], 'Date'[Date]) 
)

Result:

ยอดขายรวมที่กรองตาม DeliveryDate

ตัวอย่างที่ 2: เปรียบเทียบยอดขายตามวันสั่งซื้อ vs วันส่งของ

หาว่าในเดือนนี้มียอดสั่งซื้อ (Active Rel) ต่างจากยอดที่ส่งของ (Inactive Rel) เท่าไหร่
DAX Formula:

Sales Diff = [Total Sales] - [Sales by Delivery Date]

Result:

ส่วนต่างยอดขาย

ตัวอย่างที่ 3: ยอดขายตามวันที่ชำระเงิน (Payment Date)

ใช้ดู Cash flow โดยอิงจากวันที่ได้รับเงินจริง แทนที่จะดูวันที่ขาย
DAX Formula:

Paid Sales = 
CALCULATE(     [Total Sales],     USERELATIONSHIP(Sales[PaymentDate], 'Date'[Date]) )

Result:

ยอดขายที่ได้รับชำระเงินแล้วในงวดนั้น

FAQs

ต้องใช้ USERELATIONSHIP คู่กับ CALCULATE เสมอไปไหม?

ส่วนใหญ่จะใช้คู่กับ CALCULATE เพราะ USERELATIONSHIP เป็น Filter Modifier ที่เปลี่ยน Context

ถ้าไม่มีความสัมพันธ์อยู่แล้ว จะใช้ USERELATIONSHIP ได้ไหม?

ไม่ได้ คุณต้องสร้างความสัมพันธ์แบบ Inactive ไว้ล่วงหน้าใน Data Model ก่อน

Resources & Related

Additional Notes

USERELATIONSHIP เป็นฟังก์ชันที่ช่วยให้คุณสามารถใช้งานความสัมพันธ์ (Relationship) ที่ถูกตั้งค่าเป็น Inactive ใน Data Model ได้ชั่วคราว สำหรับการคำนวณใน Measure นั้นๆ เท่านั้น

โดยปกติแล้ว Power BI (DAX) จะใช้ความสัมพันธ์ที่ Active เพียงเส้นเดียวระหว่างสองตาราง หากมีหลายเส้นเส้นที่เหลือจะต้องเป็น Inactive ฟังก์ชันนี้จึงเข้ามาแก้ปัญหาเมื่อเราต้องการใช้ความสัมพันธ์ทางเลือก

Leave a Reply

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