فهرست مطالب
امروز نحوه ایجاد یک لیست پویا بر اساس معیارهای تک یا چندگانه در اکسل را نشان خواهم داد.
دانلود کتاب تمرین تمرین
فهرست پویا بر اساس Criteria.xlsx
لیست پویا در اکسل چیست؟
یک لیست پویا لیستی است که از یک مجموعه داده ایجاد می شود و هنگامی که مقداری در مجموعه داده اصلی تغییر می کند یا مقادیر جدیدی به مجموعه داده اصلی اضافه می شود، به طور خودکار به روز می شود.
در تصویر داده شده، ما لیستی از نام همه دانش آموزانی داریم که در امتحان نمره بیش از 60 گرفتند.
حالا اگر نمرات جنیفر مارلو را از 68 به 58 تغییر دهید و یک دانش آموز جدید به نام راس اسمیت با علامت 81 در جدول اضافه کنید، فهرست خود را به طور خودکار تنظیم می کند.
به این لیست پویا می گویند.
3 روش برای ایجاد لیست پویا در اکسل بر اساس معیارها
در اینجا ما یک مجموعه داده با شناسه های دانش آموز، اسم، و نشان برخی از دانش آموزان در مدرسه ای به نام مهدکودک آفتابگردان را داریم.
هدف امروز ما ایجاد یک لیست پویا بر اساس معیارهای این مجموعه داده است. ما امروز از هر دو معیار واحد و چندگانه استفاده خواهیم کرد.
1. با استفاده از توابع FILTER و OFFSET (برای نسخه های جدید اکسل)
اول از همه، ما از ترکیبی از FILTER ، OFFSET و<استفاده خواهیم کرد. 3> COUNTA توابع اکسل.
عملکرد FILTER فقط در Office 365 موجود است. بنابراین این فقط برای کسانی است که اشتراک Office 365 دارند.
مورد 1: بر اساس معیارهای واحد
بیایید سعی کنیم یک اشتراک پویا داشته باشیم. لیست دانش آموزانی که میانگین نمرات آنها بزرگتر یا مساوی 60 است.
شما می توانید از این فرمول استفاده کنید:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
همانطور که می بینید، ما لیستی از همه دانش آموزانی داریم که بیش از 60 کسب کرده اند.
و بدیهی است که این یک پویا است. فهرست شما هر مقداری را در مجموعه داده ها تغییر می دهید یا هر مقدار جدیدی را در مجموعه داده اضافه می کنید.
لیست به طور خودکار تنظیم می شود.
توضیحات فرمول:
-
COUNTA(C:C)
تعداد ردیفهایی را در ستون C که خالی نیستند برمیگرداند. بنابراینCOUNTA(C:C)-1
تعداد سطرهایی را که دارای مقادیر بدون سربرگ ستون هستند ( نام دانشجو در این مثال) برمیگرداند. - اگر ندارید سرصفحه ستون داشته باشید، از
COUNTA(C:C)
-
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
از سلول C5 شروع میشود استفاده کنید (نام دانشآموز اول) و محدوده ای از نام همه دانش آموزان را برمی گرداند. - عملکرد OFFSET در ترکیب با تابع COUNTIF برای پویا نگه داشتن فرمول استفاده شده است. اگر یک دانشآموز دیگر به مجموعه دادهها اضافه شود، فرمول
COUNTA(C:C)-1
به میزان 1 افزایش مییابد و تابع OFFSET شامل دانشآموز میشود. - به طور مشابه،
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
برای همه علامت هایی که بزرگتر یا مساوی هستند TRUE را برمی گرداند. 60 . - در نهایت،
FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
لیستی از تمام دانشآموزانی که نمرههای بیش از 60 گرفتهاند را برمیگرداند. - اگر هر دانش آموز جدیدی به مجموعه داده اضافه می شود،
COUNTA(C:C)-1
به میزان 1 افزایش می یابد، و تابع FILTER محاسبات را از جمله آن را تازه می کند. - بنابراین فرمول همیشه پویا باقی می ماند.
توجه:
اگر می خواهید علائم را همراه با نام های موجود در لیست دریافت کنید، فقط آرگومان پنجم را تغییر دهید. اولین تابع OFFSET از 1 تا 2 .
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
مورد 2: بر اساس معیارهای چندگانه
بیایید این بار چندین معیار را امتحان کنیم.
ما سعی خواهیم کرد فهرستی پویا از دانش آموزانی که نمرات بیشتر یا مساوی 60 گرفت، اما شناسه آنها کمتر یا مساوی 200 است.
می توانید از این فرمول استفاده کنید:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
همانطور که می بینید، ما لیستی از تمام دانش آموزانی داریم که نمره بیش از 60 گرفته اند و ID کمتر از 200 است.
و نیازی به گفتن نیست، این یک لیست پویا است.
اگر مقداری را تغییر دهید یا دانش آموز جدیدی به مجموعه داده اضافه کنید، لیست به طور خودکار تنظیم می شود.
توضیحات فرمول:
- در اینجا ما دو محدوده دینامیکی معیار را ضرب کردهایم،
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- اگر بیش از معیارهای 2 دارید، تمام محدودههای معیار را ضرب کنید. معیارها به همین صورت.
- بقیه هم مثل مثال قبلی (معیارهای واحد).تابع OFFSET در ترکیب با تابع COUNTA برای پویا نگه داشتن فرمول استفاده شده است.
توجه:
اگر می خواهید تمام ستون های لیست را ببینید ( ستون های B، C، و D در این مثال)، اولین آرگومان اولین OFFSET را تغییر دهید. تابع به ستون اول ( B5 در این مثال)، و آرگومان پنجم به تعداد کل ستونها ( 3 در این مثال).
=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
بیشتر بخوانید: Excel Create Dynamic فهرستی از جدول (3 روش آسان)
2. استفاده از INDEX-MATCH با سایر توابع (برای نسخه های قدیمی)
کسانی که دارای اشتراک Office 365 نمی تواند از فرمول بالا استفاده کند.
من برای کسانی که از نسخه قدیمی اکسل استفاده می کنند، با استفاده از INDEX-MATCH، راه پیچیده تری را نشان می دهم. توابع OFFSET، SMALL، IF، ROW، COUNTIF، و COUNTIFS اکسل. توجه داشته باشید که این فرمول ها فرمول های آرایه ای هستند. بنابراین، برای اعمال آنها در نسخه های قدیمی اکسل، باید Ctrl+Shift+Enter را به جای Enter فشار دهید.
مورد 1: بر اساس معیارهای تکی
فرمول ایجاد یک لیست پویا از دانش آموزانی که بیش از یا مساوی 60 گرفته اند به این صورت خواهد بود:
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,
OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
همانطور که می بینید، ما مجدداً نام همه دانش آموزانی که بیش از یا مساوی 60 کسب کرده اند به دست آورده ایم. .
این بار ما در حال صعود هستیمترتیب اعداد.
و بله، لیست پویا است. دانش آموز جدیدی را به مجموعه داده اضافه کنید، یا علامت های هر دانش آموزی را در مجموعه داده تغییر دهید.
فهرست به طور خودکار تنظیم می شود.
توضیحات فرمول:
- در اینجا C:C ستونی است که می خواهیم محتویات لیست را از آن استخراج کنیم ( Student Name در این مثال). شما از یکی خود استفاده می کنید.
- D:D ستونی است که معیار در آن قرار دارد ( میانگین امتیازها در این مثال). شما از یکی خود استفاده میکنید.
- C5 و D5 سلولهایی هستند که دادههای من از آنجا شروع شدهاند (درست زیر سرصفحههای ستون ). شما از یکی خود استفاده می کنید.
- ">=60" معیار من است (در این مثال بزرگتر یا مساوی 60 ). شما از فرمول خود استفاده می کنید.
- به غیر از این چند تغییر، بقیه فرمول را بدون تغییر نگه دارید و از آن در مجموعه داده های خود استفاده کنید. شما یک لیست پویا با توجه به معیار مورد نظر خود دریافت خواهید کرد.
مورد 2: بر اساس معیارهای چندگانه
INDEX-MATCH فرمول لیست پویا بر اساس معیارهای متعدد کمی پیچیده تر است. با این حال، من آن را نشان میدهم.
فرمول دریافت نام دانشآموزانی که نمرههای بزرگتر یا مساوی با 60 گرفتهاند، اما ID کمتر از 200 خواهد بود؛
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
توضیح فرمول:
- در اینجا C:C ستونی است که از آن می خواهیم بهمحتویات لیست را استخراج کنید ( Student Name در این مثال). شما از یکی خود استفاده می کنید.
- B:B و D:D ستون هایی هستند که معیارها در آن قرار دارند ( Student ID و میانگین امتیاز در این مثال). شما از یکی خود استفاده میکنید.
- B5، C5، و D5 سلولهایی هستند که دادههای من از آنجا شروع شدهاند (درست زیر سرصفحههای ستون ). شما از یکی خود استفاده می کنید.
- من در اینجا دو معیار را ضرب کردم:
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
. اگر بیش از دو معیار دارید، بر اساس آن ضرب کنید. - من دوباره از دو معیار استفاده کردم. داخل این تابع COUNTIFS :
COUNTIFS(B:B,"=60")
. شما از فرمول های خود استفاده می کنید. - بقیه فرمول را بدون تغییر نگه دارید و از آن در مجموعه داده های خود استفاده کنید. شما یک لیست پویا با چندین معیار دریافت خواهید کرد.
بیشتر بخوانید: چگونه با استفاده از VBA در اکسل یک لیست اعتبارسنجی داده پویا بسازیم
3 . ایجاد یک لیست کشویی پویا بر اساس معیارها با استفاده از ابزار اعتبار سنجی داده
اکنون لیست پویا را ایجاد کرده ایم. اگر می خواهید، می توانید یک لیست کشویی پویا در هر سلولی از کاربرگ خود ایجاد کنید.
- برای ایجاد لیست کشویی پویا، هر سلولی را در کاربرگ خود انتخاب کنید. و به Data > اعتبارسنجی داده > Data Validation در بخش Data Tools .
- شما Data Validation را دریافت خواهید کرد. جعبه گفتگو در زیر گزینه Allow ، List را انتخاب کنید. و در زیر گزینه منبع ،مرجع اولین سلولی که لیست در کاربرگ شما وجود دارد را به همراه یک HashTag (#) ( $E$5# در این مثال) وارد کنید.
- سپس روی OK کلیک کنید. شما یک لیست کشویی در سلول انتخابی خود مانند این دریافت خواهید کرد.
بیشتر بخوانید: نحوه ایجاد لیست کشویی پویا با استفاده از VBA در اکسل
نحوه ایجاد یک لیست منحصر به فرد پویا در اکسل بر اساس معیارها
در این بخش نحوه ایجاد یک لیست منحصر به فرد در اکسل بر اساس شاخص. ما از ترکیبی از توابع UNIQUE و FILTER استفاده خواهیم کرد. مجموعه داده را اصلاح کردیم و بازیهای مورد علاقه هر دانشآموز را اضافه کردیم. حالا میخواهید نام بازیهای حذف تکراری را با معیارها بدانید. معیارها میانگین نمرات دانش آموزان باید بیشتر از 60 باشد.
📌 مراحل:
- فرمول را بر اساس ترکیب توابع UNIQUE و FILTER در Cell G5 قرار دهید.
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
ما یک لیست منحصر به فرد بر اساس معیارها دریافت می کنیم.
توضیحات فرمول:
- FILTER(E5:E25,(D5:D25>60)
این مقادیر <3 را فیلتر می کند>محدوده E5:E25 ، با شرطی که میانگین نمرات باید بالاتر از 60 باشد.
نتیجه: [تنیس، والیبال، راگبی، تنیس، فوتبال، راگبی، راگبی، فوتبال]
- UNIQUE(FILTER(E5:E25,(D5:D25>60)))
این برمیگردد همه منحصر به فردمقادیر حاصل از نتیجه قبلی.
نتیجه: [تنیس، والیبال، راگبی، فوتبال]
نتیجه گیری
با استفاده از اینها روشها، میتوانید یک لیست پویا بر اساس معیارهای تک یا چندگانه در هر مجموعه داده در اکسل ایجاد کنید. لطفاً به وب سایت ما ExcelWIKI نگاهی بیندازید و پیشنهادات خود را در کادر نظر ارائه دهید.