Excel VBA: نحوه فیلتر کردن با چندین معیار در آرایه (7 روش)

  • این را به اشتراک بگذارید
Hugh West

اگر به دنبال راه هایی برای فیلتر کردن با آرایه معیارهای چندگانه در اکسل VBA هستید، در جای مناسبی هستید. فیلتر کردن یک مجموعه داده بزرگ بر اساس معیارهای متعدد را می توان با کمک کدهای VBA به جای استفاده از ویژگی معمولی اکسل آسان تر کرد.

بنابراین، اجازه دهید مقاله اصلی خود را شروع کنیم.

دانلود Workbook

Filter with Multiple Criteria.xlsm

7 روش برای فیلتر کردن با چند معیار در آرایه با استفاده از Excel VBA

در مجموعه داده زیر، تعدادی رکورد از علائم مربوط به نام دانش آموزان و شناسه آنها داریم. ما سعی خواهیم کرد این مجموعه داده را بر اساس معیارهای مختلف به عنوان یک آرایه با استفاده از برخی کدها فیلتر کنیم.

ما در اینجا از نسخه Microsoft Excel 365 استفاده کرده ایم. می توانید از هر نسخه دیگری مطابق با راحتی خود استفاده کنید.

روش-1: فیلتر با معیارهای چندگانه به عنوان متن در آرایه

در اینجا، ما سعی خواهیم کرد مجموعه داده زیر را بر اساس فیلتر کنیم. نام دانش آموز ستون برای چندین معیار حاوی رشته های Emily ، Daniel و Gabriel در یک آرایه.

Step-01 :

➤ به Developer بروید برگه >> Visual Basic گزینه.

سپس، Visual Basic Editor باز می شود.

➤ به Insert Tab >> Module گزینه بروید.

پس از آن، یک Module خواهد بودایجاد شد.

Step-02 :

➤ کد زیر را بنویسید

2225

در اینجا، ما اعلام کردیم نام‌های سرصفحه در محدوده B3:D3 که فیلتر را در آن اعمال خواهیم کرد و Field:=2 شماره ستون این محدوده است که بر اساس آن فرآیند فیلتر را انجام خواهیم داد.

در نهایت، معیارها را به عنوان آرایه ای برای اعلام نام چند دانش آموز مانند Emily ، Daniel قرار داده ایم. و Gabriel .

F5 را فشار دهید.

سپس، شما مجموعه داده برای چندین معیار فیلتر می‌شود تا نام دانش‌آموزان و Id و علامت‌های برای دانش‌آموزان نشان داده شود. 1> امیلی ، دانیل و گابریل .

بیشتر بخوانید: فیلتر کردن معیارهای چندگانه در اکسل (4 روش مناسب)

روش-2: فیلتر با معیارهای چندگانه در آرایه با استفاده از Excel VBA

در اینجا، مجموعه داده زیر را برای شناسه های 101135 ، 10 فیلتر می کنیم. 1137 و 101138 با استفاده از این اعداد به عنوان معیارهای چندگانه در یک آرایه.

مراحل :

Step-01 از روش-1 را دنبال کنید.

➤ کد زیر را بنویسید

1573

در اینجا، نام سرصفحه‌ها را در محدوده B3:D3 که در آن فیلتر اعمال می‌کنیم، اعلام کردیم و Field:=2 شماره ستون این محدوده است که بر اساس آن این فیلترینگ را انجام خواهد دادفرآیند.

در نهایت، ما معیارها را به عنوان آرایه ای برای اعلام شناسه های چند دانش آموز مانند 101135 ، 101137 تنظیم کرده ایم. و 101138 و ما آنها را در داخل کاماهای معکوس قرار داده ایم تا آنها را به عنوان رشته مشخص کنیم زیرا AutoFilter فقط برای یک آرایه از رشته ها کار می کند.

F5 را فشار دهید.

پس از آن، نام و نشان دانش آموزان دارای شناسه را دریافت خواهید کرد. 101135 ، 101137 ، و 101138 .

بیشتر بخوانید: VBA برای دریافت مقادیر منحصر به فرد از ستون به آرایه در اکسل (3 معیار)

