ใน Microsoft Excel ตัวเลือก Advanced Filter จะเป็นประโยชน์เมื่อต้องการค้นหาข้อมูลที่ตรงตามเงื่อนไข 2 เงื่อนไขขึ้นไป ในบทความนี้เราจะสำรวจการประยุกต์ใช้ Advanced Filter Criteria Range ใน Excel อย่างลึกซึ้ง
ดาวน์โหลดไฟล์ฝึกปฏิบัติได้ที่นี่
18 การประยุกต์ใช้ Advanced Filter Criteria Range ใน Excel
1. ใช้ Advanced Filter Criteria Range กับตัวเลขและวันที่
ขั้นแรก มาทำความรู้จักชุดข้อมูลตัวอย่างกันก่อน คอลัมน์ B ถึง E แสดงข้อมูลการขายต่างๆ ตอนนี้เราสามารถนำ Advanced Filter Criteria Range มาใช้ได้ ในตัวอย่างนี้ เราจะกรองข้อมูลที่มีจำนวนการขาย (Quantity) มากกว่า 10 ดูขั้นตอนการทำงานกัน

- ไปที่แท็บ Data เลือกคำสั่ง Advanced จากกลุ่ม Sort & Filter จะมีกล่องโต้ตอบชื่อ Advanced Filter ปรากฏขึ้น

- เลือกตารางข้อมูลทั้งหมด (B4:E14) สำหรับ List range
- เลือกช่วงเซลล์ (C17:C18) เป็น Criteria range
- กด OK

- ผลลัพธ์จะแสดงเฉพาะข้อมูลที่มี Quantity มากกว่า 10 เท่านั้น

หมายเหตุ:
1. ต้องเลือก Criteria อย่างน้อย 2 แถว
2. ใช้หัวคอลัมน์ (Header) ที่ตรงกับคอลัมน์ที่ต้องการกรอง
2. กรองค่าข้อความด้วย Advanced Filter Criteria
เราสามารถเปรียบเทียบค่าข้อความด้วยอ็อปเปอเรเตอร์ตรรกะได้เหมือนกับตัวเลขและวันที่ ในส่วนนี้จะสาธิตการกรองข้อความเพื่อจับคู่ที่ตรงกันเป๊ะๆ (Exact match) และค้นหาข้อความที่ขึ้นต้นด้วยอักขระเฉพาะ
2.1 การจับคู่ข้อความที่ตรงกันเป๊ะ (Exact Match)
วิธีนี้จะคืนค่าเฉพาะข้อมูลที่ตรงกับข้อความที่ระบุทุกตัวอักษร สมมติมีชุดข้อมูลการขายพร้อมคอลัมน์ City เราต้องการดึงเฉพาะข้อมูลของเมือง 'NEW YORK' ทำตามขั้นตอนดังนี้:
- คลิกที่เซลล์ C18 แล้วใส่สูตร:
=EXACT(D5," NEW YORK")- กด Enter

- ตั้งค่าในกล่อง Advanced Filter ดังนี้:
List Range: B4:F14
Criteria Range: C17:C18
- กด OK

- ได้ข้อมูลเฉพาะเมือง 'NEW YORK' เท่านั้น

2.2 ค้นหาข้อความที่ขึ้นต้นด้วยอักขระเฉพาะ
คราวนี้เราจะกรองชื่อเมืองที่ขึ้นต้นด้วยคำว่า 'New' แทนการจับคู่แบบ Exact match ดูวิธีทำกัน

- ในกล่อง Advanced Filter ตั้งค่า Criteria ranges:
List Range: B4:F14
Criteria Range: C18:C19
- กด OK

- ได้ข้อมูลเมืองทั้งหมดที่ขึ้นต้นด้วย 'New'

3. ใช้ Wildcard กับ Advanced Filter
การใช้ Wildcard characters เป็นอีกวิธีหนึ่งในการใช้ Advanced Filter Criteria Range โดยปกติมี Wildcard 3 ประเภทใน Excel:
- ? (Question Mark) – แทนอักขระเดี่ยวใดๆ ในข้อความ
- * (Asterisk) – แทนอักขระจำนวนเท่าไรก็ได้
- ~ (Tilde) – ใช้แสดงว่า Wildcard นั้นเป็นอักขระจริงในข้อความ
เราสามารถค้นหาสตริงข้อความเฉพาะได้ด้วย Asterisk (*) ตัวอย่างนี้ค้นหาชื่อพนักงานขายที่ขึ้นต้นด้วย 'J' ขั้นตอนดังนี้:

- เปิดหน้าต่าง Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C18
- กด OK

- ได้ชื่อพนักงานขายที่ขึ้นต้นด้วย 'J' เท่านั้น

