Thep Excel

EARLIEST – ฟังก์ชัน DAX

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

=EARLIEST(<column>)

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
4/10

Difficulty
4/10

Usefulness
4/10

Syntax & Arguments

=EARLIEST(<column>)

Argument Type Required Default Description
column column Yes คอลัมน์ที่ต้องการดึงค่าจาก row context ชั้นนอกสุด

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 จัดอันดับในกลุ่มเดียวกันได้ถูกต้อง
DAX Formula:

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

Result:

ลำดับยอดขายต่อหมวดหมู่ของแต่ละแถวใน Sales

หาสัดส่วนยอดขายเทียบยอดรวม Category
Category Share = VAR CategoryFromOuter = EARLIEST(Sales[Category]) RETURN DIVIDE( SUMX( FILTER(Sales, Sales[Category] = CategoryFromOuter), Sales[Amount] ), CAL…
เก็บ Category จาก row context ดั้งเดิมด้วย EARLIEST ก่อน SUMX จะวนในกลุ่มเดียวกัน แล้วใช้ DIVIDE แบ่งยอดขายปัจจุบันกับยอดรวมของหมวดหมู่เดียวกัน
DAX Formula:

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

Result:

เปอร์เซ็นต์ยอดขายของแถวปัจจุบันเทียบกับยอดรวมใน 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 ชั้นนอกสุด ช่วยให้ตรวจจับค่าดั้งเดิมแม้อยู่ในลูปซ้อน
DAX Formula:

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

Result:

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

FAQs

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

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

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

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

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

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

Resources & Related

Additional Notes

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

Leave a Reply

Your email address will not be published. Required fields are marked *