EARLIER คืนค่าของคอลัมน์ใน Row Context ชั้นนอก (Outer Row Context) เพื่อให้คอลัมน์คำนวณสามารถอ้างอิงค่า “ของแถวปัจจุบัน” ระหว่างการวนซ้อน (เช่น FILTER ภายใน Calculated Column) ได้
=EARLIER(<Column>[, <Number>])
=EARLIER(<Column>[, <Number>])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Column | column | Yes | คอลัมน์ที่ต้องการดึงค่าจาก Row Context ชั้นนอก | |
| Number | number | Optional | 1 | ระดับของ Row Context ชั้นนอกที่จะอ้างอิง (1 = ชั้นนอกถัดไป) |
คำนวณยอดสะสมต่อสินค้า โดยเทียบวันที่ของแถวอื่น ๆ กับวันที่ของแถวปัจจุบัน
หาลำดับของแถวโดยนับจำนวนแถวที่มีค่ามากกว่า/น้อยกว่าแถวปัจจุบัน
นับจำนวนแถวที่มีคีย์/หมวดหมู่เดียวกับแถวปัจจุบัน
ยอดสะสม = SUMX( FILTER( Sales, Sales[ProductKey] = EARLIER(Sales[ProductKey]) && Sales[OrderDate]ยอดสะสม =
SUMX(
FILTER(
Sales,
Sales[ProductKey] = EARLIER(Sales[ProductKey])
&& Sales[OrderDate] <= EARLIER(Sales[OrderDate])
),
Sales[SalesAmount]
)
ได้ยอดขายสะสมต่อ ProductKey เรียงตามวันที่ภายในตาราง Sales
อันดับราคา = COUNTROWS( FILTER( Product, Product[Price] > EARLIER(Product[Price]) ) ) + 1อันดับราคา =
COUNTROWS(
FILTER(
Product,
Product[Price] > EARLIER(Product[Price])
)
) + 1
ได้อันดับ 1, 2, 3,... โดย 1 คือราคาสูงสุด (ตามตรรกะตัวอย่างนี้)
จำนวนในหมวด = COUNTROWS( FILTER( Product, Product[Category] = EARLIER(Product[Category]) ) )จำนวนในหมวด =
COUNTROWS(
FILTER(
Product,
Product[Category] = EARLIER(Product[Category])
)
)
ได้จำนวนแถวของ Product ที่อยู่ใน Category เดียวกับแถวปัจจุบัน
EARLIER อ้างอิง Row Context ชั้นนอก “ตามระดับที่กำหนด” ส่วน EARLIEST ใช้เพื่ออ้างอิง Row Context ชั้นนอกสุด (บนสุด) เมื่อมีการวนซ้อนหลายชั้น
เพราะ EARLIER ต้องมี Row Context ชั้นนอกให้ย้อนกลับไปอ้างอิง ถ้าใช้ใน Measure หรือบริบทที่ไม่มีการสร้าง Row Context ซ้อนกัน จะไม่มี “ชั้นนอก” ให้ดึงค่า
EARLIER ใช้ใน Calculated Column เพื่อดึงค่าของคอลัมน์จาก Row Context ชั้นนอก (บริบทแถวก่อนหน้า) ในสถานการณ์ที่มีการวนซ้อน เช่น FILTER ภายในนิพจน์ของคอลัมน์คำนวณ ทำให้เราสามารถ “เทียบแถวปัจจุบัน” กับ “แถวอื่น ๆ” ได้
โดยทั่วไป ถ้าคุณสามารถแก้ด้วย VAR/ตัวแปร หรือใช้ Measure/ฟังก์ชันแบบ iterator ได้ จะอ่านง่ายกว่า แต่ EARLIER ยังจำเป็นในบางรูปแบบของงาน Calculated Column เช่นการทำอันดับหรือยอดสะสมแบบเทียบกับแถวปัจจุบัน