เนื้อหาเกี่ยวข้อง: Excel Advanced Filter [Multiple Columns & Criteria, Using Formula & with Wildcards]
4. ใช้สูตรกับ Advanced Filter Criteria Range
อีกวิธีหนึ่งคือการใช้สูตรใน Criteria Range ตัวอย่างนี้จะดึงข้อมูลที่มูลค่าการขาย (Sales) มากกว่า $350 ทำตามขั้นตอน:
- คลิกเซลล์ C19 ใส่สูตร:
=F5>350- กด OK

สูตรจะตรวจสอบว่ามูลค่าการขายมากกว่า $350 หรือไม่

- ในกล่อง Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C19
- กด OK

- ได้ข้อมูลเฉพาะที่มูลค่าการขายมากกว่า $350
5. Advanced Filter ด้วยเงื่อนไข AND Logic
ตอนนี้เราจะใช้ AND Logic ซึ่งต้องการให้ข้อมูลตรงตาม ทั้งสองเงื่อนไข พร้อมกัน ตัวอย่าง: กรองข้อมูลเมือง New York และมูลค่าการขาย >= 200

- ในกล่อง Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C18:C19
- กด OK

- ได้ข้อมูลเฉพาะเมือง New York ที่มียอดขายมากกว่า $250

6. ใช้ OR Logic กับ Advanced Filter Criteria Range
OR Logic จะคืนค่าข้อมูลที่ตรงตาม เงื่อนไขใดเงื่อนไขหนึ่ง เพียงอย่างเดียว ตัวอย่าง: ดึงข้อมูลเฉพาะเมือง New York และ Texas

- เปิด Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C18:C20
- กด OK

- ได้ข้อมูลเฉพาะเมือง New York และ Texas

7. รวม AND & OR Logic เป็น Criteria Range
เมื่อต้องการกรองข้อมูลด้วยหลายเงื่อนไขซับซ้อน สามารถผสมผสาน AND และ OR ได้ ตัวอย่างดังนี้:

- เปิด Advanced Filter ตั้งค่า Criteria:
List Range: B4:F14
Criteria Range: C18:C20
- กด OK

- ได้ข้อมูลที่ตรงตามเงื่อนไขที่กำหนด
8. ใช้ Advanced Filter Criteria Range ดึงคอลัมน์เฉพาะ
ตัวอย่างนี้จะกรองข้อมูลบางส่วน แล้วนำไปวางในคอลัมน์อื่น ใช้ชุดข้อมูลเดียวกัน ขั้นตอน:

- ในกล่อง Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C18:C20
- เลือกตัวเลือก Copy to another location
- ระบุ Copy to range เป็น H8:I10
- กด OK

- ได้ข้อมูลที่กรองแล้วอยู่ที่ H8:I10 ตามเงื่อนไข

9. คัดลอกข้อมูลไปยัง Worksheet อื่นหลังกรอง
ตัวอย่างนี้คัดลอกไปยัง Sheet อื่น (แตกต่างจากตัวอย่างก่อนหน้าที่อยู่ Sheet เดียวกัน)
- ไปที่ Sheet ชื่อ 'Another Worksheet-2' ซึ่งจะเป็นที่รับข้อมูล

ใน Sheet นี้มีคอลัมน์ 'City' และ 'Sales' เตรียมไว้

- เปิดกล่อง Advanced Filter

- ไปที่ 'Another Worksheet-1' (Sheet ต้นทาง) เลือก:
List Range: B4:F14
Criteria Range: C18:C19
- เลือก Copy to another location

- กลับไปที่ 'Another Worksheet-2' เลือก Copy to Range B2:C4
- กด OK

- ข้อมูลที่กรองแล้วปรากฏใน 'Another Worksheet-2'

10. ดึงเฉพาะค่าที่ไม่ซ้ำกัน (Unique Records)
กรณีนี้จะดึงเฉพาะค่าที่ไม่ซ้ำจากคอลัมน์เฉพาะ เช่น ดึงชื่อเมืองที่ไม่ซ้ำไปไว้คอลัมน์อื่น

- เปิด Advanced Filter ตั้งค่า:
List range: D4:D14
- เลือก Copy to another location
- ระบุ Copy to range: H4:H8
- ติ๊กถูก Unique records only
- กด OK

- ได้ชื่อเมืองที่ไม่ซ้ำกันในคอลัมน์ H

11. หาวันทำการ (Weekdays) ด้วย Advanced Filter
สามารถกรองเฉพาะวันที่ที่เป็นวันจันทร์-ศุกร์ได้ โดยใช้สูตร:
- คลิกเซลล์ C19 ใส่สูตร:
=AND(WEEKDAY(B5)<>1,WEEKDAY(B5)<>7)
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C18:C19
- กด OK

