คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

FILTER

Dynamic ArrayระดับกลางExcel 2021+ไม่มีใน Excel 2016/2019

อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด บางช่องใช้ผลจาก LibreOffice และตรงกับตัวคำนวณของหน้าเว็บ

FILTER คืออะไร

ดึงทุกแถวที่ตรงเงื่อนไขออกมาเป็นตารางใหม่ ใส่ได้หลายเงื่อนไข และอัปเดตเองเมื่อข้อมูลหรือเงื่อนไขเปลี่ยน

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

  • ดึงคำสั่งซื้อของภาค พนักงาน หรือช่องทางที่เลือก ไปทำรายงานแยก
  • ทำตารางที่อัปเดตเองเมื่อเปลี่ยนเงื่อนไขใน Dropdown
  • กรองหลายเงื่อนไขพร้อมกัน แล้วเรียงหรือนับต่อในสูตรเดียว

รูปแบบสูตร

=FILTER(array, include, [if_empty])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
arrayจำเป็นช่วงหรือ array ที่ต้องการกรอง เลือกเฉพาะคอลัมน์ที่อยากเห็นก็ได้
includeจำเป็นเงื่อนไขที่ได้ TRUE/FALSE ต้องสูง (หรือกว้าง) เท่ากับ array
[if_empty]ไม่บังคับค่าที่แสดงเมื่อไม่มีแถวที่ตรง ถ้าไม่ใส่จะได้ #CALC!

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

include = B5:B14=I4 ได้ TRUE/FALSE ทีละแถว FILTER เก็บเฉพาะแถวที่เป็น TRUE แล้ว spill ลงมาเอง

A17
=FILTER(A5:F14,B5:B14=I4)
include ตรวจทีละแถว B5:B14=I4 (I4 = "กลาง") ได้ FFTTTTFFTF ตรง 5 จาก 10 แถว
แถวABCDEFGH
4เลขที่คำสั่งซื้อภูมิภาคช่องทางสินค้าพนักงานขายยอดสุทธิ (บาท)
5SF-2025-0734ตะวันออกTraditional Tradeน้ำปลาแท้ 700 มล. (ลัง 12)สุภาพร หงษ์ทอง355,320
6SF-2025-0738ใต้Modern Tradeน้ำมะพร้าว 100% 330 มล. (แพ็ค 12)กมลชนก พงษ์พานิช1,235,098
7SF-2025-0739กลางTraditional Tradeน้ำดื่มสยามเฟรช 600 มล. (แพ็ค 12)นันทิดา กิจเจริญ22,878
8SF-2025-0741กลางTraditional Tradeโซดาสยามเฟรช 325 มล. (แพ็ค 24)นันทิดา กิจเจริญ298,740
9SF-2025-0746กลางOnlineบะหมี่กึ่งสำเร็จรูป รสต้มยำกุ้ง (ลัง 30)อรทัย พิทักษ์วงศ์51,062
10SF-2025-0753กลางFood Serviceแกงเขียวหวานไก่พร้อมทาน (กล่อง 12)อรทัย พิทักษ์วงศ์910,714
11SF-2025-0756ตะวันออกModern Tradeเวเฟอร์ช็อกโกแลต 100 ก. (กล่อง 24)สุภาพร หงษ์ทอง1,057,572
12SF-2025-0757ตะวันออกเฉียงเหนือOnlineน้ำจิ้มไก่ 350 มล. (ลัง 24)ธีรพงษ์ ฉัตรแก้ว100,296
13SF-2025-0771กลางOnlineกาแฟพร้อมดื่ม เอสเปรสโซ 240 มล. (แพ็ค 24)สุภาพร หงษ์ทอง126,000
14SF-2025-0784เหนือModern Tradeน้ำส้มคั้น 100% 350 มล. (แพ็ค 12)กมลชนก พงษ์พานิช289,275
15ผลลัพธ์จากสูตรในช่อง A17 · spill ลงมาเอง
16เลขที่คำสั่งซื้อภูมิภาคช่องทางสินค้าพนักงานขายยอดสุทธิ (บาท)
17SF-2025-0739กลางTraditional Tradeน้ำดื่มสยามเฟรช 600 มล. (แพ็ค 12)นันทิดา กิจเจริญ22,878
18SF-2025-0741กลางTraditional Tradeโซดาสยามเฟรช 325 มล. (แพ็ค 24)นันทิดา กิจเจริญ298,740
19SF-2025-0746กลางOnlineบะหมี่กึ่งสำเร็จรูป รสต้มยำกุ้ง (ลัง 30)อรทัย พิทักษ์วงศ์51,062
20SF-2025-0753กลางFood Serviceแกงเขียวหวานไก่พร้อมทาน (กล่อง 12)อรทัย พิทักษ์วงศ์910,714
21SF-2025-0771กลางOnlineกาแฟพร้อมดื่ม เอสเปรสโซ 240 มล. (แพ็ค 24)สุภาพร หงษ์ทอง126,000
22
23
24
A5:F14
B5:B14
ช่องกรอกและผลลัพธ์
สูตรที่ A17 (ผลลัพธ์ spill)
ขั้นตอนการคำนวณ (3)
ผลลัพธ์ในกรอบเส้นประมาจากสูตรเดียวในช่องสีเขียวมะนาว คลิกช่องไหนในผลลัพธ์ก็ได้เพื่อดูสูตร · แก้ข้อมูลด้านบนแล้วผลลัพธ์จะขยายหรือหดเอง · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 เงื่อนไขเดียว” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: ภาคกลางมี 5 แถว FILTER จึงคืน 5 แถว ครบทุกคอลัมน์ของ A5:F14
  • เลือกภาคอื่นใน I4 ผลลัพธ์จะยืดหรือหดตามจำนวนแถวที่ตรงเอง
  • include ต้องสูงเท่ากับ array: A5:F14 มี 10 แถว B5:B14 ก็ต้องมี 10 แถว ไม่งั้นได้ #VALUE!

