Table.Last ใช้ดึงแถวสุดท้ายของตารางออกมาเป็น Record หรือคืนค่าเริ่มต้นถ้าตารางว่างเปล่า
=Table.Last(table as table, optional default as any) as any
=Table.Last(table as table, optional default as any) as any
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | Table | Yes | ตารางข้อมูลที่ต้องการดึงแถวสุดท้าย | |
| default | Any | Optional | null | ค่าที่จะคืนกลับหากตารางว่างเปล่า ถ้าไม่ระบุและตารางว่างจะเกิด error |
let Source = Table.FromRecords({ [CustomerID = 1, Name = "Bob", Sales = 100], [CustomerID = 2, Name = "Jim", Sales = 200], [CustomerID = 3, Name = "Paul", Sales…let
Source = Table.FromRecords({
[CustomerID = 1, Name = "Bob", Sales = 100],
[CustomerID = 2, Name = "Jim", Sales = 200],
[CustomerID = 3, Name = "Paul", Sales = 300]
}),
LastRow = Table.Last(Source)
in
LastRow
[CustomerID = 3, Name = "Paul", Sales = 300]
let EmptyTable = Table.FromRecords({}), Result = Table.Last(EmptyTable, [CustomerID = 0, Name = "No Data", Sales = 0]) in Resultlet
EmptyTable = Table.FromRecords({}),
Result = Table.Last(EmptyTable, [CustomerID = 0, Name = "No Data", Sales = 0])
in
Result
[CustomerID = 0, Name = "No Data", Sales = 0]
let Source = Table.FromRecords({ [Date = "2025-01-01", Price = 100], [Date = "2025-01-02", Price = 105], [Date = "2025-01-03", Price = 102] }), LastRecord = Tab…let
Source = Table.FromRecords({
[Date = "2025-01-01", Price = 100],
[Date = "2025-01-02", Price = 105],
[Date = "2025-01-03", Price = 102]
}),
LastRecord = Table.Last(Source),
LatestPrice = LastRecord[Price]
in
LatestPrice
102
let Table1 = Table.FromRecords({ [ID = 1, Value = 10], [ID = 2, Value = 20] }), List1 = {10, 20, 30}, TableLastRecord = Table.Last(Table1), ListLastValue = List…let
Table1 = Table.FromRecords({
[ID = 1, Value = 10],
[ID = 2, Value = 20]
}),
List1 = {10, 20, 30},
TableLastRecord = Table.Last(Table1),
ListLastValue = List.Last(List1)
in
{TableLastRecord, ListLastValue}
{[ID = 2, Value = 20], 30}
ถ้าไม่ระบุ default value และตารางว่าง จะเกิด error “Expression.Error: The table is empty.” แนวทางแก้คือระบุ default value เสมอเมื่อมีความเป็นไปได้ที่ตารางจะว่าง เช่น Table.Last(Source, null) หรือ Table.Last(Source, [DefaultRecord])
Table.First ดึงแถวแรก Table.Last ดึงแถวสุดท้าย ทั้งคู่คืนค่าเป็น Record และใช้ optional default value เหมือนกัน
Table.Last ทำงานกับตารางและคืน Record ส่วน List.Last ทำงานกับลิสต์และคืนค่าเดี่ยว (scalar value)
ได้ แนะนำให้ Sort ข้อมูลก่อน แล้วใช้ Table.Last เพื่อดึงค่าที่สูงสุดหรือต่ำสุด เช่น Table.Sort(Source, {“Price”, Order.Descending}) |> Table.Last() จะได้ราคาสูงสุด
ใช่ Table.FirstN, Table.LastN, Table.Max, Table.Min ล้วนใช้ในการเลือกหรือค้นหาข้อมูลในตารางเหมือนกัน
Table.Last(table, optional default) ดึงแถวสุดท้ายของตารางออกมา ถ้าตารางมีข้อมูลจะคืน Record แถวสุดท้าย ถ้าตารางว่างเปล่าจะคืนค่าเริ่มต้นที่กำหนด
ส่วนตัวผมชอบใช้ Table.Last ในการดึงข้อมูลอัพเดตล่าสุด เช่น ส่วนราคาสินค้า วันที่ปรับปรุงล่าสุด หรือการดึงค่าสรุปท้ายตารางจากข้อมูล Sales ที่เรียงตามวันที่แล้ว ทำให้โค้ดอ่านง่ายขึ้นเยอะครับ 😎
ของดี ๆ ของ Table.Last คือ มันปลอดภัย ถ้าตารางไม่มีข้อมูล ยังไม่ error ตราบเท่าที่เรากำหนด default value ให้มัน จึงเหมาะสำหรับการจัดการข้อมูลที่ไม่แน่นอนหรือข้อมูลที่อาจเป็นว่างได้