Excel VBA: ตัวกรองขั้นสูงที่มีหลายเกณฑ์ในช่วง (5 วิธี) -

  • แบ่งปันสิ่งนี้
Hugh West

เมื่อทำงานกับข้อมูลจำนวนมากและต้องตั้งค่าตัวกรองหลายตัวพร้อมกัน การกรองขั้นสูง ใน Excel มีประโยชน์ นอกจากนี้ยังอาจนำไปใช้เพื่อล้างข้อมูลของคุณโดยการลบสำเนาออก ในขณะที่ใช้ ตัวกรองขั้นสูง โค้ด VBA จะดำเนินการได้ง่ายกว่ามาก ในบทช่วยสอนนี้ เราจะแสดงวิธีใช้ VBA Advanced Filter สำหรับช่วงเกณฑ์หลายช่วงใน Excel

ดาวน์โหลด Practice Workbook

ดาวน์โหลดสิ่งนี้ หนังสือแบบฝึกหัดเพื่อทำแบบฝึกหัดในขณะที่คุณกำลังอ่านบทความนี้

VBA Advanced Filter.xlsm

5 วิธีการที่มีประสิทธิภาพสำหรับตัวกรองขั้นสูงของ VBA ที่มีหลายเกณฑ์ในช่วง ใน Excel

ในส่วนต่อไปนี้ เราจะพูดถึง 5 วิธีการใช้ VBA Advanced Filter สำหรับหลายเกณฑ์ ในตอนแรก คุณอาจจำเป็นต้องทราบไวยากรณ์ของ VBA Advanced Filter

VBA Advanced Filter Syntax:

  • ตัวกรองขั้นสูง: หมายถึงวัตถุช่วง คุณสามารถตั้งค่าช่วงของคุณที่คุณต้องการใช้ตัวกรอง
  • Action: เป็นอาร์กิวเมนต์ที่จำเป็นซึ่งมีสองตัวเลือก xlFilterInPlace หรือ xlFilterCopy . xlFilterInPlace ใช้เพื่อกรองค่าในตำแหน่งที่ชุดข้อมูลอยู่ xlFilterCopy ใช้เพื่อรับค่าตัวกรองในตำแหน่งอื่นที่ต้องการ
  • CriteriaRange: หมายถึงเกณฑ์ที่จะใช้ค่านั้นกรองแล้ว
  • CopyToRange: คือตำแหน่งที่คุณจะบันทึกผลการกรองของคุณ
  • ไม่ซ้ำกัน: เป็นอาร์กิวเมนต์ที่ไม่บังคับ ใช้อาร์กิวเมนต์ จริง เพื่อกรองเฉพาะค่าที่ไม่ซ้ำ มิฉะนั้น ตามค่าเริ่มต้น จะถือว่าเป็น เท็จ .

ในภาพด้านล่าง ชุดข้อมูลตัวอย่างมีไว้เพื่อใช้ตัวกรองทั้งหมดที่เราต้องการดำเนินการ

1. ใช้ตัวกรองขั้นสูงของ VBA สำหรับเกณฑ์ OR ในช่วงใน Excel

ในวิธีแรก เราจะใช้เกณฑ์ OR โดยใช้ ตัวกรองขั้นสูงของ VBA สมมติว่าเราต้องการกรองข้อมูลสำหรับชื่อผลิตภัณฑ์ คุกกี้ และ ช็อกโกแลต หากต้องการใช้เกณฑ์ หรือ คุณควรวางค่าในแถวต่างๆ ทำตามขั้นตอนที่ระบุไว้ด้านล่างเพื่อทำงาน

ขั้นตอนที่ 1:

  • กด Alt + F11 เพื่อเปิด มาโคร VBA .
  • คลิกที่ แทรก
  • เลือก โมดูล .

ขั้นตอนที่ 2:

  • จากนั้นวาง VBA รหัสที่จะใช้ OR.
1253

ขั้นตอนที่ 3: <3

  • จากนั้น บันทึกโปรแกรมและกด F5 เพื่อเรียกใช้
  • ดังนั้น คุณจะได้ผลลัพธ์ที่กรองแล้วดังภาพด้านล่าง
  • <12

    หมายเหตุ หากต้องการย้อนกลับกระบวนการหรือนำตัวกรองทั้งหมดออกและเรียกใช้โปรแกรม VBA

    7822

    • ดังนั้น คุณจะได้รับเวอร์ชันก่อนหน้าของชุดข้อมูลของคุณ

    อ่านเพิ่มเติม: ตัวอย่าง Excel VBA ของตัวกรองขั้นสูงที่มีเกณฑ์ (6 เกณฑ์)

    2. ดำเนินการกรองขั้นสูงของ VBA สำหรับเกณฑ์และเกณฑ์ในช่วงใน Excel

    คล้ายกับวิธีการก่อนหน้านี้ ตอนนี้เราจะดำเนินการ VBA ตัวกรองขั้นสูงสำหรับ และ เกณฑ์ สมมติว่าเราต้องการทราบคุกกี้ที่มีราคา $0.65 ดังที่แสดงในภาพหน้าจอด้านล่าง สำหรับการใช้เกณฑ์ OR คุณควรวางค่าในคอลัมน์ต่างๆ หากต้องการใช้เกณฑ์ และ ให้ปฏิบัติตามคำแนะนำด้านล่าง

    ขั้นตอนที่ 1:

    • หากต้องการเปิด VBA Macro ให้กด Alt + F11
    • หลังจากเปิด VBA Macro ให้วาง <1 ต่อไปนี้>VBA โค้ดในโมดูลใหม่
    4982

    ขั้นตอนที่ 2:

    • กด F5 เพื่อเรียกใช้โปรแกรมหลังจากบันทึกแล้ว
    • สุดท้าย รับผลลัพธ์ที่กรองแล้ว

    อ่านเพิ่มเติม: VBA เพื่อคัดลอกข้อมูลไปยังแผ่นงานอื่นด้วยตัวกรองขั้นสูงใน Excel

    3. ใช้ตัวกรองขั้นสูงของ VBA สำหรับเกณฑ์ OR ที่มี AND ในช่วงใน Excel

    คุณยังสามารถใช้เกณฑ์ หรือ และ และ ทั้งสองแบบร่วมกัน ตัวอย่างเช่น คุณต้องการรับค่าสำหรับ คุกกี้ หรือ ช็อกโกแลต แต่สำหรับ คุกกี้ มีเกณฑ์อื่นที่ราคา $0.65 จะ นำไปใช้ ทำตามขั้นตอนด้านล่างเพื่อดำเนินการให้เสร็จสิ้น

    ขั้นตอนที่ 1:

    • วางโค้ด VBA ต่อไปนี้ หลังจากเปิด มาโคร VBA .
    2690

    ขั้นตอนที่ 2:

    • จากนั้น ให้บันทึกโปรแกรมก่อนโดยกด F5 เพื่อเรียกใช้งาน
    • ดังนั้น คุณจะพบค่าที่มี AND และ OR

    อ่านเพิ่มเติม: ใช้ตัวกรองขั้นสูงตามหลายเกณฑ์ในหนึ่งคอลัมน์ใน Excel

    การอ่านที่คล้ายกัน:

    • ตัวกรองขั้นสูงที่มีหลายเกณฑ์ใน Excel (15 ตัวอย่างที่เหมาะสม)
    • ตัวกรองขั้นสูงแบบไดนามิกของ Excel (VBA และมาโคร)
    • วิธีใช้ตัวกรองขั้นสูงใน VBA (คำแนะนำทีละขั้นตอน)
    • ตัวกรองขั้นสูงพร้อมช่วงเกณฑ์ใน Excel (18 แอปพลิเคชัน )
    • ตัวกรองขั้นสูงของ Excel ไม่ทำงาน (2 เหตุผลและแนวทางแก้ไข)

    4. ใช้ตัวกรองขั้นสูงของ VBA สำหรับค่าที่ไม่ซ้ำที่มีหลายเกณฑ์ใน Excel

    นอกจากนี้ ถ้าคุณมีข้อมูลที่ซ้ำกันในชุดข้อมูลของคุณ คุณสามารถลบ em ขณะกรอง เราจะเพิ่มอาร์กิวเมนต์ Unique ให้กับ True เพื่อรับเฉพาะค่าที่ไม่ซ้ำกันและลบข้อมูลที่ซ้ำกัน ทำตามคำแนะนำที่ระบุไว้

    ขั้นตอนที่ 1:

    • ประการแรก เปิด VBA มาโคร โดยการกด Alt + F11.
    • วางโค้ด VBA ต่อไปนี้ในโมดูลใหม่
    5936

    ขั้นตอนที่ 2:

    • จากนั้น กด F5 เพื่อเรียกใช้โปรแกรมหลังจากบันทึก
    • ดังนั้น คุณจะได้รับค่าสำหรับค่าเฉพาะเท่านั้น

    อ่านเพิ่มเติม : วิธีการใช้ตัวกรองขั้นสูงสำหรับบันทึกเฉพาะใน Excel

    5. ใช้ตัวกรองขั้นสูงของ VBA สำหรับกรณีที่มีเงื่อนไข

    นอกเหนือจากวิธีการก่อนหน้านี้ คุณยังสามารถใช้เงื่อนไขกับสูตร . ตัวอย่างเช่น เราต้องการค้นหา ราคารวม ซึ่งมากกว่า $100 เพื่อให้สำเร็จ เพียงทำตามขั้นตอน

    ขั้นตอนที่ 1:

    • ประการแรก ให้เปิด มาโคร VBA กด Alt + F11
    • เลือก โมดูล ใหม่และวาง โค้ด VBA ต่อไปนี้
    3617

    ขั้นตอนที่ 2:

    • ประการที่สอง บันทึกโปรแกรมและกดปุ่ม F5 เพื่อดูผลลัพธ์

    หมายเหตุ . นอกจากนี้ คุณยังสามารถรับผลลัพธ์ในพื้นที่ที่เหมาะสมได้ ไม่ว่าจะเป็นช่วงใหม่หรือในเวิร์กชีตใหม่โดยใช้การดำเนินการ xlFilterCopy เพียงแค่วางโค้ด VBA และเรียกใช้เพื่อให้ได้ผลลัพธ์ใน Sheet6 ในช่วง B4:E11 .

    7425

    • ดังนั้น ดูผลลัพธ์สุดท้ายในแผ่นงานใหม่ 'Sheet6'

    อ่านเพิ่มเติม: วิธีใช้ตัวกรองขั้นสูงหากช่วงเกณฑ์มีข้อความใน Excel

    บทสรุป

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

    หากคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะติดต่อเรา โปรดแจ้งให้เราทราบว่าคุณคิดอย่างไรในส่วนความคิดเห็นด้านล่าง

    เจ้าหน้าที่ Exceldemy จะตอบคำถามของคุณโดยเร็วที่สุด

    อยู่กับเราและเรียนรู้ต่อไป .

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง