Thep Excel

EARLIESTฟังก์ชัน DAX

EARLIEST ดึงค่าคอลัมน์จาก row context ชั้นนอกสุดเมื่อสูตรสร้าง row context ซ้อน (เช่น FILTER, RANKX, SUMX ในคอลัมน์คำนวณ) ทำให้ยังเข้าถึงค่าดั้งเดิมของแถวที่กำลังประเมินได้แม้จะเข้าสู่บริบทใหม่

fx
=EARLIEST(<column>)

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

อัปเดต 14 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
column column คอลัมน์ที่ต้องการดึงค่าจาก row context ชั้นนอกสุด

EARLIEST ใช้เรียกค่าคอลัมน์จาก row context ชั้นนอกสุดเมื่อสูตรสร้าง row context ซ้อน (เช่น FILTER หรือ iterator ต่างๆ) ช่วยอ้างอิงค่าดั้งเดิมของแถวในคอลัมน์คำนวณได้อย่างถูกต้อง

Examples

ลำดับยอดขายภายใน Category (Calculated Column)Category Position = CALCULATE( RANKX( FILTER( Sales, Sales[Category] = EARLIEST(Sales[Category]) ), Sales[Amount] ), ALL( Sales ) )

FILTER สร้าง row context ใหม่ภายใน CALCULATE แต่ EARLIEST ดึง Category จาก row context ชั้นนอกสุดของคอลัมน์คำนวณ ทำให้ RANKX จัดอันดับในกลุ่มเดียวกันได้ถูกต้อง

fx
Category Position =
CALCULATE(
RANKX(
FILTER( Sales, Sales[Category] = EARLIEST(Sales[Category]) ),
Sales[Amount]
),
ALL( Sales )
)

ผลลัพธ์ลำดับยอดขายต่อหมวดหมู่ของแต่ละแถวใน Sales
หาสัดส่วนยอดขายเทียบยอดรวม CategoryCategory Share = VAR CategoryFromOuter = EARLIEST(Sales[Category]) RETURN DIVIDE( SUMX( FILTER(Sales, Sales[Category] = CategoryFromOuter), Sales[Amount] ), CAL…

เก็บ Category จาก row context ดั้งเดิมด้วย EARLIEST ก่อน SUMX จะวนในกลุ่มเดียวกัน แล้วใช้ DIVIDE แบ่งยอดขายปัจจุบันกับยอดรวมของหมวดหมู่เดียวกัน

fx
Category Share =
VAR CategoryFromOuter = EARLIEST(Sales[Category])
RETURN
DIVIDE(
SUMX( FILTER(Sales, Sales[Category] = CategoryFromOuter), Sales[Amount] ),
CALCULATE( SUM(Sales[Amount]), Sales[Category] = CategoryFromOuter )
)

ผลลัพธ์เปอร์เซ็นต์ยอดขายของแถวปัจจุบันเทียบกับยอดรวมใน Category เดียวกัน
ใช้ใน iterator ซ้อนเพื่อตรวจจับค่าต้นทางMatch Outer Value = SUMX( FILTER( Sales, Sales[Customer] = EARLIEST(Sales[Customer]) ), IF( Sales[Amount] = EARLIEST(Sales[Amount]), 1, 0 ) )

FILTER และ SUMX สร้าง row context เพิ่มเติม แต่ EARLIEST ดึง Customer และ Amount จาก row context ชั้นนอกสุด ช่วยให้ตรวจจับค่าดั้งเดิมแม้อยู่ในลูปซ้อน

fx
Match Outer Value =
SUMX(
FILTER( Sales, Sales[Customer] = EARLIEST(Sales[Customer]) ),
IF( Sales[Amount] = EARLIEST(Sales[Amount]), 1, 0 )
)

ผลลัพธ์จำนวนแถวในลูกค้าคนเดียวกันที่ Amount เท่ากับค่าของแถวปัจจุบัน

FAQs

ควรใช้เมื่อไร+

ใช้เมื่อสูตรสร้าง row context ซ้อน เช่น คอลัมน์คำนวณที่ใช้ FILTER, SUMX, RANKX แล้วต้องอ้างอิงค่าของแถวต้นทาง

ใช้กับ Measure ได้หรือไม่+

EARLIEST ออกแบบมาสำหรับคอลัมน์คำนวณที่มี row context หากใช้ใน Measure (ไม่มี row context) จะไม่ทำงานและควรใช้การอ้างอิงแบบอื่นแทน

ใช้งานใน DirectQuery ได้หรือไม่+

ไม่รองรับในโหมด DirectQuery สำหรับคอลัมน์คำนวณหรือ RLS ตามข้อจำกัดของ Microsoft

Resources & Related

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

ฟังก์ชันนี้EARLIESTOther
Other (1)
EARLIER

EARLIER คืนค่าของคอลัมน์ใน Row Context ชั้นนอก (Outer Row Context) เพื่อให้คอลัมน์คำนวณสามารถอ้างอิงค่า “ของแถวปัจจุบัน” ระหว่างการวนซ้อน (เช่น FILTER ภายใน Calculated Column) ได้

Comments

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