Thep Excel

Table.Skipข้าม N แถวแรกของตาราง

Table.Skip คืนตารางที่ลบแถวแรกๆ ออกไปแล้ว โดยสามารถระบุจำนวนแถวที่ต้องการข้าม หรือระบุเงื่อนไข (condition function) เพื่อข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรงแล้วหยุด ถ้าไม่ระบุจะข้ามแถวแรก 1 แถว ถ้าส่งเป็นตัวเลข เช่น 5 จะข้าม 5 แถวแรก ถ้าส่งเป็นฟังก์ชัน เช่น each [Amount] > 0 จะข้ามแถวที่ Amount > 0 จนกว่าจะเจอแถวที่ Amount ≤ 0

fx
=Table.Skip(table, [countOrCondition]) as table

ความนิยม8/10
ความยาก2/10
ประโยชน์8/10

อัปเดต 17 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
table table ตารางข้อมูลต้นฉบับที่ต้องการข้ามแถวแรก
[countOrCondition]ไม่บังคับ any 1 ตัวเลข (จำนวนแถวที่ต้องการข้าม) หรือฟังก์ชันเงื่อนไข (each [Column] > value) สำหรับกรองแถว ถ้าไม่ระบุจะข้าม 1 แถว

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

ฟังก์ชัน Table.Skip ใช้สำหรับข้ามหรือเอาแถวแรกๆ ของตารางออก สามารถระบุจำนวนแถวที่ต้องการข้าม หรือระบุเงื่อนไขเพื่อข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรง เหมาะสำหรับการกำจัดแถวหัวตารางซ้ำ หรือข้ามข้อมูลที่ไม่ต้องการในส่วนต้นๆ

How it works

ลบแถวหัวตารางซ้ำออก

เมื่อนำเข้าข้อมูลจากหลายไฟล์ที่ต่อกัน แต่ละไฟล์มีหัวตารางซ้ำ ใช้ Table.Skip เพื่อกำจัดแถวหัวตารางที่ซ้ำออกหลังจากรวมไฟล์ ทำให้ได้ข้อมูลสะอาดพร้อมวิเคราะห์

ข้ามข้อมูลสรุปหรือหมายเหตุในส่วนต้น

เมื่อไฟล์มีข้อมูลสรุป metadata หรือหมายเหตุอยู่ในแถวแรกๆ ใช้ Table.Skip เพื่อข้ามไปยังข้อมูลจริงที่ต้องการวิเคราะห์ เช่น ข้าม 5 แถวแรกที่เป็นชื่อรายงานและวันที่

ข้ามแถวจนกว่าเงื่อนไขจะเปลี่ยน

ข้ามแถวที่ตรงเงื่อนไขจนกว่าจะพบแถวที่ไม่ตรง เช่น ข้ามรายการที่สถานะเป็น Pending จนกว่าจะเจอรายการที่สถานะเป็น Completed แล้วเก็บข้อมูลตั้งแต่จุดนั้นเป็นต้นไป

Examples

ตัวอย่างที่ 1: ข้าม N แถวแรกตามจำนวนlet Source = Table.FromRecords({ [CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"], [CustomerID = 3, Name =…

ข้าม 2 แถวแรก (Bob และ Jim) ได้เหลือแค่ Paul และ Ringo ใช้สำหรับกำจัดหัวตารางซ้ำหรือข้อมูลที่ไม่ต้องการในส่วนต้น

fx
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", …]}
ตัวอย่างที่ 2: ข้ามแถวตามเงื่อนไข (Positive Values)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…

ข้ามแถวที่ a > 0 (แถว 1-2) จนกว่าจะพบแถวที่ a ≤ 0 (แถว 3) แล้วเก็บข้อมูลตั้งแต่แถว 3 เป็นต้นไป แม้แถว 4 จะมี a > 0 แต่ก็ยังถูกเก็บไว้

fx
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)
ตัวอย่างที่ 3: ข้ามแถวแรกเดียว (Default)let Source = Table.FromRecords({ [Header = "Name", Header2 = "Age"], [Header = "Bob", Header2 = 25], [Header = "Alice", Header2 = 30] }), SkipHeader = Table.Ski…

ไม่ระบุ parameter ที่สอง จะข้ามแถวแรก 1 แถว (แถวหัวตาราง) โดย default เหมาะสำหรับกรณีที่ต้องการกำจัดหัวตารางออกก่อน Promote Headers

fx
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]}
ตัวอย่างที่ 4: ใช้ร่วมกับ Table.FirstNlet Source = Table.FromRecords({ [Rank = 1, Product = "A", Sales = 1000], [Rank = 2, Product = "B", Sales = 5000], [Rank = 3, Product = "C", Sales = 3000], [Ran…

ข้าม 2 แถวแรก (A, B) แล้วดึง 2 แถวถัดมา (C, D) ได้อันดับที่ 3-4 pattern นี้ใช้สำหรับดึงข้อมูลช่วงกลางๆ หรือข้ามข้อมูล outliers

fx
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]}

FAQs

ต่างจาก Table.RemoveFirstN อย่างไร?+

Table.Skip และ Table.RemoveFirstN ทำงานเหมือนกัน Table.RemoveFirstN เป็นชื่อเดิม (deprecated) ส่วน Table.Skip เป็นชื่อใหม่ที่ Microsoft แนะนำให้ใช้ ทั้งสองทำงานเหมือนกันทุกประการ

ถ้าระบุ count มากกว่าจำนวนแถวจะเกิดอะไรขึ้น?+

จะคืนตารางว่าง (empty table) ไม่เกิด error เช่น ตารางมี 5 แถว แต่ระบุ Table.Skip(table, 100) จะได้ตารางว่างที่ไม่มีข้อมูล

เงื่อนไขใน condition parameter ทำงานอย่างไร?+

Power Query จะเช็คแถวทีละแถวตามลำดับ ถ้าตรงเงื่อนไขก็ข้ามไปและเช็คแถวต่อไป พอเจอแถวที่ไม่ตรงเงื่อนไขจะหยุดข้ามและคืนแถวนั้นพร้อมแถวที่เหลือทั้งหมด ต่างจาก Table.SelectRows ที่เช็คทุกแถว

ควรใช้ Table.Skip หรือ Table.Range?+

ใช้ Table.Skip เมื่อต้องการกำจัดแถวแรกๆ และเก็บแถวที่เหลือทั้งหมด ใช้ Table.Range เมื่อต้องการระบุทั้งจุดเริ่มต้นและจำนวนแถวที่ต้องการ Table.Range(table, 10, 5) จะดึงแถวที่ 11-15 เท่านั้น

สามารถใช้ร่วมกับ Table.FirstN ได้ไหม?+

ได้ Table.Skip(Source, 10) จะข้าม 10 แถวแรก ตามด้วย Table.FirstN(…, 5) จะดึง 5 แถวถัดมา ได้แถวที่ 11-15 เหมาะสำหรับดึงข้อมูลช่วงกลางๆ หรือข้าม outliers ในส่วนต้น

Resources & Related

Comments

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