جدول المحتويات
في هذا الدرس السريع ، ستتعلم كيفية التصفية في Excel ديناميكيًا باستخدام الصيغ. أمثلة لتصفية التكرارات ، الخلايا التي تحتوي على نص معين ، بمعايير متعددة ، والمزيد.
كيف تقوم بالتصفية في Excel عادةً؟ بالنسبة للجزء الأكبر ، باستخدام تصفية تلقائية ، وفي سيناريوهات أكثر تعقيدًا باستخدام مرشح متقدم. نظرًا لكونها سريعة وقوية ، فإن لهذه الأساليب عيبًا واحدًا مهمًا - فهي لا يتم تحديثها تلقائيًا عندما تتغير بياناتك ، مما يعني أنه سيتعين عليك التنظيف والتصفية مرة أخرى. أصبح تقديم وظيفة FILTER في Excel 365 بديلاً طال انتظاره عن الميزات التقليدية. على عكسهم ، تعيد صيغ Excel الحساب تلقائيًا مع كل تغيير في ورقة العمل ، لذلك ستحتاج إلى إعداد عامل التصفية الخاص بك مرة واحدة فقط!
وظيفة Excel FILTER
وظيفة التصفية في يتم استخدام Excel لتصفية نطاق من البيانات بناءً على المعايير التي تحددها.
تنتمي الوظيفة إلى فئة وظائف المصفوفات الديناميكية. والنتيجة هي مصفوفة من القيم التي تتدفق تلقائيًا إلى نطاق من الخلايا ، بدءًا من الخلية التي تدخل فيها الصيغة.
يكون بناء جملة دالة FILTER كما يلي:
FILTER (array ، include ، [if_empty])حيث:
- صفيف (مطلوب) - نطاق أو مجموعة القيم التي تريد تصفيتها.
- تضمين (مطلوب) - المعايير المتوفرة كمصفوفة منطقية (قيم TRUE و FALSE).
الخاص بهاحتى مئات الأعمدة ، قد ترغب بالتأكيد في قصر النتائج على عدد قليل من الأعمدة الأكثر أهمية.
مثال 1. قم بتصفية بعض الأعمدة المجاورة
في الحالة التي تريد فيها ظهور بعض الأعمدة المجاورة في نتيجة FILTER ، قم بتضمين تلك الأعمدة فقط في المصفوفة لأن هذه الوسيطة هي التي تحدد الأعمدة التي يجب إرجاعها.
في مثال صيغة FILTER الأساسية ، بافتراض أنك ترغب في إرجاع أول عمودين ( الاسم و المجموعة ). لذلك ، تقدم A2: B13 للمصفوفة الوسيطة:
=FILTER(A2:B13, B2:B13=F1, "No results")
ونتيجة لذلك ، نحصل على قائمة بالمشاركين في المجموعة المستهدفة المحددة في F1:
مثال 2. تصفية الأعمدة غير المتجاورة
لجعل وظيفة FILTER ترجع أعمدة غير متجاورة ، استخدم هذه الحيلة الذكية:
- اصنع صيغة تصفية بالشروط (الشروط) المطلوبة باستخدام الجدول بالكامل لصفيف .
- عش الصيغة أعلاه داخل دالة تصفية أخرى. لتكوين وظيفة "المجمع" ، استخدم ثابت صفيف من قيم TRUE و FALSE أو قيم 1 و 0 للوسيطة تتضمن ، حيث تحدد TRUE (1) الأعمدة المراد الاحتفاظ بها و FALSE (0) تحدد الأعمدة المراد استبعادها.
على سبيل المثال ، لإرجاع فقط الأسماء (العمود الأول) و الفوز (العمود الثالث) ، نستخدم {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 صفوف في حالتنا. لكن افترض أن لديك مساحة لشخصين فقط. لإخراج أول صفين تم العثور عليهما فقط ، هذا ما عليك القيام به:
- قم بتوصيل صيغة 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 الثاني الدالة COLUMNS لحساب عدد الأعمدة في مجموعة البيانات وينتج مصفوفة أفقية مكافئة.
نصيحة. لإرجاع البيانات من أعمدة محددة ، وليس كل الأعمدة ، في ثابت الصفيف الأفقي الذي تستخدمه للوسيطة column_num للوسيطة INDEX ، قم بتضمين هذه الأرقام المحددة فقط. على سبيل المثال ، لاستخراج البيانات من العمودين الأول والثالث ، استخدم {1،3}.
وظيفة Excel FILTER لا تعمل
في الحالة التي تؤدي فيها صيغة Excel FILTER إلى حدوث خطأ ، من المرجح أن يكون ذلك أحد الإجراءات التالية:
#CALC! الخطأ
يحدث إذا تم حذف الوسيطة الاختيارية if_empty ، ولم يتم العثور على نتائج تفي بالمعايير. والسبب هو أن Excel لا يدعم المصفوفات الفارغة حاليًا. لمنع مثل هذه الأخطاء ، تأكد دائمًا من تحديد القيمة if_empty في الصيغ الخاصة بك.
#VALUE error
يحدث عند المصفوفة و تضمين الوسيطة لها أبعاد غير متوافقة.
# N / A ، #VALUE ، إلخ.
قد تحدث أخطاء مختلفة إذا كانت بعض القيم في تشتمل على الوسيطة هو خطأ أو لا يمكن تحويله إلى قيمة منطقية.
خطأ # NAME
يحدث عند محاولة استخدام FILTER في إصدار أقدم من Excel. يرجى تذكر أنها وظيفة جديدة ، وهي متوفرة فقط في Office 365 و Excel 2021.
فيExcel جديد ، يحدث خطأ #NAME إذا أخطأت عن طريق الخطأ في كتابة اسم الوظيفة.
خطأ #SPILL
في أغلب الأحيان ، يحدث هذا الخطأ إذا لم تكن خلية واحدة أو أكثر في نطاق الانسكاب فارغة تمامًا . لإصلاحها ، ما عليك سوى مسح الخلايا غير الفارغة أو حذفها. للتحقيق في الحالات الأخرى وحلها ، يرجى الاطلاع على #SPILL! خطأ في Excel: ماذا يعني وكيفية الإصلاح.
#REF! خطأ
يحدث عند استخدام صيغة عامل التصفية بين المصنفات المختلفة ، ويتم إغلاق المصنف المصدر.
هذه هي كيفية تصنيف البيانات في Excel ديناميكيًا. أشكرك على القراءة وآمل أن أراك على مدونتنا الأسبوع المقبل!
تنزيل المصنف التدريبي
التصفية في Excel بالصيغ (ملف .xlsx)
يجب أن يكون الارتفاع (عندما تكون البيانات في أعمدة) أو العرض (عندما تكون البيانات في صفوف) مساويًا للوسيطة المصفوفة .تتوفر وظيفة FILTER في Excel for Microsoft فقط 365 و Excel 2021. في Excel 2019 و Excel 2016 والإصدارات السابقة ، لا يتم دعمه.
الصيغة الأساسية لتصفية Excel
بالنسبة للمبتدئين ، دعنا نناقش بضع حالات بسيطة للغاية فقط للحصول على المزيد من الفهم لكيفية عمل صيغة Excel لتصفية البيانات.
من مجموعة البيانات أدناه ، بافتراض أنك تريد استخراج السجلات بقيمة محددة في Group ، العمود ، قل المجموعة C. للقيام بذلك ، نوفر التعبير B2: B13 = "C" إلى وسيطة ، والتي ستنتج مصفوفة منطقية مطلوبة ، مع TRUE تقابل قيم "C".
=FILTER(A2:C13, B2:B13="C", "No results")
من الناحية العملية ، من الأنسب إدخال المعايير في خلية منفصلة ، على سبيل المثال F1 ، واستخدم مرجع خلية بدلاً من ترميز القيمة مباشرة في الصيغة:
=FILTER(A2:C13, B2:B13=F1, "No results")
بخلاف ميزة تصفية Excel ، لا تقوم الوظيفة بإجراء أي تغييرات على البيانات الأصلية. يقوم باستخراج السجلات التي تمت تصفيتها في ما يسمى بنطاق الانسكاب (E4: G7 في لقطة الشاشة أدناه) ، بدءًا من الخلية حيث يتم إدخال الصيغة:
إذا لم تكن هناك سجلات تطابق المعايير المحددة ، ترجع الصيغة القيمة التي وضعتها في if_empty الوسيطة ، "لا توجد نتائج" في هذا المثال:
إذا كنت تفضل إرجاع أي شيء في هذه الحالة ، إذن قدم سلسلة فارغة ("") للوسيطة الأخيرة:
=FILTER(A2:C13, B2:B13=F1, "")
في حالة تنظيم بياناتك أفقيًا من اليسار إلى اليمين كما هو موضح في لقطة الشاشة أدناه ، ستعمل وظيفة التصفية بشكل جيد أيضًا. فقط تأكد من تحديد النطاقات المناسبة للمصفوفة و تتضمن وسيطات ، بحيث يكون للصفيف المصدر والمصفوفة المنطقية نفس العرض:
=FILTER(B2:M4, B3:M3= B7, "No results")
وظيفة Excel FILTER - ملاحظات الاستخدام
للتصفية بشكل فعال في Excel باستخدام الصيغ ، إليك بضع نقاط مهمة يجب الانتباه إليها:
- تقوم وظيفة FILTER تلقائيًا بسكب النتائج عموديًا أو أفقيًا في ورقة العمل ، اعتمادًا على كيفية تنظيم بياناتك الأصلية. لذا ، يرجى التأكد من أن لديك دائمًا عددًا كافيًا من الخلايا الفارغة لأسفل وإلى اليمين ، وإلا ستحصل على خطأ #SPILL.
- نتائج وظيفة Excel FILTER ديناميكية ، مما يعني أنها يتم تحديثها تلقائيًا عندما تكون القيم في تغيير مجموعة البيانات الأصلية. ومع ذلك ، لا يتم تحديث النطاق الموفر للوسيطة للمصفوفة عند إضافة إدخالات جديدة إلى البيانات المصدر. إذا كنت ترغب في تغيير حجم المصفوفة تلقائيًا ، فقم بتحويلها إلى جدول Excel وإنشاء صيغ بمراجع منظمة ، أو إنشاء نطاق ديناميكي مسمى.
كيفية التصفية في Excel -أمثلة على الصيغ
الآن بعد أن عرفت كيف تعمل صيغة عامل تصفية Excel الأساسية ، حان الوقت للحصول على بعض الأفكار حول كيفية توسيعها لحل المهام الأكثر تعقيدًا.
تصفية بمعايير متعددة (AND logic)
لتصفية البيانات بمعايير متعددة ، يمكنك توفير تعبيرين منطقيين أو أكثر للوسيطة تتضمن :
FILTER (array، ( range1= criteria1) * ( range2= criteria2)، "No results")تعالج عملية الضرب المصفوفات باستخدام AND logic ، مع ضمان إرجاع السجلات التي تلبي جميع المعايير فقط. من الناحية الفنية ، تعمل هذه الطريقة:
نتيجة كل تعبير منطقي عبارة عن مصفوفة من القيم المنطقية ، حيث تساوي TRUE 1 و FALSE إلى 0. بعد ذلك ، يتم ضرب عناصر جميع المصفوفات في نفس المواضع . نظرًا لأن الضرب في الصفر يعطي دائمًا صفرًا ، فإن العناصر التي تكون جميع المعايير الخاصة بها هي TRUE تدخل في المصفوفة الناتجة ، وبالتالي يتم استخراج هذه العناصر فقط.
توضح الأمثلة أدناه هذه الصيغة العامة في العمل.
مثال 1. تصفية أعمدة متعددة في Excel
توسيع صيغة Excel FILTER الأساسية الخاصة بنا إلى أبعد من ذلك ، دعنا نقوم بتصفية البيانات حسب عمودين: المجموعة (العمود B) و Wins (العمود C).
لهذا ، قمنا بإعداد المعايير التالية: اكتب اسم المجموعة المستهدفة في F2 ( criteria1 ) والحد الأدنى المطلوب منيفوز في F3 ( criteria2 ).
نظرًا لأن بيانات المصدر الخاصة بنا موجودة في A2: C13 ( مجموعة ) ، فإن المجموعات موجودة في B2: B13 ( النطاق 1 ) والمكاسب في C2: C13 ( range2 ) ، تأخذ الصيغة هذا الشكل:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")
ونتيجة لذلك ، تحصل على قائمة باللاعبين في المجموعة A الذين حققوا فوزين أو أكثر:
مثال 2. تصفية البيانات بين التواريخ
أولاً ، يجب ملاحظة أنه غير ممكن لتكوين صيغة عامة للتصفية حسب التاريخ في Excel. في مواقف مختلفة ، ستحتاج إلى بناء معايير بشكل مختلف ، اعتمادًا على ما إذا كنت تريد التصفية حسب تاريخ معين ، أو حسب الشهر ، أو حسب السنة. الغرض من هذا المثال هو توضيح النهج العام.
إلى بيانات العينة ، نضيف عمودًا آخر يحتوي على تواريخ آخر فوز (العمود D). والآن ، سنستخرج المكاسب التي حدثت في فترة محددة ، على سبيل المثال بين 17 مايو و 31 مايو.
يرجى ملاحظة أنه في هذه الحالة ، ينطبق كلا المعيارين على نفس النطاق:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")
حيث G2 و G3 هما تاريخا التصفية بينهما.
تصفية بمعايير متعددة (أو منطق)
لاستخراج البيانات بناءً على شرط OR المتعدد ، يمكنك أيضًا استخدام التعبيرات المنطقية كما هو موضح في الأمثلة السابقة ، ولكن بدلاً من الضرب ، يمكنك جمعها. عندما يتم جمع المصفوفات المنطقية التي يتم إرجاعها بواسطة التعبيرات ، سيكون للمصفوفة الناتجة 0 للإدخالات التي لا تستوفي أي معايير (أي كلالمعايير خاطئة) ، وسيتم تصفية هذه الإدخالات. سيتم استخراج الإدخالات التي يكون معيار واحد على الأقل لها هو TRUE.
إليك الصيغة العامة لتصفية الأعمدة باستخدام منطق OR:
FILTER (array، ( range1= <1)> criteria1) + ( range2= criteria2)، "No results")كمثال ، دعنا نستخرج قائمة باللاعبين الذين لديهم هذا أو هذا عدد مرات الفوز.
بافتراض أن بيانات المصدر في 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")
وستحصل على النتيجة التالية:
كيفية تصفية التكرارات في Excel
عند العمل مع أوراق عمل ضخمة أو دمج البيانات من مصادر مختلفة ، غالبًا ما يكون هناك احتمال أن تتسلل بعض التكرارات.
إذا كنت تبحث عن تصفية التكرارات و مقتطفعناصر فريدة ، ثم استخدم وظيفة UNIQUE كما هو موضح في البرنامج التعليمي المرتبط أعلاه.
إذا كان هدفك تصفية التكرارات ، أي استخراج الإدخالات التي تحدث أكثر من مرة ، فاستخدم وظيفة FILTER مع COUNTIFS.
الفكرة هي الحصول على عدد مرات التكرار لجميع السجلات واستخراج تلك التي تزيد عن 1. للحصول على الأعداد ، تقوم بتوفير نفس النطاق لكل مدى المعايير / معايير زوج من COUNTIFS مثل هذا:
عامل تصفية ( صفيف، COUNTIFS ( عمود 1، عمود 1 ، عمود 2، عمود 2) & gt؛ 1، "لا توجد نتائج")على سبيل المثال ، لتصفية الصفوف المكررة من البيانات في A2: C20 استنادًا إلى القيم الموجودة في جميع الأعمدة الثلاثة ، إليك الصيغة التي يجب استخدامها:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")
نصيحة. لتصفية التكرارات استنادًا إلى القيم الموجودة في أعمدة المفاتيح ، قم بتضمين تلك الأعمدة المحددة فقط في دالة COUNTIFS.
كيفية تصفية الفراغات في Excel
إن صيغة تصفية الخلايا الفارغة هي في الواقع تباين في صيغة Excel FILTER بمعايير AND متعددة. في هذه الحالة ، نتحقق مما إذا كانت جميع الأعمدة (أو المعينة) تحتوي على أي بيانات فيها واستبعد الصفوف التي تكون فيها خلية واحدة على الأقل فارغة. لتحديد الخلايا غير الفارغة ، يمكنك استخدام عامل التشغيل "لا يساوي" () مع سلسلة فارغة ("") مثل هذا:
FILTER (array ، ( column1 "") * ( عمود 2 = "") ، "لا توجد نتائج")مع بيانات المصدر في A2: C12 ، لتصفية الصفوفتحتوي على خلية فارغة واحدة أو أكثر ، يتم إدخال الصيغة التالية في E3:
تصفية الخلايا التي تحتوي على نص محدد
لاستخراج الخلايا التي تحتوي على نص معين ، يمكن استخدام وظيفة FILTER مع الدالة الكلاسيكية إذا كانت الخلية تحتوي على صيغة:
FILTER (array، ISNUMBER (SEARCH (" text "، range ))، "No results")وإليك كيفية عملها:
- تبحث الدالة SEARCH عن سلسلة نصية محددة في نطاق معين وتُرجع إما رقمًا (موضع الحرف الأول) أو #VALUE! خطأ (لم يتم العثور على النص).
- تحول الدالة ISNUMBER جميع الأرقام إلى TRUE والأخطاء إلى FALSE وتمرر المصفوفة المنطقية الناتجة إلى وتشمل وسيطة دالة FILTER.
في هذا المثال ، أضفنا أسماء العائلة للاعبين في B2: B13 ، وكتبنا جزء الاسم الذي نريد العثور عليه في G2 ، ثم استخدم الصيغة التالية تصفية البيانات:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")
ونتيجة لذلك ، تسترد الصيغة الاسمين اللذين يحتويان على "han":
تصفية وحساب (Sum ، Average ، Min ، Max ، إلخ.)
الشيء الرائع في وظيفة Excel 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 ، والذي من الواضح أنه آخر شيء تريده :)
صيغة تصفية حساسة لحالة الأحرف
صيغة Excel FILTER القياسية غير حساسة لحالة الأحرف ، مما يعني أنها لا تميز بين الأحرف الصغيرة والكبيرة. لتمييز حالة النص ، قم بتداخل الدالة EXACT في الوسيطة تتضمن . سيؤدي هذا إلى إجبار FILTER على إجراء اختبار منطقي بطريقة حساسة لحالة الأحرف:
عامل تصفية (مصفوفة ، بالضبط ( النطاق ، المعايير ) ، "لا توجد نتائج")افتراض ، لديك كلتا المجموعتين 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")
كيفية تصفية البيانات وإرجاع أعمدة محددة فقط
بالنسبة للجزء الأكبر ، فإن تصفية جميع الأعمدة باستخدام صيغة واحدة هو ما يريده مستخدمو Excel. ولكن إذا كان جدول المصدر الخاص بك يحتوي على عشرات أو