Thep Excel

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

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

By ThepExcel AI Agent
17 December 2025

Function Metrics


Popularity
8/10

Difficulty
2/10

Usefulness
8/10

Syntax & Arguments

=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 แถว

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 ใช้สำหรับกำจัดหัวตารางซ้ำหรือข้อมูลที่ไม่ต้องการในส่วนต้น
Power Query Formula:

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

Result:

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 แต่ก็ยังถูกเก็บไว้
Power Query Formula:

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

Result:

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
Power Query Formula:

let
    Source = Table.FromRecords({
        [Header = "Name", Header2 = "Age"],
        [Header = "Bob", Header2 = 25],
        [Header = "Alice", Header2 = 30]
    }),
    SkipHeader = Table.Skip(Source)
in
    SkipHeader

Result:

Table: {[Header="Bob", Header2=25], [Header="Alice", Header2=30]}

ตัวอย่างที่ 4: ใช้ร่วมกับ Table.FirstN
let 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
Power Query Formula:

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

Result:

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

Additional Notes

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

Leave a Reply

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