روش-3: تنظیم چندین معیار در یک محدوده برای استفاده به عنوان آرایه

در اینجا، ما معیارها را در ستون List حاوی شناسه های 101134 ، 101135<فهرست کرده ایم. 10> و 101136 بر اساس آنها فرآیند فیلتر کردن خود را انجام خواهیم داد.

مراحل :

Step-01 از Method-1 را دنبال کنید.

➤ کد زیر را بنویسید

2138

اینجا ، کاهش داریم ared ID_range ، k به عنوان Variant و ID_range آرایه ای است که چندین معیار را ذخیره می کند، و k افزایش از حد پایین تا حد بالایی این آرایه است. برای داشتن حد پایین و حد بالا به ترتیب از تابع LBOUND و تابع UBOUND استفاده کردیم.

حلقه FOR برای تبدیل مقادیری غیر از رشته هادر آرایه با کمک تابع CStr به رشته ها تبدیل می شود. در نهایت، ما از این آرایه به عنوان Criteria1 استفاده کرده ایم.

F5 را فشار دهید.

پس از آن، شما نام و نشان دانش‌آموزانی که شناسه‌های 101134 ، 101135 و 101136 دارند را دریافت می‌کند. .

بیشتر بخوانید: فیلتر ستون های مختلف بر اساس معیارهای چندگانه در Excel VBA

خواندنهای مشابه

  • نحوه فیلتر کردن مقادیر منحصر به فرد در اکسل (8 روش آسان)
  • اجرای فیلتر سفارشی در اکسل (5 روش ها)
  • میانگین یک آرایه را با VBA (ماکرو، UDF و UserForm) محاسبه کنید
  • میانبر برای فیلتر اکسل (3 کاربرد سریع) با مثال)

روش-4: استفاده از توابع SPLIT و JOIN برای ایجاد آرایه با معیارهای چندگانه

در اینجا، از لیست زیر در فهرست استفاده خواهیم کرد. ستون به عنوان یک آرایه و برای فیلتر کردن صحیح مجموعه داده، ما همچنین از عملکرد SPLIT ، عملکرد JOIN و عملکرد TRANSPOSE در استفاده خواهیم کرد. کد VBA .

مراحل :

➤ Fol low Step-01 of Method-1 .

➤ کد زیر را بنویسید

8003

در اینجا، TRANSPOSE تبدیل خواهد شد آرایه 2D در آرایه 1D در غیر این صورت AutoFilter کار نخواهد کرد، JOIN هر یک از مقادیر را به آرایه‌ای از رشته‌ها می‌پیوندد. و در نهایت، SPLIT هر رشته را برای دادن ورودی شکسته خواهد کردآنها را به طور جداگانه به عنوان معیاری برای فیلتر کردن مجموعه داده ها به عنوان معیاری برای فیلتر کردن مجموعه داده ها انتخاب کنید.

F5 را فشار دهید.

در نهایت، نام ها و علائم را دریافت خواهید کرد. دانش آموزان دارای شناسه 101134 ، 101135 ، و 101136 .

بیشتر بخوانید: نحوه تقسیم یک رشته به آرایه در VBA (3 روش)

روش-5 : فیلتر با معیارهای چندگانه در یک حلقه برای آرایه با VBA

در این بخش، مجموعه داده زیر را بسته به ستون Student Id برای چندگانه فیلتر می کنیم. معیارهایی که در ستون فهرست فهرست شده است.

مراحل :

مرحله- را دنبال کنید 01 از روش-1 .

➤ کد زیر را بنویسید

5404

در اینجا، k را به عنوان عدد صحیح اعلام کرده ایم. ، ID_range(100) به عنوان رشته که در آن ID_range آرایه ای است که تا 100 مقدار را ذخیره می کند. برای تعیین مقادیر این آرایه در اینجا ما از حلقه FOR برای k از 4 تا 6 به عنوان شماره ردیف استفاده کرده ایم. فهرست ستون و F نام ستون است.

در نهایت، ما از این آرایه به عنوان Criteria1 برای AutoFilter استفاده کردیم. .

F5 را فشار دهید.

