Thep Excel

SELECTEDMEASUREดึงค่า Measure ที่กำลังถูกใช้งาน

SELECTEDMEASURE() คืนค่าของ Measure ต้นทางที่กำลังถูกประมวลผลอยู่ในบริบท Calculation Group ช่วยให้สร้าง Calculation Item ที่ยืดหยุ่น สามารถนำไปใช้งานกับหลาย Measure พร้อมกันได้อย่างมีประสิทธิภาพ

fx
=SELECTEDMEASURE()

ความนิยม4/10
ความยาก5/10
ประโยชน์5/10

อัปเดต 14 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
[(ไม่มีอาร์กิวเมนต์)]ไม่บังคับ ไม่มี ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ เลย จะดึงค่าของ Measure ปัจจุบันจากบริบทการประมวลผลโดยอัตโนมัติ

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

SELECTEDMEASURE คือฟังก์ชันพิเศษสำหรับ Calculation Group ใน Power BI ครับ ลองนึกภาพว่าคุณมี Measure หลายตัว เช่น ยอดขาย จำนวนสินค้า กำไร แล้วต้องการสร้าง Calculation Item เดียวที่ทำให้ทุก Measure บวก 10% ง่ายมาก SELECTEDMEASURE() จะดึงค่าของ Measure ปัจจุบันที่กำลังถูกประมวลผลอยู่ ไม่ว่ามันจะเป็น Measure ไหนก็ตาม

ที่เจ๋งคือไม่ต้องเขียนสูตรซ้ำหลายครั้ง ใช้ SELECTEDMEASURE() ครั้งเดียว มันจะทำงานกับทุก Measure ที่ถูกเลือกอัตโนมัติ ช่วยลดเวลาและลดข้อผิดพลาดได้มาก ส่วนตัวผมถือว่า Calculation Group รวมกับ SELECTEDMEASURE เป็นฟีเจอร์สำคัญของ Power BI ที่ช่วยให้การจัดการ Measure ยืดหยุ่นมากขึ้น สามารถสร้างการคำนวณแบบไดนามิกที่ใช้ได้กับหลาย Measure พร้อมกันได้ครับ

How it works

ดึงค่าต้นทางใน Calculation Group

ใช้ใน Calculation Item เพื่อคืนค่าของ Measure ดั้งเดิมก่อนปรับแต่ง เช่น เพิ่ม/ลด/แปลงฟอร์แมต

ปรับค่าที่เลือกด้วยตัวคูณ

นำค่า SELECTEDMEASURE ไปคูณ/บวก/ปรับเปอร์เซ็นต์ ตามกฎธุรกิจที่ต้องการ

เปลี่ยนบริบทเวลาแล้วดึงค่าปัจจุบัน

ใช้ CALCULATE ปรับบริบทเวลา (เช่น ปีที่แล้ว) แล้วใช้ SELECTEDMEASURE คืนค่าต้นทางในบริบทใหม่

Examples

ปรับค่า Measure ต้นทาง +10% ใน Calculation ItemBoosted Sales = SELECTEDMEASURE() * 1.10

ใน Calculation Group แต่ละ Calculation Item สามารถใช้ SELECTEDMEASURE() เพื่ออ้างอิง Measure ปัจจุบันแล้วนำไปปรับแต่ง ไม่ว่า Measure นั้นจะเป็นอะไรก็ตาม

fx
Boosted Sales = SELECTEDMEASURE() * 1.10

ผลลัพธ์ค่าของ Measure ต้นทางที่เพิ่มขึ้น 10%
คำนวณ Year-over-Year Growth สำหรับ Measure ใดๆYoY Growth = VAR CurrentYear = SELECTEDMEASURE() VAR PriorYear = CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR('Date'[Date]) ) RETURN CurrentYear – PriorYear

ใช้ VAR เก็บค่า SELECTEDMEASURE() ใน filter context ปกติ แล้วเก็บอีกค่าใน CALCULATE ที่มี SAMEPERIODLASTYEAR เพื่อเปลี่ยนบริบท ลบกันแล้วได้ผลต่าง ทั้งนี้เวลารัน Calculation Item นี้ไปใช้กับ Sales, Quantity, Profit มันจะเอา SELECTEDMEASURE() ไปแทนทั้งหมด

fx
YoY Growth =
VAR CurrentYear = SELECTEDMEASURE()
VAR PriorYear = CALCULATE(
SELECTEDMEASURE(),
SAMEPERIODLASTYEAR('Date'[Date])
)
RETURN CurrentYear – PriorYear

ผลลัพธ์ความแตกต่างระหว่างปีปัจจุบันและปีที่แล้ว
แปลง Measure ใดๆ เป็น Year-to-DateYTD Conversion = CALCULATE( SELECTEDMEASURE(), DATESYTD('Date'[Date]) )

CALCULATE เปลี่ยน filter context ให้เป็นช่วงตั้งแต่ต้นปี แล้ว SELECTEDMEASURE() จะทำงานภายใต้บริบทใหม่นั้น ผลคือ YTD ของ Measure ใดๆ ที่เลือก

