SELECTEDMEASURE() คืนค่าของ Measure ต้นทางที่กำลังถูกประมวลผลอยู่ในบริบท Calculation Group ช่วยให้สร้าง Calculation Item ที่ยืดหยุ่น สามารถนำไปใช้งานกับหลาย Measure พร้อมกันได้อย่างมีประสิทธิภาพ
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| [(ไม่มีอาร์กิวเมนต์)]ไม่บังคับ | ไม่มี | ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ เลย จะดึงค่าของ Measure ปัจจุบันจากบริบทการประมวลผลโดยอัตโนมัติ |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
SELECTEDMEASURE คือฟังก์ชันพิเศษสำหรับ Calculation Group ใน Power BI ครับ ลองนึกภาพว่าคุณมี Measure หลายตัว เช่น ยอดขาย จำนวนสินค้า กำไร แล้วต้องการสร้าง Calculation Item เดียวที่ทำให้ทุก Measure บวก 10% ง่ายมาก SELECTEDMEASURE() จะดึงค่าของ Measure ปัจจุบันที่กำลังถูกประมวลผลอยู่ ไม่ว่ามันจะเป็น Measure ไหนก็ตาม
ที่เจ๋งคือไม่ต้องเขียนสูตรซ้ำหลายครั้ง ใช้ SELECTEDMEASURE() ครั้งเดียว มันจะทำงานกับทุก Measure ที่ถูกเลือกอัตโนมัติ ช่วยลดเวลาและลดข้อผิดพลาดได้มาก ส่วนตัวผมถือว่า Calculation Group รวมกับ SELECTEDMEASURE เป็นฟีเจอร์สำคัญของ Power BI ที่ช่วยให้การจัดการ Measure ยืดหยุ่นมากขึ้น สามารถสร้างการคำนวณแบบไดนามิกที่ใช้ได้กับหลาย Measure พร้อมกันได้ครับ
ใช้ใน Calculation Item เพื่อคืนค่าของ Measure ดั้งเดิมก่อนปรับแต่ง เช่น เพิ่ม/ลด/แปลงฟอร์แมต
นำค่า SELECTEDMEASURE ไปคูณ/บวก/ปรับเปอร์เซ็นต์ ตามกฎธุรกิจที่ต้องการ
ใช้ CALCULATE ปรับบริบทเวลา (เช่น ปีที่แล้ว) แล้วใช้ SELECTEDMEASURE คืนค่าต้นทางในบริบทใหม่
ใน Calculation Group แต่ละ Calculation Item สามารถใช้ SELECTEDMEASURE() เพื่ออ้างอิง Measure ปัจจุบันแล้วนำไปปรับแต่ง ไม่ว่า Measure นั้นจะเป็นอะไรก็ตาม
ใช้ VAR เก็บค่า SELECTEDMEASURE() ใน filter context ปกติ แล้วเก็บอีกค่าใน CALCULATE ที่มี SAMEPERIODLASTYEAR เพื่อเปลี่ยนบริบท ลบกันแล้วได้ผลต่าง ทั้งนี้เวลารัน Calculation Item นี้ไปใช้กับ Sales, Quantity, Profit มันจะเอา SELECTEDMEASURE() ไปแทนทั้งหมด
CALCULATE เปลี่ยน filter context ให้เป็นช่วงตั้งแต่ต้นปี แล้ว SELECTEDMEASURE() จะทำงานภายใต้บริบทใหม่นั้น ผลคือ YTD ของ Measure ใดๆ ที่เลือก
ใช้ SWITCH + SELECTEDMEASURE() เพื่อตรวจสอบขนาดของค่า แล้วเลือกรูปแบบให้เหมาะสม ค่าน้อยแสดง $, ค่ามากแสดง K, ค่าที่ยิ่งใหญ่แสดง M
ใช่ครับ 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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
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
EXTERNALMEASURE ใช้สำหรับการวิเคราะห์ข้อมูล DAX
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่