OPENINGBALANCEWEEK ประเมิน Expression ณ จุดเปิดสัปดาห์ (คือวันสิ้นสัปดาห์ก่อนหน้า) ใช้เพื่อเปรียบเทียบค่าเปลี่ยนแปลงระหว่างเปิดและปิดสัปดาห์
=OPENINGBALANCEWEEK(<Expression>, <Dates>, [<Filter>])
=OPENINGBALANCEWEEK(<Expression>, <Dates>, [<Filter>])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Expression | expression | Yes | นิพจน์หรือ Measure ที่ต้องการประเมิน ณ จุดเปิดสัปดาห์ สามารถเป็น SUM, SUMX หรือ Measure อื่นก็ได้ | |
| Dates | table/column | Yes | คอลัมน์วันที่ (ต้องเป็นขนาด Date) หรือ table expression ที่ให้คอลัมน์วันที่ มักใช้ ‘Date'[Date] หรือ Calendar[DateColumn] | |
| Filter | expression | Optional | ตัวกรองเพิ่มเติมที่ใช้ควบคุมบริบทเพิ่มเติม (ไม่บังคับ) |
ใช้เป็นค่าอ้างอิงก่อนเริ่มสัปดาห์เพื่อเทียบการเปลี่ยนแปลง
เทียบเปิด/ปิดงวดรายสัปดาห์
Opening Sales WK = OPENINGBALANCEWEEK( [Total Sales], 'Date'[Date] )Opening Sales WK =
OPENINGBALANCEWEEK(
[Total Sales],
'Date'[Date]
)
ค่า Total Sales ณ จุดเปิดสัปดาห์ (วันสิ้นสัปดาห์ก่อน) เช่น หากวันนี้คือวันพฤหัสบดี จะได้ค่า Sales ณ วันจันทร์ของสัปดาห์นั้น
WoW Change = VAR OpeningSales = [Opening Sales WK] VAR ClosingSales = [Closing Sales WK] RETURN ClosingSales - OpeningSalesWoW Change =
VAR OpeningSales = [Opening Sales WK]
VAR ClosingSales = [Closing Sales WK]
RETURN
ClosingSales - OpeningSales
ส่วนต่างระหว่างปิด (สิ้นสัปดาห์) และเปิด (จุดเริ่มสัปดาห์) เช่น 5000 - 3000 = 2000
Opening Inventory Value = OPENINGBALANCEWEEK( SUMX( Inventory, Inventory[UnitCost] * Inventory[QuantityOnHand] ), 'Date'[Date] )Opening Inventory Value =
OPENINGBALANCEWEEK(
SUMX(
Inventory,
Inventory[UnitCost] * Inventory[QuantityOnHand]
),
'Date'[Date]
)
มูลค่าคงเหลือสินค้า ณ จุดเปิดสัปดาห์ (ต้นสัปดาห์)
Opening High-Value Sales = OPENINGBALANCEWEEK( [Total Sales], 'Date'[Date], Products[Category] = "Electronics" )Opening High-Value Sales =
OPENINGBALANCEWEEK(
[Total Sales],
'Date'[Date],
Products[Category] = "Electronics"
)
ค่าเปิดสัปดาห์ แต่เฉพาะหมวด Electronics
PREVIOUSWEEK คืนตารางวันที่ของสัปดาห์ก่อนหน้า (ใช้เป็น filter table ในฟังก์ชั่นอื่น) ส่วน OPENINGBALANCEWEEK ประเมิน Expression ณ จุดสิ้นสัปดาห์ก่อนหน้า โดยตรง ดังนั้น PREVIOUSWEEK มักใช้ใน CALCULATE ส่วน OPENINGBALANCEWEEK ใช้ดี ๆ เพื่อหาค่าบ้านน
ขึ้นกับการออกแบบตารางวันที่และคอลัมน์สัปดาห์ (เช่น WeekNum, IsWeekEnd) ในโมเดล DAX ของคุณ ต้องตรวจสอบให้แน่ว่า ‘Date’ table มีคอลัมน์ที่ระบุว่าวันไหนคือสิ้นสัปดาห์ (IsWeekEnd = TRUE หรือ WeekEndDate column)
ใช้ได้ใน Measures (ที่มี filter context) แต่ใน Calculated Column ก็ใช้ได้ถ้ามี Date context ที่ชัดเจน แนะนำให้ใช้เป็น Measure เพราะมันเป็น time intelligence function
อาจได้ค่า BLANK() หรือผลลัพธ์ที่ไม่คาดหวัง ต้องแน่ใจว่าตารางวันที่ได้ init อย่างถูกต้อง (ลองใช้ CALENDARAUTO() หรือ DATE table ที่สร้างเอง)
OPENINGBALANCEWEEK เป็นฟังก์ชัน Time Intelligence ที่ทำงานคล้ายกับ OPENINGBALANCEMONTH แต่คำนวณเป็นระดับสัปดาห์ ฟังก์ชันนี้จะหาวันสิ้นสัปดาห์ก่อนหน้า (opening point) แล้วประเมิน Expression ณ จุดนั้น
ความเข้าใจพื้นฐาน: ถ้าเราพูดว่า “สัปดาห์นี้” opening balance คือค่าต่างๆ ณ จุดเริ่มต้นของสัปดาห์ (คือสิ้นสัปดาห์ก่อน) เพื่อให้เราวัดการเปลี่ยนแปลงระหว่างจุดเวลาสองจุด
ส่วนตัวผม คิดว่า ถ้าจำ CLOSINGBALANCEWEEK ให้เข้าใจ OPENINGBALANCEWEEK ทันที เพราะมันแค่สมาชิก opposite pair ของเดือน/ปี นะ 😎