فهرست مطالب
در این درس سریع، نحوه فیلتر کردن پویا در اکسل با فرمول ها را خواهید آموخت. نمونه هایی برای فیلتر کردن موارد تکراری، سلول های حاوی متن خاص، با معیارهای متعدد و موارد دیگر.
معمولاً چگونه در اکسل فیلتر می کنید؟ در بیشتر موارد، با استفاده از فیلتر خودکار، و در سناریوهای پیچیده تر با فیلتر پیشرفته. از آنجایی که این روشها سریع و قدرتمند هستند، یک اشکال قابل توجه دارند - زمانی که دادههای شما تغییر میکند، بهطور خودکار بهروزرسانی نمیشوند، به این معنی که باید دوباره پاکسازی و فیلتر کنید. معرفی تابع FILTER در اکسل 365 تبدیل به یک جایگزین مورد انتظار برای ویژگی های معمولی می شود. بر خلاف آنها، فرمول های اکسل با هر تغییر کاربرگ به طور خودکار دوباره محاسبه می شوند، بنابراین شما باید فیلتر خود را فقط یک بار تنظیم کنید!
عملکرد Excel FILTER
عملکرد FILTER در Excel برای فیلتر کردن طیف وسیعی از داده ها بر اساس معیارهایی که شما تعیین می کنید استفاده می شود.
این تابع به دسته توابع آرایه های پویا تعلق دارد. نتیجه آرایه ای از مقادیر است که به طور خودکار در محدوده ای از سلول ها ریخته می شود و از سلولی که در آن فرمول را وارد می کنید شروع می شود.
نحو تابع FILTER به شرح زیر است:
FILTER(آرایه، شامل , [if_empty])Where:
- آرایه (الزامی) - محدوده یا آرایه ای از مقادیری که می خواهید فیلتر کنید.
- شامل (الزامی) - معیارهای ارائه شده به عنوان یک آرایه بولی (مقادیر TRUE و FALSE).
آنحتی صدها ستون، مطمئناً ممکن است بخواهید نتایج را به چند مورد از مهمترین آنها محدود کنید.
مثال 1. برخی از ستونهای مجاور را فیلتر کنید
در شرایطی که میخواهید برخی از ستونهای همسایه در یک نتیجه FILTER، فقط آن ستونها را در آرایه شامل شود، زیرا این آرگومان است که تعیین میکند کدام ستونها را برگرداند.
در مثال فرمول اصلی FILTER، فرض کنید میخواهید 2 ستون اول را برگردانید. ( نام و گروه ). بنابراین، شما A2:B13 را برای آرگومان آرایه تهیه می کنید:
=FILTER(A2:B13, B2:B13=F1, "No results")
در نتیجه، لیستی از شرکت کنندگان گروه هدف تعریف شده در F1 دریافت می کنیم:
مثال 2. ستون های غیر مجاور را فیلتر کنید
برای اینکه تابع FILTER ستون های غیر پیوسته را برگرداند، از این ترفند هوشمندانه استفاده کنید:
- یک فرمول FILTER با شرایط(های) مورد نظر با استفاده از کل جدول برای آرایه بسازید.
- فرمول بالا را در یک تابع FILTER دیگر قرار دهید. برای پیکربندی تابع "wrapper"، از یک آرایه ثابت از مقادیر TRUE و FALSE یا 1 و 0 برای آرگومان include استفاده کنید، جایی که TRUE (1) ستون هایی را که باید نگه داشته شوند و FALSE (0) علامت گذاری می کند. ستونهایی که باید حذف شوند.
به عنوان مثال، برای برگرداندن فقط Names (ستون اول) و Wins (ستون سوم)، ما از {1 استفاده میکنیم، 0,1} یا {TRUE,FALSE,TRUE} برای آرگومان شامل تابع FILTER خارجی:
=FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})
Or
=FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
نحوه محدود کردنتعداد ردیف های برگردانده شده توسط تابع FILTER
اگر فرمول FILTER شما نتایج بسیار زیادی پیدا می کند، اما کاربرگ شما فضای محدودی دارد و نمی توانید داده های زیر را حذف کنید، می توانید تعداد ردیف هایی را که تابع FILTER برمی گرداند محدود کنید. .
بیایید ببینیم چگونه بر روی مثالی از فرمول ساده ای کار می کند که بازیکنان را از گروه هدف در F1 می کشد:
=FILTER(A2:C13, B2:B13=F1)
فرمول بالا تمام رکوردهایی را که آن را پیدا می کند، 4 ردیف در مورد ما. اما فرض کنید شما فقط برای دو نفر فضا دارید. برای خروجی تنها 2 ردیف اول یافت شده، این کاری است که باید انجام دهید:
- فرمول FILTER را به آرگومان آرایه تابع INDEX وصل کنید.
- برای آرگومان row_num در INDEX، از یک آرایه عمودی ثابت مانند {1;2} استفاده کنید. تعیین می کند که چند ردیف برگردانده شود (در مورد ما 2).
- برای آرگومان column_num ، از ثابت آرایه افقی مانند {1،2،3} استفاده کنید. مشخص می کند که کدام ستون ها را برگرداند (3 ستون اول در این مثال).
- برای مراقبت از خطاهای احتمالی زمانی که هیچ داده ای مطابق با معیار شما یافت نشد، می توانید فرمول خود را در تابع IFERROR قرار دهید.
فرمول کامل به این شکل است:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "No result")
هنگام کار با جداول بزرگ، نوشتن ثابت های آرایه به صورت دستی ممکن است کاملا دست و پا گیر مشکلی نیست، تابع SEQUENCE می تواند اعداد متوالی را به طور خودکار برای شما ایجاد کند:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")
اولین SEQUENCE یک آرایه عمودی ایجاد می کند.حاوی تعداد زیادی اعداد متوالی که در آرگومان اول (و تنها) مشخص شده است. SEQUENCE دوم از تابع COLUMNS برای شمارش تعداد ستون های مجموعه داده استفاده می کند و یک آرایه افقی معادل را تولید می کند.
نکته. برای برگرداندن دادهها از ستونهای خاص ، همه ستونهای ثابت آرایه افقی که برای آرگومان column_num INDEX استفاده میکنید، فقط شامل آن اعداد خاص نمیشوند. به عنوان مثال، برای استخراج داده ها از ستون های 1 و 3، از {1،3} استفاده کنید.
عملکرد Excel FILTER کار نمی کند
در شرایطی که فرمول Excel FILTER شما با خطا مواجه می شود، به احتمال زیاد یکی از موارد زیر خواهد بود:
#CALC! خطا
اگر آرگومان اختیاری if_empty حذف شود و هیچ نتیجه ای مطابق با معیارها یافت نشود، رخ می دهد. دلیل آن این است که در حال حاضر اکسل از آرایه های خالی پشتیبانی نمی کند. برای جلوگیری از چنین خطاهایی، مطمئن شوید که همیشه مقدار if_empty را در فرمول های خود تعریف کنید.
#VALUE error
زمانی رخ می دهد که آرایه و <آرگومان 1>include دارای ابعاد ناسازگار است.
#N/A، #VALUE، و غیره.
اگر مقداری در آرگومان شامل وجود داشته باشد، ممکن است خطاهای مختلفی رخ دهد. یک خطا است یا نمی توان آن را به یک مقدار بولی تبدیل کرد.
خطای #NAME
هنگامی که سعی می کنید از FILTER در نسخه قدیمی اکسل استفاده کنید رخ می دهد. لطفاً به یاد داشته باشید که این یک تابع جدید است که فقط در Office 365 و Excel 2021 موجود است.
دراکسل جدید، اگر اشتباه املایی نام تابع را اشتباه نوشتید، یک خطای #NAME روی میدهد.
#SPILL error
اغلب این خطا زمانی رخ میدهد که یک یا چند سلول در محدوده ریزش کاملاً خالی نباشد. . برای رفع آن، فقط سلول های غیر خالی را پاک یا حذف کنید. برای بررسی و حل و فصل سایر موارد لطفا به #نشانی مراجعه کنید! خطا در اکسل: معنی آن و نحوه رفع آن.
#REF! خطا
وقتی از فرمول FILTER بین کتابهای کار مختلف استفاده میشود و کتاب کار منبع بسته میشود، رخ میدهد.
به این صورت است که دادهها را در اکسل به صورت پویا فایلبندی میکنید. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم!
دانلود کتاب تمرین
فیلتر در اکسل با فرمول ها (فایل xlsx.)
ارتفاع (زمانی که داده ها در ستون هستند) یا عرض (زمانی که داده ها در ردیف هستند) باید با آرگومان آرایه برابر باشد.عملکرد FILTER فقط در اکسل برای مایکروسافت موجود است. 365 و اکسل 2021. در اکسل 2019، اکسل 2016 و نسخه های قبلی، پشتیبانی نمی شود.
فرمول اصلی فیلتر اکسل
برای شروع، اجازه دهید چند مورد بسیار ساده را فقط برای به دست آوردن بحث کنیم. درک بیشتر نحوه عملکرد یک فرمول Excel برای فیلتر کردن دادهها.
از مجموعه دادههای زیر، فرض کنید میخواهید رکوردها را با یک مقدار خاص در ستون Group ، مثلاً گروه C استخراج کنید. برای انجام این کار، عبارت B2:B13="C" را به آرگومان include ارائه می کنیم، که آرایه بولی مورد نیاز را با مقادیر TRUE مربوط به "C" تولید می کند.
=FILTER(A2:C13, B2:B13="C", "No results")
در عمل، وارد کردن معیارها در یک سلول جداگانه راحت تر است، به عنوان مثال. F1، و از یک مرجع سلول به جای کدگذاری مستقیم مقدار در فرمول استفاده کنید:
=FILTER(A2:C13, B2:B13=F1, "No results")
برخلاف ویژگی فیلتر اکسل، این تابع هیچ تغییری در داده های اصلی ایجاد نمی کند. رکوردهای فیلتر شده را در محدوده به اصطلاح اسپیل استخراج می کند (E4:G7 در تصویر زیر)، که از سلولی که فرمول وارد شده شروع می شود:
اگر هیچ رکوردی وجود ندارد با معیارهای مشخص شده مطابقت داشته باشد، فرمول مقداری را که در آن قرار داده اید برمی گرداندآرگومان if_empty ، "نتیجه ای وجود ندارد" در این مثال:
اگر ترجیح می دهید چیزی را برگردانید در این مورد، پس یک رشته خالی ("") برای آخرین آرگومان ارائه دهید:
=FILTER(A2:C13, B2:B13=F1, "")
در صورتی که داده های شما به صورت افقی از چپ به راست مانند تصویر زیر سازماندهی شده باشند، عملکرد FILTER نیز به خوبی کار خواهد کرد. فقط مطمئن شوید که محدوده های مناسبی را برای آرگومان های آرایه و شامل تعریف کرده اید، به طوری که آرایه منبع و آرایه بولی دارای عرض یکسان باشند:
=FILTER(B2:M4, B3:M3= B7, "No results")
عملکرد Excel FILTER - نکات استفاده
برای فیلتر کردن موثر در اکسل با فرمول ها، در اینجا چند نکته مهم وجود دارد که باید به آنها توجه کنید:
- عملکرد FILTER به طور خودکار نتایج را به صورت عمودی یا افقی در کاربرگ میریزد، بسته به اینکه دادههای اصلی شما چگونه سازماندهی شدهاند. بنابراین، لطفاً مطمئن شوید که همیشه تعداد کافی سلول خالی در پایین و سمت راست داشته باشید، در غیر این صورت با یک خطای #SPILL مواجه خواهید شد.
- نتایج تابع Excel FILTER پویا هستند، به این معنی که در صورت وجود مقادیر بهطور خودکار بهروزرسانی میشوند. مجموعه داده های اصلی تغییر می کند. با این حال، محدوده ارائه شده برای آرگومان آرایه هنگامی که ورودی های جدید به داده های منبع اضافه می شوند، به روز نمی شود. اگر میخواهید اندازه آرایه به طور خودکار تغییر کند، سپس آن را به یک جدول اکسل تبدیل کنید و فرمولهایی را با ارجاعات ساختاریافته بسازید، یا یک محدوده با نام پویا ایجاد کنید.
نحوه فیلتر کردن در اکسل -مثالهای فرمول
اکنون که میدانید یک فرمول اصلی فیلتر اکسل چگونه کار میکند، زمان آن رسیده است که اطلاعاتی در مورد اینکه چگونه میتوان آن را برای حل کارهای پیچیدهتر گسترش داد.
فیلتر با معیارهای متعدد (و) منطقی 1>معیار1 ) * ( محدوده2 = معیار2 )، "نتیجه ای وجود ندارد")
عملیات ضرب آرایه ها را با منطق AND پردازش می کند ، اطمینان حاصل شود که فقط رکوردهایی که همه معیارها را دارند برگردانده می شوند. از نظر فنی، این روش کار می کند:
نتیجه هر عبارت منطقی آرایه ای از مقادیر بولی است که در آن TRUE برابر با 1 و FALSE با 0 است. سپس، عناصر همه آرایه ها در موقعیت های مشابه ضرب می شوند. . از آنجایی که ضرب در صفر همیشه صفر را به دست می دهد، فقط مواردی که همه معیارهای آنها درست است وارد آرایه حاصل می شوند و در نتیجه فقط آن موارد استخراج می شوند.
مثال های زیر این فرمول عمومی را در عمل نشان می دهد.
مثال 1. چندین ستون را در اکسل فیلتر کنید
با گسترش فرمول اصلی Excel FILTER کمی بیشتر، اجازه دهید داده ها را بر اساس دو ستون فیلتر کنیم: گروه (ستون B) و Wins (ستون C).
برای این، ما معیارهای زیر را تنظیم کردیم: نام گروه هدف را در F2 ( criteria1 ) تایپ کنید و حداقل تعداد مورد نیازدر F3 برنده می شود ( معیار2 ).
با توجه به اینکه داده های منبع ما در A2:C13 ( آرایه ) است، گروه ها در B2:B13 هستند ( محدوده1 ) و بردها در C2:C13 هستند ( محدوده2 )، فرمول به این شکل است:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")
در نتیجه، لیستی از بازیکنان دریافت می کنید در گروه A که 2 یا بیشتر برد را تضمین کرده اند:
مثال 2. فیلتر کردن داده ها بین تاریخ ها
ابتدا باید توجه داشت که امکان پذیر نیست برای ایجاد یک فرمول عمومی برای فیلتر کردن بر اساس تاریخ در اکسل. در موقعیتهای مختلف، بسته به اینکه میخواهید بر اساس تاریخ خاص، ماه یا سال فیلتر کنید، باید معیارهای متفاوتی بسازید. هدف این مثال نشان دادن رویکرد کلی است.
به داده های نمونه خود، یک ستون دیگر حاوی تاریخ های آخرین پیروزی (ستون D) اضافه می کنیم. و اکنون، ما بردهایی را که در یک دوره خاص رخ داده اند، مثلاً بین 17 تا 31 می، استخراج می کنیم.
لطفاً توجه داشته باشید که در این مورد، هر دو معیار برای یک محدوده اعمال می شوند:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")
جایی که G2 و G3 تاریخ هایی هستند که باید بین آنها فیلتر شود.
فیلتر با معیارهای چندگانه (OR منطق)
برای استخراج داده ها بر اساس شرط OR چندگانه، از عبارات منطقی مانند مثال های قبلی نیز استفاده می کنید، اما به جای ضرب، آنها را با هم جمع می کنید. وقتی آرایه های بولی که توسط عبارات برگردانده شده اند جمع شوند، آرایه حاصل برای ورودی هایی که هیچ معیاری را ندارند (یعنی همهمعیارها FALSE هستند)، و چنین ورودی هایی فیلتر خواهند شد. ورودیهایی که حداقل یک معیار برای آنها درست است استخراج میشوند.
در اینجا فرمول عمومی برای فیلتر کردن ستونها با منطق OR آمده است:
FILTER(آرایه، ( range1 = معیار1 ) + ( محدوده2 = معیار2 )، "نتیجه ای وجود ندارد")به عنوان مثال، بیایید لیستی از بازیکنانی را استخراج کنیم که این یا که تعداد بردها.
با فرض اینکه داده های منبع در A2:C13، بردها در C2:C13، و اعداد برد مورد علاقه در F2 و F3 هستند، فرمول به شرح زیر است:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")
در نتیجه، میدانید که چه بازیکنانی همه بازیها را بردهاند (4) و کدام یک را برنده نشدهاند (0):
فیلتر بر اساس معیارهای چندگانه AND و همچنین OR
در شرایطی که باید هر دو نوع معیار را اعمال کنید، این قانون ساده را به خاطر بسپارید: معیارهای AND را با ستاره (*) و معیارهای OR را با علامت مثبت بپیوندید. علامت (+).
به عنوان مثال، برای برگرداندن لیستی از بازیکنانی که تعداد برد معینی دارند (F2) و متعلق به گروه ذکر شده در E2 یا E3 هستند، زنجیره منطقی زیر را بسازید. عبارات:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "No results")
و نتیجه زیر را دریافت خواهید کرد:
نحوه فیلتر کردن موارد تکراری در اکسل
هنگام کار با کاربرگ های بزرگ یا ترکیب داده ها از منابع مختلف، اغلب این احتمال وجود دارد که برخی از موارد تکراری به صورت مخفیانه وارد شوند.
اگر به دنبال فیلتر کردن تکراری ها و استخراج کردنموارد منحصر به فرد، سپس از تابع UNIQUE همانطور که در آموزش پیوند بالا توضیح داده شده است استفاده کنید.
اگر هدف شما فیلتر کردن موارد تکراری است، یعنی استخراج ورودی هایی که بیش از یک بار رخ می دهند، از تابع FILTER استفاده کنید. همراه با COUNTIFS.
ایده این است که تعداد رخدادها را برای همه رکوردها به دست آوریم و موارد بزرگتر از 1 را استخراج کنیم. برای بدست آوردن تعداد، محدوده یکسانی را برای هر محدوده_معیار / <ارائه می کنید. 1>معیار جفت COUNTIFS مانند این:
FILTER( آرایه ، COUNTIFS( ستون1 ، ستون1، ستون2 , column2 )>1، "نتیجه ای وجود ندارد")به عنوان مثال، برای فیلتر کردن ردیف های تکراری از داده های موجود در A2:C20 بر اساس مقادیر هر 3 ستون، فرمول مورد استفاده در اینجا آمده است:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")
نکته. برای فیلتر کردن موارد تکراری بر اساس مقادیر موجود در ستونهای کلیدی ، فقط آن ستونهای خاص را در تابع COUNTIFS قرار دهید.
نحوه فیلتر کردن فضاهای خالی در اکسل
یک فرمول برای فیلتر کردن سلول های خالی، در واقع، نوعی از فرمول Excel FILTER با چندین معیار AND است. در این مورد، بررسی میکنیم که آیا تمام ستونها (یا بهخصوص) دادههایی در آنها وجود دارد یا خیر و ردیفهایی را که حداقل یک سلول خالی است، حذف میکنیم. برای شناسایی سلولهای غیر خالی، شما از عملگر «نه برابر» () همراه با یک رشته خالی («») مانند این استفاده میکنید:
FILTER(آرایه، ( ستون1 "") * ( column2 ="")، "نتیجه ای وجود ندارد")با داده های منبع در A2:C12، برای فیلتر کردن ردیف هاحاوی یک یا چند سلول خالی، فرمول زیر در E3 وارد می شود:
سلول های حاوی متن خاص را فیلتر کنید
برای استخراج سلول هایی که حاوی متن خاصی هستند، شما می توانید از تابع FILTER همراه با سلول کلاسیک اگر حاوی فرمول است استفاده کنید:
FILTER(آرایه، ISNUMBER(SEARCH(" متن "، محدوده ))، "نتیجه ای وجود ندارد")چگونه کار می کند:
- عملکرد SEARCH به دنبال یک رشته متن مشخص شده در یک محدوده معین می گردد و یک عدد (موقعیت اولین کاراکتر) یا #VALUE را برمی گرداند! خطا (متن پیدا نشد).
- تابع ISNUMBER همه اعداد را به TRUE و خطاها را به FALSE تبدیل می کند و آرایه بولی حاصل را به آرگومان include تابع FILTER منتقل می کند.
برای این مثال، نام خانوادگی بازیکنان را در B2:B13 اضافه کردهایم، بخشی از نام را که میخواهیم در G2 پیدا کنیم تایپ کردهایم و سپس از فرمول زیر استفاده میکنیم. داده ها را فیلتر کنید:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")
در نتیجه، فرمول دو نام خانوادگی حاوی "han" را بازیابی می کند:
فیلتر و محاسبه کنید (جمع، میانگین، حداقل، حداکثر، و غیره)
یک چیز جالب در مورد تابع Excel FILTER این است که نه تنها می تواند مقادیر را با شرایط استخراج کند، بلکه داده های فیلتر شده را نیز خلاصه می کند. برای این کار، FILTER را با توابع تجمعی مانند SUM، AVERAGE، COUNT، MAX یا MIN ترکیب کنید.
به عنوان مثال، برای جمع آوری داده ها برای یک گروه خاص در F1، از موارد زیر استفاده کنید.فرمول ها:
مجموع برد:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
میانگین برد:
=AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))
حداکثر برد:
=MAX(FILTER(C2:C13, B2:B13=F1, 0))
حداقل برد:
=MIN(FILTER(C2:C13, B2:B13=F1, 0))
لطفاً توجه داشته باشید که در همه فرمولها، از صفر برای آرگومان if_empty استفاده میکنیم، بنابراین فرمولها اگر مقادیری مطابق با معیارها یافت نشد، 0 را برگردانید. ارائه هر متنی مانند "نتیجه ای وجود ندارد" منجر به خطای #VALUE می شود، که بدیهی است آخرین چیزی است که می خواهید :)
فرمول FILTER حساس به بزرگی و کوچکی
یک فرمول استاندارد Excel FILTER به حروف بزرگ و کوچک حساس نیست، به این معنی که هیچ تمایزی بین حروف کوچک و بزرگ قائل نمیشود. برای تشخیص حروف متن، تابع EXACT را در آرگومان include قرار دهید. این امر FILTER را مجبور میکند تا آزمایش منطقی را به روشی حساس به حروف بزرگ انجام دهد:
FILTER(آرایه، EXACT( محدوده ، معیار )، "نتیجه ای وجود ندارد")با فرض ، شما هر دو گروه A و a را دارید و می خواهید رکوردهایی را استخراج کنید که گروه با حروف کوچک "a" باشد. برای انجام این کار، از فرمول زیر استفاده کنید، که در آن A2:C13 داده های منبع است و B2:B13 گروه هایی برای فیلتر کردن هستند:
=FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")
طبق معمول، می توانید گروه هدف را وارد کنید یک سلول از پیش تعریف شده، مثلاً F1، و از آن مرجع سلول به جای متن کدگذاری شده استفاده کنید:
=FILTER(A2:C13, EXACT(B2:B13, F1), "No results")
چگونه داده ها را فیلتر کنیم و فقط ستون های خاص را برگردانیم
در بیشتر موارد، فیلتر کردن تمام ستون ها با یک فرمول واحد چیزی است که کاربران اکسل می خواهند. اما اگر جدول منبع شما حاوی ده یا