كيفية تصفية البيانات من تحديد قائمة منسدلة في Excel؟
في Excel، قد يقوم معظمنا بتصفية البيانات باستخدام ميزة التصفية. ولكن هل جربت يومًا تصفية البيانات من تحديد القائمة المنسدلة؟ على سبيل المثال، عندما أختار عنصرًا واحدًا من القائمة المنسدلة، أريد أن يتم تصفية الصفوف المرتبطة به كما هو موضح في لقطة الشاشة التالية. في هذه المقالة، سأتحدث عن كيفية تصفية البيانات باستخدام القائمة المنسدلة في ورقة عمل واحدة أو اثنتين.
تصفية البيانات من تحديد القائمة المنسدلة في ورقة عمل واحدة باستخدام صيغ المساعدة
تصفية البيانات من تحديد القائمة المنسدلة في ورقتين باستخدام كود VBA
تصفية البيانات من تحديد القائمة المنسدلة في ورقة عمل واحدة باستخدام صيغ المساعدة
لتصفية البيانات من القائمة المنسدلة، يمكنك إنشاء بعض أعمدة الصيغ المساعدة، يرجى القيام بالخطوات التالية واحدة تلو الأخرى:
1. أولاً، قم بإدراج القائمة المنسدلة. انقر فوق الخلية التي تريد إدراج القائمة المنسدلة فيها، ثم انقر فوق البيانات > التحقق من صحة البيانات > التحقق من صحة البيانات، انظر لقطة الشاشة:
2. في النافذة المنبثقة التحقق من صحة البيانات مربع الحوار، تحت علامة التبويب الإعدادات ، حدد قائمة من السماح القائمة المنسدلة، ثم انقر فوق الزر للاختيار من بين قائمة البيانات التي تريد إنشاء القائمة المنسدلة بناءً عليها، انظر لقطة الشاشة:
3. وبعد ذلك انقر فوق زر موافق، سيتم إدراج القائمة المنسدلة فوراً، واختر عنصرًا واحدًا من القائمة المنسدلة، ثم أدخل هذه الصيغة: =ROWS($A$2:A2) (A2 هي أول خلية ضمن العمود الذي يحتوي على قيمة القائمة المنسدلة) في الخلية D2، ثم اسحب مقبض التعبئة لأسفل إلى الخلايا لتطبيق هذه الصيغة، انظر لقطة الشاشة:
4. استمر بإدخال هذه الصيغة: =IF(A2=$H$2,D2,"") في الخلية E2، ثم اسحب مقبض التعبئة لأسفل لملء هذه الصيغة، انظر لقطة الشاشة:
ملاحظة: في الصيغة أعلاه: A2 هي أول خلية ضمن العمود الذي يحتوي على قيمة القائمة المنسدلة، H2 هي الخلية التي تم وضع القائمة المنسدلة فيها، D2 هي أول عمود للصيغة المساعدة.
5. وبعد ذلك اكتب هذه الصيغة: =IFERROR(SMALL($E$2:$E$17,D2),"") في الخلية F2، ثم اسحب مقبض التعبئة لأسفل إلى الخلايا لملء هذه الصيغة، انظر لقطة الشاشة:
ملاحظة: في الصيغة أعلاه: E2:E17 هي خلايا الصيغة المساعدة الثانية، D2 هي الخلية الأولى في عمود الصيغة المساعدة الأول.
6. بعد إدراج أعمدة الصيغ المساعدة، يجب عليك إخراج نتيجة التصفية إلى موقع آخر، يرجى تطبيق هذه الصيغة: =IFERROR(INDEX($A$2:$C$17,$F2,COLUMNS($J$2:J2)),"") في الخلية J2، ثم اسحب مقبض التعبئة من J2 إلى L2، وسيتم استخراج أول سجل من البيانات بناءً على القائمة المنسدلة، انظر لقطة الشاشة:
ملاحظة: في الصيغة أعلاه: A2:C17 هي البيانات الأصلية التي تريد تصفيتها، F2 هو العمود الثالث للصيغة المساعدة، J2 هي الخلية التي تريد إخراج نتيجة التصفية إليها.
7. وبعد ذلك استمر بسحب مقبض التعبئة لأسفل إلى الخلايا لعرض جميع السجلات المصفاة المقابلة، انظر لقطة الشاشة:
8. من الآن فصاعدًا، عند اختيار عنصر واحد من القائمة المنسدلة، سيتم تصفية جميع الصفوف بناءً على هذا الاختيار فوراً، انظر لقطة الشاشة:

تعزيز قوائم Excel المنسدلة مع ميزات Kutools المحسنة
عزز إنتاجيتك مع القدرات المحسنة لقوائم Kutools المنسدلة لـ Excel. توفر هذه المجموعة من الميزات أكثر من الوظائف الأساسية لبرنامج Excel لتحسين سير العمل الخاص بك، بما في ذلك:
- قائمة منسدلة متعددة الخيارات: حدد عدة إدخالات في وقت واحد لمعالجة البيانات بكفاءة.
- قائمة منسدلة مع مربعات اختيار: تعزز تفاعل المستخدم والوضوح داخل جداول البيانات الخاصة بك.
- قائمة منسدلة ديناميكية: يتم تحديثها تلقائيًا بناءً على تعديلات البيانات، مما يضمن الدقة.
- قائمة منسدلة قابلة للبحث: اعثر بسرعة على الإدخالات المطلوبة، مما يوفر الوقت ويقلل من المتاعب.
تصفية البيانات من تحديد القائمة المنسدلة في ورقتين باستخدام كود VBA
إذا كانت خلية القائمة المنسدلة في Sheet1، والبيانات المصفاة في Sheet2، عند اختيار عنصر واحد من القائمة المنسدلة، سيتم تصفية الورقة الأخرى. كيف يمكنك إنجاز هذه المهمة في Excel؟
قد يساعدك الكود التالي لـ VBA، يرجى القيام بذلك:
1. انقر بزر الماوس الأيمن على علامة تبويب الورقة التي تحتوي على خلية القائمة المنسدلة، ثم اختر عرض الكود من قائمة السياق، في نافذة Microsoft Visual Basic for Applications المفتوحة، انسخ والصق الكود التالي في الوحدة الفارغة:
كود VBA: تصفية البيانات من تحديد القائمة المنسدلة في ورقتين:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Not Intersect(Range("A2"), Target) Is Nothing Then
Application.EnableEvents = False
If Range("A2").Value = "" Then
Worksheets("Sheet2").ShowAllData
Else
Worksheets("Sheet2").Range("A2").AutoFilter 1, Range("A2").Value
End If
Application.EnableEvents = True
End If
End Sub
ملاحظة: في الكود أعلاه: A2 هي الخلية التي تحتوي على القائمة المنسدلة، و Sheet2 هي ورقة العمل التي تحتوي على البيانات التي تريد تصفيتها. الرقم 1 في النص البرمجي: AutoFilter 1 هو رقم العمود الذي تريد التصفية بناءً عليه. يمكنك تغييرها حسب الحاجة.
2. من الآن فصاعدًا، عند اختيار عنصر واحد من القائمة المنسدلة في Sheet1، سيتم تصفية البيانات المقابلة في Sheet2، انظر لقطة الشاشة:
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!