LASTDATE คืนค่าตารางที่มีวันที่สุดท้ายในบริบทตัวกรองปัจจุบัน มักใช้เป็นตารางตัวกรองให้ CALCULATE เพื่อคำนวณ measure ณ วันสุดท้ายของช่วงที่เลือก และสามารถใช้ MAXX เพื่อแปลงผลเป็น scalar date ได้
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| Dates | dates | คอลัมน์วันที่ หรือ table expression ที่ให้คอลัมน์วันที่ (ต้องเป็น date table ที่ทำเครื่องหมายถูกต้องในโมเดล) |
LASTDATE คืนค่าตารางวันที่ที่มี “วันที่สุดท้าย” ในบริบทตัวกรองปัจจุบัน โดยทั่วไปใช้เป็น ตารางตัวกรอง ใน CALCULATE เพื่อคำนวณค่าของวันสุดท้ายในช่วงที่เลือก เช่นยอดขายของวันสุดท้ายในเดือน/ไตรมาส/ช่วงวันที่ที่ผู้ใช้เลือก
ที่เจ๋งคือการใช้ LASTDATE ทำให้เราสามารถหาค่าสินค้าคงเหลือ (inventory) หรือยอดคงเหลือบัญชี (balance) ณ เวลาที่ต้องการได้ ซึ่งเป็นมาตรการประเมินผลแบบ semi-additive measure
ส่วนตัวผม LASTDATE กับ FIRSTDATE มักใช้คู่กัน เพื่อวิเคราะห์ว่าเกิดอะไรขึ้นในระหว่างช่วงเวลา 😎
หมายเหตุ: LASTDATE คืนค่าเป็น ตาราง ไม่ใช่ scalar date ดังนั้นถ้าต้องการดึงออกมาเป็นค่าเดี่ยว (วันที่) ให้ใช้ iterator เช่น MAXX เพื่อแปลงเป็น scalar
คำนวณ [Total Sales] เฉพาะวันสุดท้ายของช่วง
แปลงจากตารางวันที่ให้เป็น scalar date
ดึงวันแรก/วันสุดท้ายเพื่อวิเคราะห์ช่วงเวลา
LASTDATE ทำหน้าที่เป็นตารางตัวกรองให้ CALCULATE เลือกเฉพาะวันสุดท้ายในบริบทปัจจุบัน
เนื่องจาก Inventory Balance เป็น semi-additive measure จึงต้องใช้ LASTDATE เพื่อให้ได้ค่าที่ถูกต้องเท่านั้น
MAXX วนบนตาราง 1 แถวที่ LASTDATE คืนมา แล้วคืนค่า 'Date'[Date] ออกมาเป็น scalar
ใช้ VAR เพื่อเก็บค่าทั้งสองวัน แล้วนำมาเปรียบเทียบเพื่อดูการเปลี่ยนแปลง
LASTDATE คืนค่าเป็นตารางวันที่ (table) ดังนั้นถ้าต้องการค่าเดี่ยวให้ใช้ iterator เช่น MAXX หรือ MAX (ตามสิ่งที่ต้องการ)
LASTDATE หาวันที่สุดท้าย ส่วน LASTNONBLANK หาวันที่สุดท้ายที่มีค่าไม่เป็น blank ของ expression ที่กำหนด ใช้ LASTNONBLANK เมื่อต้องการค่าที่มีข้อมูล
ในหลายกรณี MAX จะให้ผลเป็น scalar และใช้ง่ายกว่า แต่ LASTDATE มีประโยชน์เมื่อคุณต้องการ "ตารางตัวกรอง" เพื่อใช้กับ CALCULATE หรือทำงานตามรูปแบบของ time intelligence
ฟังก์ชันที่ผู้เขียนโยงไว้กับ LASTDATE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CLOSINGBALANCEMONTH ประเมิน Expression ณ วันสิ้นเดือนของบริบทวันที่ปัจจุบัน เหมาะกับการทำมาตรวัดยอดคงเหลือปลายเดือน และรองรับการใส่ตัวกรองเพิ่มเติม
DATESBETWEEN คืนตารางวันที่ที่อยู่ระหว่าง StartDate และ EndDate (รวมวันเริ่ม/วันจบ) เหมาะกับการใช้เป็นตัวกรองเวลาใน CALCULATE เพื่อคำนวณตามช่วงวันที่ที่กำหนดเอง
DATESMTD คืนตารางวันที่ของช่วงตั้งแต่ต้นเดือนถึงวันที่ล่าสุดใน filter context เหมาะกับการทำยอดสะสมตั้งแต่ต้นเดือน (MTD) โดยใช้ร่วมกับ CALCULATE และควรใช้คู่กับ ShowValueForDates pattern เพื่อไม่ให้แสดงค่าในวันที่ยังไม่มีข้อมูล
ENDOFMONTH คืนตารางวันที่ของวันสิ้นเดือนตามปฏิทิน เหมาะกับ Semi-Additive Calculations เช่น ยอดคงเหลือ, Inventory, หรือ Closing Balance ที่ต้องการ snapshot ณ สิ้นเดือน ไม่ว่าจะมีข้อมูลจริงในวันนั้นหรือไม่
FIRSTDATE คืนค่าวันที่แรกในบริบทตัวกรองปัจจุบัน เหมาะใช้เป็นตัวกรองให้ CALCULATE เพื่อหายอดขาย/จำนวนของวันแรกในช่วงที่เลือก
FIRSTNONBLANK คืนค่าตัวแรกของ Column ที่ทำให้ Expression ไม่เป็น BLANK ใช้บ่อยเพื่อหา "ค่าแรกที่มีข้อมูล" เช่นวันแรกที่มียอดขาย (คืนค่าเป็นวันที่) และมักใช้ร่วมกับ time intelligence
FIRSTNONBLANKVALUE คืนค่าแรกที่ไม่เป็น BLANK ของ Expression เมื่อประเมินตามลำดับของ Column ซึ่งมีประโยชน์ในการหาค่าเริ่มต้นหรือค่าแรกที่มีข้อมูลจริง เช่นยอดขายของวันแรกที่มีการขาย
LASTNONBLANK คืนค่าตัวสุดท้ายจากคอลัมน์ที่ทำให้ expression ไม่เป็น BLANK ใช้บ่อยกับ semi-additive measures และเวลาต้องการหา "วันล่าสุดที่มีข้อมูล" ตามลำดับแถวของคอลัมน์
LASTNONBLANKVALUE คืนค่าสุดท้ายที่ไม่เป็น BLANK ของ Expression เมื่อประเมินตามลำดับของ Column ในบริบทตัวกรองปัจจุบัน ใช้หา "ค่าล่าสุดที่มีข้อมูล" เช่นยอดขายของวันล่าสุดที่มีค่า
OPENINGBALANCEMONTH ประเมิน Expression ณ จุดเปิดเดือน (วันสิ้นเดือนก่อนหน้า) เหมาะสำหรับหา opening balance ของยอดคงเหลือ สต็อก หรือสถิติ ณ จุดเริ่มเดือน
OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์
OPENINGBALANCEYEAR คำนวณค่า Expression ณ วันแรกของปี โดยดึงค่าจากวันสิ้นปีปีก่อนหน้า เหมาะสำหรับการหา opening balance ของคงเหลือ บัญชี สต็อก และค่าที่วัดได้แค่ที่จุดเวลาเดียว
STARTOFMONTH คืนวันแรกของเดือนเป็นตาราง 1 แถว ใช้กับการวัดที่ขึ้นต่อจุดเวลา เช่น ยอดคงเหลือ บัญชี หรือสินค้าคงคลัง
STARTOFYEAR คืนตาราง 1 แถวที่มีวันที่วันแรกของปีในบริบทปัจจุบัน ใช้สำหรับ semi-additive measure เช่น inventory balance หรือเปรียบเทียบ year-to-date
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
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่