ตัวอย่างทั้งหมด 4 แบบ

  1. 1ดึงคำสั่งซื้อทั้งแถวของภาคที่เลือก · include = B5:B14=I4 ได้ TRUE/FALSE ทีละแถว FILTER เก็บเฉพาะแถวที่เป็น TRUE แล้ว spill ลงมาเอง
  2. 2กรองสองเงื่อนไขพร้อมกัน (AND) · (B5:B14=I4)*(F5:F14>=I5) คูณเงื่อนไขทีละแถว ได้ 1 เฉพาะแถวที่ตรงทั้งสองข้อ
  3. 3กรองแบบหรือ (OR) และแสดงข้อความเมื่อไม่พบ · (B5:B14=I4)+(B5:B14=I5) บวกเงื่อนไข ตรงข้อใดข้อหนึ่งก็ถูกเก็บ ถ้าไม่มีแถวที่ตรงเลย FILTER แสดงค่าใน if_empty
  4. 4ดึงเฉพาะคอลัมน์ที่ต้องการ แล้วเรียงยอด · FILTER จากช่วง E5:F14 ได้แค่พนักงานกับยอดสุทธิ SORT เรียงยอดจากมากไปน้อย และ ROWS นับจำนวนคำสั่งซื้อ

ข้อผิดพลาดที่พบบ่อย

#CALC!สาเหตุ: ไม่มีแถวที่ตรงเงื่อนไข และไม่ได้ใส่ if_emptyแก้: ใส่ if_empty เช่น "ไม่พบข้อมูล"
#VALUE!สาเหตุ: include สูงไม่เท่ากับ array เช่น A5:F14 กับ B5:B13แก้: ให้ทั้งสองช่วงเริ่มและจบแถวเดียวกัน
#SPILL!สาเหตุ: มีข้อมูลขวางพื้นที่ผลลัพธ์แก้: ลบหรือย้ายข้อมูลที่ขวาง
#NAME?สาเหตุ: เปิดใน Excel 2016 หรือ 2019แก้: ใช้สูตรในชีต Excel 2016-2019 หรือเมนู Data > Filter

เคล็ดลับจากห้องเรียน

