SELECTEDMEASURE() คืนค่าของ Measure ต้นทางที่กำลังถูกประมวลผลอยู่ในบริบท Calculation Group ช่วยให้สร้าง Calculation Item ที่ยืดหยุ่น สามารถนำไปใช้งานกับหลาย Measure พร้อมกันได้อย่างมีประสิทธิภาพ
=SELECTEDMEASURE()
=SELECTEDMEASURE()
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| (ไม่มีอาร์กิวเมนต์) | ไม่มี | Optional | ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ เลย จะดึงค่าของ Measure ปัจจุบันจากบริบทการประมวลผลโดยอัตโนมัติ |
ใช้ใน Calculation Item เพื่อคืนค่าของ Measure ดั้งเดิมก่อนปรับแต่ง เช่น เพิ่ม/ลด/แปลงฟอร์แมต
นำค่า SELECTEDMEASURE ไปคูณ/บวก/ปรับเปอร์เซ็นต์ ตามกฎธุรกิจที่ต้องการ
ใช้ CALCULATE ปรับบริบทเวลา (เช่น ปีที่แล้ว) แล้วใช้ SELECTEDMEASURE คืนค่าต้นทางในบริบทใหม่
Boosted Sales = SELECTEDMEASURE() * 1.10Boosted Sales = SELECTEDMEASURE() * 1.10
ค่าของ Measure ต้นทางที่เพิ่มขึ้น 10%
YoY Growth = VAR CurrentYear = SELECTEDMEASURE() VAR PriorYear = CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR('Date'[Date]) ) RETURN CurrentYear - PriorYearYoY Growth =
VAR CurrentYear = SELECTEDMEASURE()
VAR PriorYear = CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
)
RETURN CurrentYear - PriorYear
ความแตกต่างระหว่างปีปัจจุบันและปีที่แล้ว
YTD Conversion = CALCULATE( SELECTEDMEASURE(), DATESYTD('Date'[Date]) )YTD Conversion =
CALCULATE(
SELECTEDMEASURE(),
DATESYTD('Date'[Date])
)
ค่า Measure นั้นจากต้นปีถึงวันปัจจุบัน
Formatted Value = SWITCH( TRUE(), SELECTEDMEASURE() < 1000, FORMAT(SELECTEDMEASURE(), "$#,##0"), SELECTEDMEASURE() < 1000000, FORMAT(SELECTEDMEASURE(), "$#,##0,…Formatted Value =
SWITCH(
TRUE(),
SELECTEDMEASURE() < 1000,
FORMAT(SELECTEDMEASURE(), "$#,##0"),
SELECTEDMEASURE() < 1000000,
FORMAT(SELECTEDMEASURE(), "$#,##0,.0K"),
FORMAT(SELECTEDMEASURE(), "$#,##0,,.0M")
)
ค่า Measure ที่ปรับรูปแบบตามขนาด (1K, 1M ฯลฯ)
ใช่ครับ SELECTEDMEASURE() ออกแบบมาให้ใช้ในบริบท Calculation Group, Calculation Item, หรือ Format String เท่านั้น ใช้ที่อื่นจะเกิดข้อผิดพลาด มันต้องมี Measure ต้นทางในบริบทการประมวลผลจึงจะดึงค่าได้ ส่วนตัวผมมักตรวจสอบก่อนเขียน Calculation Item ว่า Measure นั้นถูก Pivot แล้วหรือยัง
ทั้งสามฟังก์ชันเป็น trio ของ Calculation Group คำว่า SELECTED ก็คือต้องอยู่ใน Calculation Group เหมือนกัน แต่ SELECTEDMEASURE() คืนค่าตัวเลข (scalar value) ของ Measure ต้นทาง สำหรับการคำนวณต่อ ส่วน SELECTEDMEASURENAME() คืนชื่อของ Measure (text), และ SELECTEDMEASUREFORMATSTRING() คืนรูปแบบตัวเลข (format code) ของ Measure นั้น
CALCULATE จะเปลี่ยน filter context, SELECTEDMEASURE() จะดึงค่า Measure ต้นทางแต่ในบริบท filter context ใหม่ที่ CALCULATE กำหนด งานนี้มีประโยชน์มากเวลาสร้าง YoY, MoM, หรือ Cumulative ใน Calculation Item ตัวอย่างเช่น YoY Growth = SELECTEDMEASURE() – CALCULATE(SELECTEDMEASURE(), SAMEPERIODLASTYEAR(‘Date'[Date])) มันจะเก็บค่าปัจจุบัน ลบด้วยค่าปีที่แล้วของ Measure เดียวกัน
ไม่เหมือนกันเลย ถ้าเขียน [Sales Amount] ตรงๆ จะอ้างถึง Sales Amount นั้นโดยเฉพาะ แต่ SELECTEDMEASURE() เป็นตัวแทนไดนามิก (dynamic placeholder) ของ Measure ใดๆ ที่กำลัง Pivot อยู่ งานนี้มีประโยชน์มากเวลาต้อง Calculation Item เดียวใช้กับหลาย Measure
SELECTEDMEASURE คือฟังก์ชันพิเศษสำหรับ Calculation Group ใน Power BI ครับ ลองนึกภาพว่าคุณมี Measure หลายตัว เช่น ยอดขาย จำนวนสินค้า กำไร แล้วต้องการสร้าง Calculation Item เดียวที่ทำให้ทุก Measure บวก 10% ง่ายมาก SELECTEDMEASURE() จะดึงค่าของ Measure ปัจจุบันที่กำลังถูกประมวลผลอยู่ ไม่ว่ามันจะเป็น Measure ไหนก็ตาม
ที่เจ๋งคือไม่ต้องเขียนสูตรซ้ำหลายครั้ง ใช้ SELECTEDMEASURE() ครั้งเดียว มันจะทำงานกับทุก Measure ที่ถูกเลือกอัตโนมัติ ช่วยลดเวลาและลดข้อผิดพลาดได้มาก ส่วนตัวผมถือว่า Calculation Group รวมกับ SELECTEDMEASURE เป็นฟีเจอร์สำคัญของ Power BI ที่ช่วยให้การจัดการ Measure ยืดหยุ่นมากขึ้น สามารถสร้างการคำนวณแบบไดนามิกที่ใช้ได้กับหลาย Measure พร้อมกันได้ครับ