Thep Excel

Table.First – ดึงข้อมูลแถวแรก

ดึงแถวแรก (Record) จากตารางข้อมูล พร้อมตัวเลือกค่า default สำหรับกรณีตารางว่าง

=Table.First(table as table, optional default as any) as any

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=Table.First(table as table, optional default as any) as any

Argument Type Required Default Description
table Table Yes ตารางข้อมูลที่ต้องการดึงแถวแรก
default Any Optional null ค่าที่จะคืนกลับถ้าตารางว่างเปล่า ถ้าไม่ระบุและตารางว่าง จะคืนค่า error จึงควรใส่ default เสมอในการใช้งานจริง

Examples

ดึงแถวแรกจากตารางปกติ
let Sales = Table.FromRecords({ [OrderID = 1, Customer = "Alice", Amount = 5000], [OrderID = 2, Customer = "Bob", Amount = 3200], [OrderID = 3, Customer = "Char…
ดึงแถวแรกสุด (Record) จากตาราง Sales ได้ OrderID=1 ของ Alice
Power Query Formula:

let
    Sales = Table.FromRecords({
        [OrderID = 1, Customer = "Alice", Amount = 5000],
        [OrderID = 2, Customer = "Bob", Amount = 3200],
        [OrderID = 3, Customer = "Charlie", Amount = 4500]
    }),
    FirstOrder = Table.First(Sales)
in
    FirstOrder

Result:

[OrderID = 1, Customer = "Alice", Amount = 5000]

ดึงแถวแรกพร้อม default value สำหรับตารางว่าง
let EmptyTable = Table.FromRecords({}), DefaultRecord = [OrderID = 0, Customer = "No Data", Amount = 0], Result = Table.First(EmptyTable, DefaultRecord) in Resu…
ตารางว่าง ดังนั้น Table.First คืนค่า default ที่ระบุไว้แทนที่จะเกิด error
Power Query Formula:

let
    EmptyTable = Table.FromRecords({}),
    DefaultRecord = [OrderID = 0, Customer = "No Data", Amount = 0],
    Result = Table.First(EmptyTable, DefaultRecord)
in
    Result

Result:

[OrderID = 0, Customer = "No Data", Amount = 0]

ดึงค่าจาก Field ในแถวแรก
let Employees = Table.FromRecords({ [Name = "David", Position = "Manager", Salary = 80000], [Name = "Emma", Position = "Analyst", Salary = 50000], [Name = "Fran…
ดึงแถวแรกเป็น Record แล้วเข้าถึง Field Name ได้ค่า "David"
Power Query Formula:

let
    Employees = Table.FromRecords({
        [Name = "David", Position = "Manager", Salary = 80000],
        [Name = "Emma", Position = "Analyst", Salary = 50000],
        [Name = "Frank", Position = "Developer", Salary = 65000]
    }),
    FirstRow = Table.First(Employees),
    FirstName = FirstRow[Name]
in
    FirstName

Result:

"David"

ใช้ Table.First หลังจากการกรองข้อมูล
let Products = Table.FromRecords({ [SKU = "A001", Category = "Fruits", Price = 30], [SKU = "B002", Category = "Vegetables", Price = 20], [SKU = "A002", Category…
กรองเฉพาะสินค้าประเภท Fruits แล้วดึงแถวแรก ถ้าไม่มี Fruits จะคืน default
Power Query Formula:

let
    Products = Table.FromRecords({
        [SKU = "A001", Category = "Fruits", Price = 30],
        [SKU = "B002", Category = "Vegetables", Price = 20],
        [SKU = "A002", Category = "Fruits", Price = 45]
    }),
    FilteredFruits = Table.SelectRows(Products, each [Category] = "Fruits"),
    FirstFruit = Table.First(FilteredFruits, [SKU = "EMPTY", Price = 0])
in
    FirstFruit

Result:

[SKU = "A001", Category = "Fruits", Price = 30]

FAQs

ต่างกันยังไง Table.First กับ Table.FirstN?

Table.First คืนค่า Record (แถว 1 รายการ) ส่วน Table.FirstN คืนค่า Table ที่มีหลายแถว เช่น Table.FirstN(tbl, 5) คืนตารางแถวแรก 5 แถว ถ้าต้องการแถวเดียว ใช้ Table.First ประหยัดกว่า

ถ้าตารางว่างแต่ไม่มี default จะเป็นไง?

จะเกิด error “Expression.Error: We cannot find a row to return” ดังนั้นหากไม่แน่ใจว่าตารางจะมีข้อมูล ควรใส่ default เสมอ

Table.First ใช้ได้กับ List ไหม?

ไม่ได้ Table.First ใช้ได้เฉพาะ Table type เท่านั้น ถ้าต้องการดึง Element แรกจาก List ให้ใช้ List.First แทน

แล้ว Table.Last ล่ะ ทำอะไร?

ทำหน้าที่เดียวกับ Table.First แต่ดึงแถวสุดท้าย (Last row) ของตารางแทน

ถ้าต้องการดึง Field ที่เป็น Number ก่อนใน Default จะทำไง?

ก็ระบุค่า Number ใน default ตรงๆ เช่น Table.First(tbl, 0) หรือ Table.First(tbl, null) ขึ้นอยู่กับว่าต้องการคืนค่าอะไร

Resources & Related

Additional Notes

Table.First ใช้สำหรับดึงแถวแรกของตารางออกมาเป็น Record ซึ่งต่างจาก Table.FirstN ที่คืนค่าเป็นตารางขนาดเล็ก

ฟังก์ชันนี้มีประโยชน์มากเวลาต้องการข้อมูลแถวแรกเท่านั้น เช่น ดึงชื่อผู้บริหารแถวแรกจากรายชื่อพนักงาน หรือดึง Header แถวแรกของข้อมูลต่างๆ ส่วนตัวผมใช้มันกับ Table.Last บ่อยมาก สำหรับดึงข้อมูลช่วงหรือหลักแรก-หลักสุดท้ายออกมาประมวลผล

จุดที่ต้องระวัง: ถ้าตารางว่าง Table.First จะ error ถ้าไม่มี default value ดังนั้นตอนเขียนโค้ดอย่าลืมใส่ default ไว้เสมอ

Leave a Reply

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