Table.Skip คืนตารางที่ลบแถวแรกๆ ออกไปแล้ว โดยสามารถระบุจำนวนแถวที่ต้องการข้าม หรือระบุเงื่อนไข (condition function) เพื่อข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรงแล้วหยุด ถ้าไม่ระบุจะข้ามแถวแรก 1 แถว ถ้าส่งเป็นตัวเลข เช่น 5 จะข้าม 5 แถวแรก ถ้าส่งเป็นฟังก์ชัน เช่น each [Amount] > 0 จะข้ามแถวที่ Amount > 0 จนกว่าจะเจอแถวที่ Amount ≤ 0
=Table.Skip(table as table, optional countOrCondition as any) as table
=Table.Skip(table as table, optional countOrCondition as any) as table
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางข้อมูลต้นฉบับที่ต้องการข้ามแถวแรก | |
| countOrCondition | any | Optional | 1 | ตัวเลข (จำนวนแถวที่ต้องการข้าม) หรือฟังก์ชันเงื่อนไข (each [Column] > value) สำหรับกรองแถว ถ้าไม่ระบุจะข้าม 1 แถว |
เมื่อนำเข้าข้อมูลจากหลายไฟล์ที่ต่อกัน แต่ละไฟล์มีหัวตารางซ้ำ ใช้ Table.Skip เพื่อกำจัดแถวหัวตารางที่ซ้ำออกหลังจากรวมไฟล์ ทำให้ได้ข้อมูลสะอาดพร้อมวิเคราะห์
เมื่อไฟล์มีข้อมูลสรุป metadata หรือหมายเหตุอยู่ในแถวแรกๆ ใช้ Table.Skip เพื่อข้ามไปยังข้อมูลจริงที่ต้องการวิเคราะห์ เช่น ข้าม 5 แถวแรกที่เป็นชื่อรายงานและวันที่
ข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรง เช่น ข้ามรายการที่สถานะเป็น Pending จนกว่าจะเจอรายการที่สถานะเป็น Completed แล้วเก็บข้อมูลตั้งแต่จุดนั้นเป็นต้นไป
let Source = Table.FromRecords({ [CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"], [CustomerID = 3, Name =…let
Source = Table.FromRecords({
[CustomerID = 1, Name = "Bob", Phone = "123-4567"],
[CustomerID = 2, Name = "Jim", Phone = "987-6543"],
[CustomerID = 3, Name = "Paul", Phone = "543-7890"],
[CustomerID = 4, Name = "Ringo", Phone = "232-1550"]
}),
SkipFirst2 = Table.Skip(Source, 2)
in
SkipFirst2
Table: {[CustomerID=3, Name="Paul", ...], [CustomerID=4, Name="Ringo", ...]}
let Source = Table.FromRecords({ [a = 1, b = 2], [a = 3, b = 4], [a = -5, b = -6], [a = 7, b = 8] }), SkipPositive = Table.Skip(Source, each [a] > 0) in SkipPos…let
Source = Table.FromRecords({
[a = 1, b = 2],
[a = 3, b = 4],
[a = -5, b = -6],
[a = 7, b = 8]
}),
SkipPositive = Table.Skip(Source, each [a] > 0)
in
SkipPositive
Table: {[a=-5, b=-6], [a=7, b=8]} (เริ่มจากแถว 3 เพราะ a=-5)
let Source = Table.FromRecords({ [Header = "Name", Header2 = "Age"], [Header = "Bob", Header2 = 25], [Header = "Alice", Header2 = 30] }), SkipHeader = Table.Ski…let
Source = Table.FromRecords({
[Header = "Name", Header2 = "Age"],
[Header = "Bob", Header2 = 25],
[Header = "Alice", Header2 = 30]
}),
SkipHeader = Table.Skip(Source)
in
SkipHeader
Table: {[Header="Bob", Header2=25], [Header="Alice", Header2=30]}
let Source = Table.FromRecords({ [Rank = 1, Product = "A", Sales = 1000], [Rank = 2, Product = "B", Sales = 5000], [Rank = 3, Product = "C", Sales = 3000], [Ran…let
Source = Table.FromRecords({
[Rank = 1, Product = "A", Sales = 1000],
[Rank = 2, Product = "B", Sales = 5000],
[Rank = 3, Product = "C", Sales = 3000],
[Rank = 4, Product = "D", Sales = 2000],
[Rank = 5, Product = "E", Sales = 1500]
}),
SkipTop2 = Table.Skip(Source, 2),
Next2After = Table.FirstN(SkipTop2, 2)
in
Next2After
Table: {[Rank=3, Product="C", Sales=3000], [Rank=4, Product="D", Sales=2000]}
Table.Skip และ Table.RemoveFirstN ทำงานเหมือนกัน Table.RemoveFirstN เป็นชื่อเดิม (deprecated) ส่วน Table.Skip เป็นชื่อใหม่ที่ Microsoft แนะนำให้ใช้ ทั้งสองทำงานเหมือนกันทุกประการ
จะคืนตารางว่าง (empty table) ไม่เกิด error เช่น ตารางมี 5 แถว แต่ระบุ Table.Skip(table, 100) จะได้ตารางว่างที่ไม่มีข้อมูล
Power Query จะเช็คแถวทีละแถวตามลำดับ ถ้าตรงเงื่อนไขก็ข้ามไปและเช็คแถวต่อไป พอเจอแถวที่ไม่ตรงเงื่อนไขจะหยุดข้ามและคืนแถวนั้นพร้อมแถวที่เหลือทั้งหมด ต่างจาก Table.SelectRows ที่เช็คทุกแถว
ใช้ Table.Skip เมื่อต้องการกำจัดแถวแรกๆ และเก็บแถวที่เหลือทั้งหมด ใช้ Table.Range เมื่อต้องการระบุทั้งจุดเริ่มต้นและจำนวนแถวที่ต้องการ Table.Range(table, 10, 5) จะดึงแถวที่ 11-15 เท่านั้น
ได้ Table.Skip(Source, 10) จะข้าม 10 แถวแรก ตามด้วย Table.FirstN(…, 5) จะดึง 5 แถวถัดมา ได้แถวที่ 11-15 เหมาะสำหรับดึงข้อมูลช่วงกลางๆ หรือข้าม outliers ในส่วนต้น
ฟังก์ชัน Table.Skip ใช้สำหรับข้ามหรือเอาแถวแรกๆ ของตารางออก สามารถระบุจำนวนแถวที่ต้องการข้าม หรือระบุเงื่อนไขเพื่อข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรง เหมาะสำหรับการกำจัดแถวหัวตารางซ้ำ หรือข้ามข้อมูลที่ไม่ต้องการในส่วนต้นๆ