Table.SelectRows
อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop
เอกสารอ้างอิง: Table.SelectRows (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.
Table.SelectRows คืออะไร
เก็บเฉพาะแถวที่เงื่อนไขเป็นจริง เงื่อนไขเขียนด้วย each และอ้างคอลัมน์ของแถวนั้นด้วย [ชื่อคอลัมน์]
ใช้เมื่อไหร่
- เก็บเฉพาะแถวที่ต้องการ เช่น ภูมิภาคเดียว หรือคำสั่งซื้อตั้งแต่จำนวนที่กำหนด
- ตัดแถวว่าง แถวรวม หรือแถวทดสอบออกก่อนโหลด
รูปแบบสูตร
optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| table | จำเป็น | ตารางต้นทาง |
| condition | จำเป็น | ฟังก์ชันที่คืนค่า true หรือ false ต่อแถว มักเขียนเป็น each [คอลัมน์] = ค่า |
ลองเลย: กรองคำสั่งซื้อของภูมิภาคที่เลือก ที่สั่งตั้งแต่จำนวนที่กำหนด
คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ
| แถว | ABCเลขที่คำสั่งซื้อ100% | วันที่100% | ABCรหัสสินค้า100% | ABCพนักงานขาย100% | ABCภูมิภาค100% | ABCช่องทาง100% | 123จำนวน100% | 1.2ราคาต่อหน่วย100% | 1.2ส่วนลด100% |
|---|---|---|---|---|---|---|---|---|---|
| 1 | SF-2025-0238 | 4/1/2025 | P024 | นันทิดา กิจเจริญ | กลาง | Online | 35 | 520 | 0.05 |
| 2 | SF-2025-0239 | 5/1/2025 | P036 | อรทัย พิทักษ์วงศ์ | กลาง | Online | 38 | 540 | 0 |
| 3 | SF-2025-0247 | 14/1/2025 | P009 | อรทัย พิทักษ์วงศ์ | กลาง | Traditional Trade | 39 | 720 | 0 |
| 4 | SF-2025-0252 | 18/1/2025 | P001 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Traditional Trade | 44 | 420 | 0.1 |
| 5 | SF-2025-0265 | 10/2/2025 | P006 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 33 | 560 | 0 |
| 6 | SF-2025-0276 | 23/2/2025 | P017 | ปิยะนุช ศรีสวัสดิ์ | กลาง | Online | 42 | 250 | 0 |
| 7 | SF-2025-0287 | 11/3/2025 | P030 | นันทิดา กิจเจริญ | กลาง | Traditional Trade | 34 | 420 | 0.05 |
| 8 | SF-2025-0292 | 19/3/2025 | P009 | นันทิดา กิจเจริญ | กลาง | Modern Trade | 57 | 720 | 0.05 |
| 9 | SF-2025-0300 | 31/3/2025 | P030 | นันทิดา กิจเจริญ | กลาง | Online | 55 | 420 | 0 |
Filtered Rows · ขั้นนี้ทำอะไร
Table.SelectRows รับตาราง 65 แถว × 9 คอลัมน์ ได้ 9 แถว × 9 คอลัมน์
เรียกเงื่อนไขทีละแถว 65 ครั้ง ผลเป็น true 9 แถว (เก็บไว้) false 56 แถว (ตัดออก)
| แถว | [ภูมิภาค] | [จำนวน] | ผล |
|---|---|---|---|
| 1 | เหนือ | 54 | false · ตัด |
| 2 | กลาง | 35 | true · เก็บ |
| 3 | กลาง | 38 | true · เก็บ |
| 4 | กลาง | 20 | false · ตัด |
| 5 | กลาง | 18 | false · ตัด |
| 6 | ตะวันออกเฉียงเหนือ | 21 | false · ตัด |
| 7 | ตะวันออก | 30 | false · ตัด |
| 8 | เหนือ | 20 | false · ตัด |
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 อยู่แล้ว
=FILTER(A2:I66, (E2:E66="กลาง")*(G2:G66>=30))FILTER ใน Excel 365 กรองแบบเดียวกัน เงื่อนไขหลายข้อใน Excel คูณกัน ใน M ใช้ and / or
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each [ภูมิภาค] = "กลาง" and [จำนวน] >= 30)เก็บเฉพาะแถวที่เงื่อนไขเป็นจริง เงื่อนไขเขียนด้วย each และอ้างคอลัมน์ของแถวนั้นด้วย [ชื่อคอลัมน์]
FILTER('ยอดขาย', 'ยอดขาย'[จำนวน] >= 30)FILTER ของ DAX กรองตอนคำนวณ Measure ข้อมูลยังอยู่ในโมเดล Table.SelectRows ตัดแถวทิ้งก่อนโหลด แถวที่ไม่ผ่านจะไม่มีในรายงานเลย
ข้อผิดพลาดและเคล็ดลับ
แบบทดสอบ 3 ข้อ
1. each [ภูมิภาค] = "กลาง" ย่อมาจากอะไร
each คือฟังก์ชันที่รับแถวเป็น _ และ [คอลัมน์] คือ _[คอลัมน์]
2. เงื่อนไขสองข้อที่ต้องจริงพร้อมกัน เขียนด้วยคำใด
M ใช้ and, or, not ส่วน * เป็นวิธีของ FILTER ใน Excel
3. "Online" = "online" ใน M ได้ผลเท่าไร
การเทียบข้อความใน M แยกตัวพิมพ์ใหญ่เล็ก
ไฟล์ฝึก Table.SelectRows
9Expert-M-Table-SelectRows-Practice-v1.0.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1ภูมิภาค = เหนือ และ จำนวน >= 10 เหลือกี่แถว · ดูที่ขั้น Filtered Rows
- ข้อ 2ภูมิภาค = ตะวันออกเฉียงเหนือ และ จำนวน >= 50 ผลรวมคอลัมน์ จำนวน · ดูที่ขั้น Filtered Rows
- ข้อ 3ภูมิภาค = ใต้ และ จำนวน >= 30 เหลือกี่แถว · ดูที่ขั้น Filtered Rows
- ข้อ 4ภูมิภาค = ตะวันออก และ จำนวน >= 10 เลขที่คำสั่งซื้อแถวแรกคืออะไร · ดูที่ขั้น Filtered Rows
- ข้อ 5ภูมิภาค = กลาง และ จำนวน >= 50 ผลรวมคอลัมน์ จำนวน · ดูที่ขั้น Filtered Rows
ไปต่อ
ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน