كيفية إنشاء قائمة ديناميكية في Excel بناءً على معايير (3 طرق)

  • شارك هذا
Hugh West

سأقوم اليوم بعرض كيفية إنشاء قائمة ديناميكية بناءً على معايير فردية أو متعددة في Excel.

تنزيل Practice Workbook

قائمة ديناميكية تستند إلى Criteria.xlsx

ما هي القائمة الديناميكية في Excel؟

القائمة الديناميكية هي قائمة يتم إنشاؤها من مجموعة بيانات ويتم تحديثها تلقائيًا عند تغيير أي قيمة في مجموعة البيانات الأصلية ، أو إضافة قيم جديدة إلى مجموعة البيانات الأصلية.

في الصورة المقدمة ، لدينا قائمة بأسماء جميع الطلاب الذين حصلوا على درجات أكبر من 60 في الاختبار.

الآن إذا قمت بتغيير علامات Jennifer Marlo من 68 إلى 58 ، وإضافة طالب جديد يسمى Ross Smith بعلامات 81 في الجدول ، فستقوم القائمة اضبط نفسها تلقائيًا.

تسمى هذه القائمة الديناميكية.

3 طرق لإنشاء قائمة ديناميكية في Excel استنادًا إلى المعايير

هنا لدينا مجموعة بيانات تحتوي على معرفات الطالب ، الأسماء ، و العلامات لبعض الطلاب في مدرسة تسمى روضة عباد الشمس.

هدفنا اليوم هو إنشاء قائمة ديناميكية بناءً على معايير من مجموعة البيانات هذه. سنستخدم معيارًا فرديًا ومتعددًا اليوم.

1. استخدام وظائف FILTER و OFFSET (للإصدارات الجديدة من Excel)

بادئ ذي بدء ، سنستخدم مزيجًا من عامل التصفية و OFFSET و COUNTA وظائف Excel.

وظيفة عامل التصفية متوفر في 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 ولدينا المعرف الصورة أقل من 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 إنشاء ديناميكي قائمة من الجدول (3 طرق سهلة)

2. استخدام INDEX-MATCH مع وظائف أخرى (للإصدارات القديمة)

أولئك الذين ليس لديهم لا يمكن لاشتراك Office 365 استخدام الصيغة أعلاه.

أعرض طريقة أكثر تعقيدًا لأولئك الذين يستخدمون الإصدار الأقدم من Excel ، باستخدام INDEX-MATCH ، وظائف OFFSET و SMALL و IF و ROW و COUNTIF و و COUNTIFS في Excel. لاحظ أن هذه الصيغ هي صيغ صفيف. لذلك ، لتطبيقها في الإصدارات القديمة من Excel ، تحتاج إلى الضغط على Ctrl + Shift + 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 هو العمود الذي نريد استخراج محتويات القائمة منه ( اسم الطالب في هذا مثال). أنت تستخدم واحدًا.
  • D: D هو العمود الذي يكمن فيه المعيار ( علامات متوسطة في هذا المثال). أنت تستخدم واحدة.
  • C5 و D5 هي الخلايا من حيث بدأت بياناتي (أسفل رؤوس الأعمدة ). أنت تستخدم واحدًا.
  • "& gt؛ = 60" هو معياري (أكبر من أو يساوي 60 في هذا المثال). أنت تستخدم واحدًا.
  • بخلاف هذه التغييرات القليلة ، احتفظ ببقية الصيغة دون تغيير واستخدمها في مجموعة البيانات الخاصة بك. ستحصل على قائمة ديناميكية وفقًا للمعيار الذي تريده.

الحالة 2: استنادًا إلى معايير متعددة

INDEX-MATCH صيغة القائمة الديناميكية القائمة على معايير متعددة أكثر تعقيدًا بعض الشيء. ما زلت أعرضها.

الصيغة للحصول على أسماء الطلاب الذين حصلوا على علامات أكبر من أو تساوي 60 ، لكن لديهم معرف ثانية أقل من 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 هما العمودان حيث تكمن المعايير ( معرف الطالب و متوسط ​​العلامات في هذا المثال). أنت تستخدم واحدًا.
  • 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 في Excel

3 . قم بإنشاء قائمة ديناميكية منسدلة بناءً على المعايير باستخدام أداة التحقق من صحة البيانات

الآن قمنا بإنشاء القائمة الديناميكية. إذا أردت ، يمكنك إنشاء قائمة منسدلة ديناميكية في أي خلية من ورقة العمل.

  • لإنشاء القائمة المنسدلة الديناميكية ، حدد أي خلية في ورقة العمل الخاصة بك وانتقل إلى البيانات & GT. التحقق من صحة البيانات & GT. التحقق من صحة البيانات ضمن قسم أدوات البيانات .

  • ستحصل على التحقق من صحة البيانات مربع حوار. ضمن الخيار السماح ، اختر قائمة . وتحت خيار المصدر ،أدخل مرجع الخلية الأولى حيث تكون القائمة في ورقة العمل الخاصة بك مع HashTag (#) ( $ E $ 5 # في هذا المثال).

  • ثم انقر فوق موافق . ستحصل على قائمة منسدلة في الخلية المحددة مثل هذه.

اقرأ المزيد: كيفية إنشاء قائمة منسدلة ديناميكية باستخدام VBA في Excel

كيفية إنشاء قائمة ديناميكية فريدة في Excel استنادًا إلى المعايير

في هذا القسم ، سنعرض كيفية إنشاء قائمة فريدة في Excel استنادًا إلى معايير. سنستخدم مزيجًا من وظائف فريدة و مرشح . لقد عدلنا مجموعة البيانات وأضفنا الألعاب المفضلة لكل طالب. الآن ، تريد معرفة اسم الألعاب إزالة التكرارات مع المعايير. المعايير هي متوسط ​​علامات الطلاب يجب أن تكون أكبر من 60 .

📌 الخطوات:

  • ضع الصيغة بناءً على مزيج من الدالتين UNIQUE و FILTER في Cell G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))

نحصل على قائمة فريدة بناءً على المعايير.

شرح الصيغة:

  • مرشح (E5: E25، (D5: D25 & gt؛ 60)

يؤدي هذا إلى تصفية قيم النطاق E5: E25 ، بشرط أن تكون العلامات المتوسطة أعلى من 60 .

النتيجة: [تنس ، كرة طائرة ، رجبي ، تنس ، كرة قدم ، رجبي ، لعبة الركبي ، كرة القدم]

  • فريدة من نوعها (مرشح (E5: E25، (D5: D25 & gt؛ 60)))

هذا يعود كل ما هو فريدالقيم من النتيجة السابقة.

النتيجة: [تنس ، كرة طائرة ، رجبي ، كرة قدم]

خاتمة

استخدام هذه الطرق ، يمكنك إنشاء قائمة ديناميكية بناءً على معايير فردية أو متعددة في أي مجموعة بيانات في Excel. يرجى إلقاء نظرة على موقعنا على الإنترنت ExcelWIKI وإعطاء اقتراحاتك في مربع التعليقات.

هيو ويست مدرب ومحلل إكسل ذو خبرة عالية ولديه أكثر من 10 سنوات من الخبرة في هذا المجال. حاصل على درجة البكالوريوس في المحاسبة والمالية ودرجة الماجستير في إدارة الأعمال. لدى هيو شغف بالتدريس وقد طور منهجًا تعليميًا فريدًا يسهل اتباعه وفهمه. ساعدت معرفته الخبيرة ببرنامج Excel الآلاف من الطلاب والمهنيين في جميع أنحاء العالم على تحسين مهاراتهم والتميز في حياتهم المهنية. من خلال مدونته ، يشارك Hugh معرفته مع العالم ، ويقدم دروسًا مجانية في Excel وتدريبًا عبر الإنترنت لمساعدة الأفراد والشركات على تحقيق إمكاناتهم الكاملة.