- ได้เฉพาะวันที่ที่เป็นวันทำการ (Weekdays)

🔎 การทำงานของสูตร:
- WEEKDAY(B5)<>1: 1 = วันอาทิตย์ → กรองวันที่ไม่ใช่วันอาทิตย์
- WEEKDAY(B5)<>7: 7 = วันเสาร์ → กรองวันที่ไม่ใช่วันเสาร์
- AND(...): รวมเงื่อนไข = ไม่ใช่วันเสาร์ และ ไม่ใช่วันอาทิตย์
12. หาวันหยุดสุดสัปดาห์ (Weekend) ด้วย Advanced Filter
ใช้สูตร OR เพื่อหาวันเสาร์-อาทิตย์:
- เซลล์ C19 ใส่สูตร:
=OR(WEEKDAY(B5)=1,WEEKDAY(B5)=7)- กด Enter

- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C18:C19
- กด OK

- ได้เฉพาะวันที่เป็นวันหยุดสุดสัปดาห์

13. กรองค่าที่สูงกว่าหรือต่ำกว่าค่าเฉลี่ย
ใช้ Advanced Filter กรองข้อมูลที่มูลค่าการขายสูงกว่าค่าเฉลี่ย:
- เซลล์ C19 ใส่สูตร:
=E5>AVERAGE(E5:E14)
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C18:C19
- กด OK

- ได้ข้อมูลเฉพาะที่มูลค่าขายสูงกว่าค่าเฉลี่ย

14. กรองเซลล์ว่างด้วย OR Logic
ถ้าข้อมูลมีเซลล์ว่าง สามารถดึงเฉพาะเซลล์ว่างได้ด้วยสูตร:
=B5=""
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C22
- กด OK

- ได้ข้อมูลเฉพาะแถวที่มีเซลล์ว่าง

15. กรองเซลล์ที่ไม่ว่างด้วย AND/OR Logic
ตรงข้ามกับตัวอย่างก่อนหน้า คือการกรองเฉพาะเซลล์ที่ ไม่ว่าง ใช้สูตร:
=B5<>""
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:G18
- กด OK

- ได้ข้อมูลที่ไม่มีเซลล์ว่างเลย

16. หา 5 อันดับแรก (Top 5) ด้วย Advanced Filter
ใช้ฟังก์ชัน LARGE เพื่อดึง 5 อันดับแรกของคอลัมน์ Sales:
=F5>=LARGE($F$5:$F$14,5)
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C18
- กด OK

- ได้ 5 อันดับแรกของคอลัมน์ Sales

17. หา 5 อันดับสุดท้าย (Bottom 5) ด้วย Advanced Filter
ใช้ฟังก์ชัน SMALL เพื่อดึง 5 อันดับสุดท้าย:
=F5<=SMALL($F$5:$F$14,5)
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C18
- กด OK

- ได้ 5 อันดับสุดท้ายของคอลัมน์ Sales

18. กรองแถวตามรายการที่ตรง/ไม่ตรงกับลิสต์
เปรียบเทียบ 2 คอลัมน์เพื่อเก็บหรือลบค่าที่ตรง/ไม่ตรงกัน
18.1 จับคู่กับรายการในลิสต์ (Matches)
มี 2 คอลัมน์ชื่อเมือง ต้องการเฉพาะค่าที่ตรงกัน ใช้สูตร:
=C5=E5
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C18
- กด OK

- ได้ค่าที่เหมือนกันในทั้ง 2 คอลัมน์

18.2 ไม่จับคู่กับรายการในลิสต์ (Do Not Match)
กรองค่าที่ ไม่ตรงกัน ระหว่าง 2 คอลัมน์ ใช้สูตร:
=C5<>E5
- ใน Advanced Filter ตั้งค่า:
List Range: B4:F14
Criteria Range: C17:C18
- กด OK

- ได้ค่าในคอลัมน์ C และ E ที่ไม่ตรงกัน

สรุป
บทความนี้ครอบคลุมวิธีการใช้ Advanced Filter Criteria Range อย่างครบถ้วน ดาวน์โหลดไฟล์ฝึกปฏิบัติเพื่อลองทำเองได้ หากมีข้อสงสัยหรือข้อเสนอแนะ สามารถทิ้งความคิดเห็นได้ครับ
บทความเกี่ยวข้อง
- Excel Advanced Filter Not Working (2 Reasons & Solutions)
- Dynamic Advanced Filter Excel (VBA & Macro)
- How to Use the Advanced Filter in VBA (A Step-by-Step Guideline)