ในบทความนี้ ผมจะแสดงวิธีการกรองเกณฑ์หลายอย่างจากชุดข้อมูลด้วย VBA ใน Excel คุณจะได้เรียนรู้การกรองทั้งแบบ AND และแบบ OR สำหรับเกณฑ์หลายอย่าง
2 วิธีง่ายในการกรองหลายเกณฑ์ใน Excel ด้วย VBA
ที่นี่เรามีชุดข้อมูลที่มีชื่อ ชนิดหนังสือ และราคาของร้านหนังสือชื่อ Martin Bookstore

เป้าหมายของเราวันนี้คือการกรองหลายเกณฑ์จากชุดข้อมูลนี้ด้วย Visual Basic for Applications (VBA)
1. กรองหลายเกณฑ์แบบ AND ใน Excel ด้วย VBA
ก่อนอื่น เราจะพัฒนา Macro เพื่อกรองหลายเกณฑ์แบบ AND สำหรับชุดข้อมูลใดๆ
ตัวอย่าง ให้ลองกรองหนังสือที่เป็น นวนิยาย และมีราคามากกว่าหรือเท่ากับ $25.00
⧭ รหัส VBA:
Sub Filter_Multiple_Criteria_AND_Type()
Count = 1
For i = 1 To Selection.Rows.Count
If Selection.Cells(i, 2) = "Novel" And Selection.Cells(i, 3) >= 25 Then
For j = 1 To Selection.Columns.Count
Range("F4").Cells(Count, j) = Selection.Cells(i, j)
Next j
Count = Count + 1
End If
Next i
End Sub

⧭ ผลลัพธ์:
เลือกชุดข้อมูลจากชีตและรัน Macro นี้ (Filter_Multiple_Criteria_AND_Type)

มันจะกรองหนังสือที่เป็น นวนิยาย และมีราคามากกว่า $25.00 ไปยังช่วงใหม่เริ่มจากเซลล์ F4

⧭ หมายเหตุ:
- ในบรรทัดที่ 4 ของโค้ด เราใช้ Cells(i, 2) = "Novel" และ Selection.Cells(i, 3) >=25

- ที่นี่เราต้องการให้ค่าจากคอลัมน์ ที่ 2 (Book Type) เท่ากับ "Novel" และค่าจากคอลัมน์ ที่ 3 (Price) มากกว่าหรือเท่ากับ $25.00
- คุณสามารถเปลี่ยนได้ตามต้องการ
- เช่น หากต้องการหนังสือที่ราคามากกว่าหรือเท่ากับ $20.00 แต่น้อยกว่าหรือเท่ากับ $30.00 ให้ใช้ Selection.Cells(i, 3) >=20 และ Selection.Cells(i, 3) <=30
- ในบรรทัด 6 เราใช้ Range("F4") เพราะเราต้องการให้ข้อมูลที่กรองเริ่มจากเซลล์ F4

- คุณสามารถปรับเปลี่ยนได้ตามต้องการ
อ่านเพิ่มเติม: กรองหลายเกณฑ์ใน Excel
บทความที่เกี่ยวข้อง
- วิธีทำ Custom Filter ใน Excel (5 วิธี)
- เพิ่ม Filter ใน Excel (4 วิธี)
- Shortcut สำหรับ Excel Filter (3 การใช้งานรวดเร็วพร้อมตัวอย่าง)
- วิธีใช้ Text Filter ใน Excel (5 ตัวอย่าง)
2. กรองหลายเกณฑ์แบบ OR ใน Excel ด้วย VBA
ต่อไป เราจะพัฒนา Macro เพื่อกรองหลายเกณฑ์แบบ OR สำหรับชุดข้อมูลใดๆ
ตัวอย่าง คราวนี้ลองกรองหนังสือที่เป็น นวนิยาย หรือ มีราคามากกว่า $25.00
⧭ รหัส VBA:
Sub Filter_Multiple_Criteria_Or_Type()
Count = 1
For i = 1 To Selection.Rows.Count
If Selection.Cells(i, 2) = "Novel" Or Selection.Cells(i, 3) >= 25 Then
For j = 1 To Selection.Columns.Count
Range("F4").Cells(Count, j) = Selection.Cells(i, j)
Next j
Count = Count + 1
End If
Next i
End Sub

⧭ ผลลัพธ์:
เลือกชุดข้อมูลจากชีตและรัน Macro นี้ (Filter_Multiple_Criteria_OR_Type)

มันจะกรองหนังสือที่เป็น นวนิยาย หรือ มีราคามากกว่า $25.00 ไปยังช่วงใหม่เริ่มจากเซลล์ F4

⧭ หมายเหตุ:
- ในบรรทัดที่ 4 ของโค้ด เราใช้ Selection.Cells(i, 2) = "Novel" Or Selection.Cells(i, 3) >=25

- ที่นี่เราต้องการให้ค่าจากคอลัมน์ ที่ 2 (Book Type) เท่ากับ "Novel" หรือ ค่าจากคอลัมน์ ที่ 3 (Price) มากกว่าหรือเท่ากับ $25.00
- คุณสามารถเปลี่ยนได้ตามต้องการ
- ในบรรทัด 6 เราใช้ Range("F4") เพราะเราต้องการให้ข้อมูลที่กรองเริ่มจากเซลล์ F4

อ่านเพิ่มเติม: วิธีใช้หลาย Filter ใน Excel [วิธีการ + VBA]
สิ่งที่ควรจำ
ที่นี่เราใช้สองเกณฑ์สำหรับหลายเกณฑ์ คุณสามารถใช้เกณฑ์ได้มากเท่าที่ต้องการ เพียงแค่เชื่อมเกณฑ์ทั้งหมดด้วย And หรือ Or ตามเงื่อนไข
สรุป
ด้วยวิธีเหล่านี้ คุณสามารถกรองหลายเกณฑ์ใน Excel ด้วย VBA ได้ ทั้งแบบ AND และ OR มีคำถามไหม? ถามได้เลย และอย่าลืมเยี่ยมชมเว็บไซต์ ExcelDemy สำหรับโพสต์และอัปเดตเพิ่มเติม
เพิ่มเติม
- วิธีกรองหลายคอลัมน์ใน Excel แบบอิสระ
- ค้นหาหลายรายการใน Excel Filter (2 วิธี)
- วิธีลบ Filter ใน Excel (5 วิธีง่ายและรวดเร็ว)
- กรองตามวันที่ใน Excel (4 วิธีรวดเร็ว)