در نهایت، نام و نشان دانش‌آموزانی که شناسه دارند را دریافت خواهید کرد 101134 ، 101135 ، و 101136 .

بیشتر بخوانید: فیلتر کردن چندین معیار در اکسل با VBA (هم و هم OR)انواع)

روش-6: استفاده از محدوده نامگذاری شده برای معیارهای چندگانه

در اینجا، نام تعدادی از دانش آموزان را در ستون List فهرست کرده ایم و نام آن را گذاشته ایم. محدوده به عنوان دانش آموز . با استفاده از این محدوده نامگذاری شده، آرایه ای را تعریف می کنیم که دارای چندین معیار برای ویژگی AutoFilter است.

Steps :

Step-01 of Method-1 را دنبال کنید.

➤ کد زیر را بنویسید

8277

در اینجا، ما اعلام کرده ایم Student_range ، k به عنوان یک Variant ، و از تابع TRANSPOSE برای تبدیل آرایه 2D محدوده نامگذاری شده استفاده کرد. Student در آرایه 1D و سپس آن را در Student_range ذخیره کرد. سپس، از آن به عنوان Criteria1 برای روش AutoFilter استفاده می شود.

F5 را فشار دهید.

سپس، مجموعه داده را برای چندین معیار فیلتر می‌کنید تا نام دانش‌آموزان و Id و علامت <10 نشان داده شود> برای دانش آموزان جفرسون ، امیلی ، و سارا .

محتوای مرتبط: VBA برای انتقال آرایه در اکسل (3 روش)

روش-7: فیلتر کردن جدول با معیارهای چندگانه در یک آرایه

در اینجا، جدول زیر را داریم که نام آن Table1 و با استفاده از Excel VBA است. ما سعی خواهیم کرد این جدول را بر اساس نام های Emily ، Daniel و گابریل به عنوان معیارهای متعدد در یک آرایه.

مراحل :

Step-01 of Method-1 را دنبال کنید.

➤ کد زیر را بنویسید

1121

در اینجا، ListObjects("Table1") برای تعریف جدول Table1 ، Field:=2 برای تنظیم ستون دوم این محدوده به عنوان پایه فرآیند فیلتر استفاده می شود و در نهایت یک آرایه تعریف کرده ایم. حاوی چندین نام برای معیارهای1 .

F5 را فشار دهید.

در نهایت، مجموعه داده را خواهید داشت. برای چند معیار فیلتر شده تا نام دانش‌آموزان و شناسه و علامت برای دانش‌آموزان نشان داده شود امیلی ، دانیل و گابریل .

بیشتر بخوانید: Excel VBA: جدول فیلتر بر اساس مقدار سلول (6 روش آسان)

بخش تمرین

برای انجام تمرین توسط خود ما یک بخش تمرین مانند زیر در برگه ای به نام تمرین ارائه کرده ایم. لطفاً خودتان این کار را انجام دهید.

نتیجه‌گیری

در این مقاله سعی کردیم راه‌های فیلتر کردن چندین معیار را به‌عنوان یک آرایه با استفاده از Excel <1 پوشش دهیم>VBA به راحتی. امیدوارم برای شما مفید باشد. اگر پیشنهاد یا سوالی دارید، در قسمت نظرات به اشتراک بگذارید.

هیو وست یک مربی و تحلیلگر اکسل بسیار با تجربه با بیش از 10 سال تجربه در این صنعت است. وی دارای مدرک لیسانس در رشته حسابداری و امور مالی و مدرک کارشناسی ارشد در رشته مدیریت بازرگانی است. هیو علاقه زیادی به تدریس دارد و یک رویکرد آموزشی منحصر به فرد ایجاد کرده است که به راحتی قابل پیگیری و درک است. دانش تخصصی او از اکسل به هزاران دانش آموز و متخصص در سراسر جهان کمک کرده تا مهارت های خود را بهبود بخشند و در حرفه خود برتری پیدا کنند. هیو از طریق وبلاگ خود دانش خود را با جهان به اشتراک می گذارد و آموزش های رایگان اکسل و آموزش آنلاین ارائه می دهد تا به افراد و مشاغل کمک کند تا به پتانسیل کامل خود دست یابند.