เงื่อนไขแบบ AND ใช้ * แบบ OR ใช้ + และใส่แต่ละเงื่อนไขในวงเล็บของตัวเอง ใช้ฟังก์ชัน AND() แทนไม่ได้ เพราะ AND() รวมทุกแถวเป็นค่าเดียว
แปลงข้อมูลเป็น Table (Ctrl + T) แล้วอ้างชื่อคอลัมน์ ผลลัพธ์จะรวมแถวใหม่ที่เพิ่มเข้ามาเอง
ช่องที่ว่างในข้อมูลต้นทางจะแสดงเป็น 0 ในผลลัพธ์ ตรวจข้อมูลต้นทางก่อนส่งรายงาน

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
FILTER

ใช้ Excel 2016 หรือ 2019 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างที่ระบุ และมีในชีต “Excel 2016-2019” ของไฟล์ฝึก ต่างจาก FILTER ตรงที่ผลลัพธ์ไม่ spill เอง ต้องลากสูตรลงให้พอกับจำนวนรายการ (ไม่ต้องกด Ctrl + Shift + Enter)

แทนตัวอย่างสูตรทางเลือก
ตัวอย่าง 1 เลขที่คำสั่งซื้อ=IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$5:$B$14)/($B$5:$B$14="กลาง"),ROWS($A$5:A5))),"") แล้วลากลง
ตัวอย่าง 1 ยอดสุทธิ=IFERROR(INDEX($F:$F,AGGREGATE(15,6,ROW($B$5:$B$14)/($B$5:$B$14="กลาง"),ROWS($A$5:A5))),"") แล้วลากลง

Office 2016 และ 2019 หมดระยะสนับสนุนตั้งแต่ 14 ต.ค. 2568 ไฟล์ยังเปิดได้ แต่ไม่มีอัปเดตความปลอดภัย

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
FILTERดึงทุกแถวที่ตรงเงื่อนไขเป็นตารางใหม่ อัปเดตเอง (2021 ขึ้นไป)=FILTER(A5:F14,B5:B14="กลาง")
XLOOKUPต้องการแค่รายการแรกที่พบ=XLOOKUP("กลาง",B5:B14,A5:A14)
COUNTIFS / SUMIFSต้องการแค่จำนวนหรือผลรวม ไม่ต้องเห็นรายการ=COUNTIFS(B5:B14,"กลาง")
Data > Filterซ่อนแถวในตารางเดิมชั่วคราว ดูครั้งเดียวData > Filter
INDEX + AGGREGATEดึงหลายแถวใน Excel 2016–2019 (ลากสูตรลง)=INDEX($A:$A,AGGREGATE(15,6,ROW(…)/(เงื่อนไข),ROWS($A$5:A5)))

ใน Power BI ใช้อะไร

ชื่อเดียวกัน แต่ FILTER ของ DAX คืนตารางไว้ใช้ต่อในสูตร ไม่แสดงเป็นแถว

Power QueryTable.SelectRows

กรองแถวแบบเดียวกัน แต่บันทึกเป็นขั้นตอนที่รันซ้ำได้ทุกครั้งที่ข้อมูลเปลี่ยน

ไฟล์ฝึก FILTER

9Expert-FILTER-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 33 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 เงื่อนไขเดียว2 สองเงื่อนไข (AND)3 หรือ (OR)4 เลือกคอลัมน์และเรียงแบบฝึกหัดเฉลยสรุปย่อExcel 2016-2019

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

  1. ข้อ 1เลขที่คำสั่งซื้อที่ขายผ่านช่องทาง Online
  2. ข้อ 2เลขที่คำสั่งซื้อที่ยอดสุทธิมากกว่า 1,000,000 บาท
  3. ข้อ 3ชื่อพนักงานขายของคำสั่งซื้อภาคกลางที่ขายผ่าน Online
  4. ข้อ 4เลขที่คำสั่งซื้อของภาคเหนือหรือภาคใต้
  5. ข้อ 5ดึงเลขที่คำสั่งซื้อภาคตะวันตก ถ้าไม่มีให้แสดงคำว่า ไม่พบข้อมูล

วิดีโอประกอบ

คลิปเรื่อง FILTER จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

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

1. =FILTER(A5:F14,B5:B14="กลาง") ถ้าไม่มีภาคกลางเลย จะได้อะไร

2. กรองแถวที่ภาคเป็นกลาง และยอดตั้งแต่ 100,000 เขียน include อย่างไร

3. include ต้องมีขนาดเท่าไร

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม