คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › Power Query › จัดการแถว › Table.SelectRows

Table.SelectRows

Power Query · Mจัดการแถวระดับพื้นฐาน

อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop

เอกสารอ้างอิง: Table.SelectRows (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.

Table.SelectRows คืออะไร

เก็บเฉพาะแถวที่เงื่อนไขเป็นจริง เงื่อนไขเขียนด้วย each และอ้างคอลัมน์ของแถวนั้นด้วย [ชื่อคอลัมน์]

ปุ่มใน Power Query Editor ที่สร้างขั้นนี้ลูกศรกรองที่หัวคอลัมน์ › Text Filters หรือ Number Filters

ใช้เมื่อไหร่

  • เก็บเฉพาะแถวที่ต้องการ เช่น ภูมิภาคเดียว หรือคำสั่งซื้อตั้งแต่จำนวนที่กำหนด
  • ตัดแถวว่าง แถวรวม หรือแถวทดสอบออกก่อนโหลด

รูปแบบสูตร

Table.SelectRows(table as table, condition as function) as table

optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางต้นทาง
conditionจำเป็นฟังก์ชันที่คืนค่า true หรือ false ต่อแถว มักเขียนเป็น each [คอลัมน์] = ค่า

ลองเลย: กรองคำสั่งซื้อของภูมิภาคที่เลือก ที่สั่งตั้งแต่จำนวนที่กำหนด

คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ

กดใน Power Query Editorลูกศรกรองที่หัวคอลัมน์ › Text Filters หรือ Number Filters
Ctrl + Enter คำนวณ · แก้ได้ทุกขั้น เลือกขั้นจาก Applied Steps
9 คอลัมน์ · 9 แถว
Filtered Rows · ตารางหลังขั้นนี้ 9 แถว 9 คอลัมน์
แถวABCเลขที่คำสั่งซื้อ100%วันที่100%ABCรหัสสินค้า100%ABCพนักงานขาย100%ABCภูมิภาค100%ABCช่องทาง100%123จำนวน100%1.2ราคาต่อหน่วย100%1.2ส่วนลด100%
1SF-2025-02384/1/2025P024นันทิดา กิจเจริญกลางOnline355200.05
2SF-2025-02395/1/2025P036อรทัย พิทักษ์วงศ์กลางOnline385400
3SF-2025-024714/1/2025P009อรทัย พิทักษ์วงศ์กลางTraditional Trade397200
4SF-2025-025218/1/2025P001ปิยะนุช ศรีสวัสดิ์กลางTraditional Trade444200.1
5SF-2025-026510/2/2025P006นันทิดา กิจเจริญกลางModern Trade335600
6SF-2025-027623/2/2025P017ปิยะนุช ศรีสวัสดิ์กลางOnline422500
7SF-2025-028711/3/2025P030นันทิดา กิจเจริญกลางTraditional Trade344200.05
8SF-2025-029219/3/2025P009นันทิดา กิจเจริญกลางModern Trade577200.05
9SF-2025-030031/3/2025P030นันทิดา กิจเจริญกลางOnline554200

Filtered Rows · ขั้นนี้ทำอะไร

Table.SelectRows รับตาราง 65 แถว × 9 คอลัมน์ ได้ 9 แถว × 9 คอลัมน์

เรียกเงื่อนไขทีละแถว 65 ครั้ง ผลเป็น true 9 แถว (เก็บไว้) false 56 แถว (ตัดออก)

each ทำงานทีละแถว · 8 แถวแรกจาก 65 แถว
แถว[ภูมิภาค][จำนวน]ผล
1เหนือ54false · ตัด
2กลาง35true · เก็บ
3กลาง38true · เก็บ
4กลาง20false · ตัด
5กลาง18false · ตัด
6ตะวันออกเฉียงเหนือ21false · ตัด
7ตะวันออก30false · ตัด
8เหนือ20false · ตัด
Advanced Editor · โค้ดทั้ง query
let
    Source = Excel.CurrentWorkbook(){[Name="Sales"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"เลขที่คำสั่งซื้อ", type text}, {"วันที่", type date}, {"รหัสสินค้า", type text}, {"พนักงานขาย", type text}, {"ภูมิภาค", type text}, {"ช่องทาง", type text}, {"จำนวน", Int64.Type}, {"ราคาต่อหน่วย", type number}, {"ส่วนลด", type number}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each [ภูมิภาค] = "กลาง" and [จำนวน] >= 30)
in
    #"Filtered Rows"
วางใน Home › Advanced Editor ของ Power Query ในไฟล์ฝึกได้ทันที

ถ้าคุณใช้ Excel หรือ DAX อยู่แล้ว

EXCEL=FILTER(A2:I66, (E2:E66="กลาง")*(G2:G66>=30))

FILTER ใน Excel 365 กรองแบบเดียวกัน เงื่อนไขหลายข้อใน Excel คูณกัน ใน M ใช้ and / or

POWER QUERY · M#"Filtered Rows" = Table.SelectRows(#"Changed Type", each [ภูมิภาค] = "กลาง" and [จำนวน] >= 30)

เก็บเฉพาะแถวที่เงื่อนไขเป็นจริง เงื่อนไขเขียนด้วย each และอ้างคอลัมน์ของแถวนั้นด้วย [ชื่อคอลัมน์]

DAXFILTER('ยอดขาย', 'ยอดขาย'[จำนวน] >= 30)

FILTER ของ DAX กรองตอนคำนวณ Measure ข้อมูลยังอยู่ในโมเดล Table.SelectRows ตัดแถวทิ้งก่อนโหลด แถวที่ไม่ผ่านจะไม่มีในรายงานเลย

ข้อผิดพลาดและเคล็ดลับ

each [ภูมิภาค] = "กลาง" ย่อมาจาก (_) => _[ภูมิภาค] = "กลาง" คือฟังก์ชันที่ถูกเรียกทีละแถว
ข้อความใน M เทียบแบบตัวพิมพ์ใหญ่เล็กต่างกัน "Online" ไม่เท่ากับ "online" ถ้าข้อมูลพิมพ์ไม่สม่ำเสมอ ให้ล้างด้วย Text.Trim และ Text.Upper ก่อน
กรองแถวที่ไม่ใช้ตั้งแต่ใน Power Query ช่วยให้ไฟล์เล็กลง แต่ถ้ารายงานต้องเลือกดูได้หลายแบบ ให้กรองด้วย Slicer ใน Power BI แทน

แบบทดสอบ 3 ข้อ

1. each [ภูมิภาค] = "กลาง" ย่อมาจากอะไร

2. เงื่อนไขสองข้อที่ต้องจริงพร้อมกัน เขียนด้วยคำใด

3. "Online" = "online" ใน M ได้ผลเท่าไร

ไฟล์ฝึก Table.SelectRows

9Expert-M-Table-SelectRows-Practice-v1.0.xlsx

รุ่น 1.0 · 3/10/2026 · 21 KB · ไม่มี Macro · เปิดใน Excel › Data › Get Data › Blank Query แล้ววางโค้ดตั้งต้น ทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นข้อมูลส่งออกยอดขายเป้าหมายโค้ดตั้งต้นแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1ภูมิภาค = เหนือ และ จำนวน >= 10 เหลือกี่แถว · ดูที่ขั้น Filtered Rows
  2. ข้อ 2ภูมิภาค = ตะวันออกเฉียงเหนือ และ จำนวน >= 50 ผลรวมคอลัมน์ จำนวน · ดูที่ขั้น Filtered Rows
  3. ข้อ 3ภูมิภาค = ใต้ และ จำนวน >= 30 เหลือกี่แถว · ดูที่ขั้น Filtered Rows
  4. ข้อ 4ภูมิภาค = ตะวันออก และ จำนวน >= 10 เลขที่คำสั่งซื้อแถวแรกคืออะไร · ดูที่ขั้น Filtered Rows
  5. ข้อ 5ภูมิภาค = กลาง และ จำนวน >= 50 ผลรวมคอลัมน์ จำนวน · ดูที่ขั้น Filtered Rows

ไปต่อ

อยากใช้ Power Query เตรียมข้อมูลจริงทั้งระบบ

ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน

ดูหลักสูตร