fx
YTD Conversion =
CALCULATE(
SELECTEDMEASURE(),
DATESYTD('Date'[Date])
)

ผลลัพธ์ค่า Measure นั้นจากต้นปีถึงวันปัจจุบัน
ดึงค่า Measure พร้อมสูตรการจัดรูปแบบแบบไดนามิกFormatted Value = SWITCH( TRUE(), SELECTEDMEASURE() < 1000, FORMAT(SELECTEDMEASURE(), "$#,##0"), SELECTEDMEASURE() < 1000000, FORMAT(SELECTEDMEASURE(), "$#,##0,…

ใช้ SWITCH + SELECTEDMEASURE() เพื่อตรวจสอบขนาดของค่า แล้วเลือกรูปแบบให้เหมาะสม ค่าน้อยแสดง $, ค่ามากแสดง K, ค่าที่ยิ่งใหญ่แสดง M

fx
Formatted Value =
SWITCH(
TRUE(),
SELECTEDMEASURE() < 1000,
FORMAT(SELECTEDMEASURE(), "$#,##0"),
SELECTEDMEASURE() < 1000000,
FORMAT(SELECTEDMEASURE(), "$#,##0,.0K"),
FORMAT(SELECTEDMEASURE(), "$#,##0,,.0M")
)

ผลลัพธ์ค่า Measure ที่ปรับรูปแบบตามขนาด (1K, 1M ฯลฯ)

FAQs

SELECTEDMEASURE() ใช้ได้เฉพาะใน Calculation Group หรือไม่?+

ใช่ครับ SELECTEDMEASURE() ออกแบบมาให้ใช้ในบริบท Calculation Group, Calculation Item, หรือ Format String เท่านั้น ใช้ที่อื่นจะเกิดข้อผิดพลาด มันต้องมี Measure ต้นทางในบริบทการประมวลผลจึงจะดึงค่าได้ ส่วนตัวผมมักตรวจสอบก่อนเขียน Calculation Item ว่า Measure นั้นถูก Pivot แล้วหรือยัง

ต่างจาก SELECTEDMEASURENAME กับ SELECTEDMEASUREFORMATSTRING อย่างไร?+

ทั้งสามฟังก์ชันเป็น trio ของ Calculation Group คำว่า SELECTED ก็คือต้องอยู่ใน Calculation Group เหมือนกัน แต่ SELECTEDMEASURE() คืนค่าตัวเลข (scalar value) ของ Measure ต้นทาง สำหรับการคำนวณต่อ ส่วน SELECTEDMEASURENAME() คืนชื่อของ Measure (text), และ SELECTEDMEASUREFORMATSTRING() คืนรูปแบบตัวเลข (format code) ของ Measure นั้น

ถ้า SELECTEDMEASURE() ใช้ใน CALCULATE จะเกิดอะไร?+

CALCULATE จะเปลี่ยน filter context, SELECTEDMEASURE() จะดึงค่า Measure ต้นทางแต่ในบริบท filter context ใหม่ที่ CALCULATE กำหนด งานนี้มีประโยชน์มากเวลาสร้าง YoY, MoM, หรือ Cumulative ใน Calculation Item ตัวอย่างเช่น YoY Growth = SELECTEDMEASURE() – CALCULATE(SELECTEDMEASURE(), SAMEPERIODLASTYEAR('Date'[Date])) มันจะเก็บค่าปัจจุบัน ลบด้วยค่าปีที่แล้วของ Measure เดียวกัน

ใช้เหมือนกัน Reference ไปยัง Measure ปกติหรือไม่?+

ไม่เหมือนกันเลย ถ้าเขียน [Sales Amount] ตรงๆ จะอ้างถึง Sales Amount นั้นโดยเฉพาะ แต่ SELECTEDMEASURE() เป็นตัวแทนไดนามิก (dynamic placeholder) ของ Measure ใดๆ ที่กำลัง Pivot อยู่ งานนี้มีประโยชน์มากเวลาต้อง Calculation Item เดียวใช้กับหลาย Measure

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ SELECTEDMEASURE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้SELECTEDMEASUREInformation
Filter (1)
CALCULATE

CALCULATE เป็นฟังก์ชันหลักที่สำคัญที่สุดใน DAX ใช้สำหรับ evaluate expression ภายใต้ filter context ที่ถูกปรับเปลี่ยน สามารถเพิ่มตัวกรองใหม่ ลบตัวกรองเดิม หรือแทนที่ filter ที่มีอยู่ได้ รองรับทั้ง Boolean expression และ table expression เป็น filter arguments พร้อม filter modifier functions เช่น REMOVEFILTERS, ALL, ALLEXCEPT, KEEPFILTERS เพื่อควบคุมการกรองอย่างละเอียด มีพฤติกรรมพิเศษคือ context transition ที่เปลี่ยน row context เป็น filter context โดยอัตโนมัติ ทำให้เป็นเครื่องมือหลักในการสร้าง measure ที่ซับซ้อนและ calculated column ที่ต้องใช้ aggregation

Other (1)
EXTERNALMEASURE

EXTERNALMEASURE ใช้สำหรับการวิเคราะห์ข้อมูล DAX

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่