Thep Excel

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

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

fx
=Table.First(table, [default]) as any

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

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
table Table ตารางข้อมูลที่ต้องการดึงแถวแรก
[default]ไม่บังคับ Any null ค่าที่จะคืนกลับถ้าตารางว่างเปล่า ถ้าไม่ระบุและตารางว่าง จะคืนค่า error จึงควรใส่ default เสมอในการใช้งานจริง

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

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

fx
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

ผลลัพธ์[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

fx
let
EmptyTable = Table.FromRecords({}),
DefaultRecord = [OrderID = 0, Customer = "No Data", Amount = 0],
Result = Table.First(EmptyTable, DefaultRecord)
in
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"

fx
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

ผลลัพธ์"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

fx
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

ผลลัพธ์[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

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

ฟังก์ชันนี้Table.FirstTable functions
Table functions (2)
Table.Last

Table.Last ใช้ดึงแถวสุดท้ายของตารางออกมาเป็น Record หรือคืนค่าเริ่มต้นถ้าตารางว่างเปล่า

Table.SelectRows

Table.SelectRows เป็นฟังก์ชันสำหรับกรองตาราง (filter table) ใน Power Query โดยใช้ฟังก์ชันเงื่อนไข (condition function) เพื่อตรวจสอบแต่ละแถว ถ้าเงื่อนไขคืนค่า true จะเก็บแถวนั้นไว้ ถ้าเป็น false จะตัดทิ้ง สามารถใช้ keyword 'each' ร่วมกับการอ้างอิงคอลัมน์ด้วย [ColumnName] เพื่อเขียนเงื่อนไขได้สะดวก รองรับการกรองตามตัวเลข ข้อความ วันที่ การตรวจสอบค่า null และเงื่อนไขที่ซับซ้อนด้วย and/or operators ฟังก์ชันนี้รองรับ Query Folding ซึ่งช่วยเพิ่มประสิทธิภาพเมื่อทำงานกับ data source ขนาดใหญ่

List functions (1)
List.First

List.First ใช้เพื่อดึงค่าสมาชิกตัวแรกจาก List หากเอา List ว่างเปล่า ให้ใช้ค่า Default ปกป้อง

Comments

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