وظيفة Excel SORT - فرز البيانات تلقائيًا باستخدام الصيغة

  • شارك هذا
Michael Brown

يوضح البرنامج التعليمي كيفية استخدام وظيفة SORT لفرز مصفوفات البيانات ديناميكيًا. ستتعلم صيغة للفرز أبجديًا في Excel ، وترتيب الأرقام بترتيب تصاعدي أو تنازلي ، والفرز حسب عدة أعمدة ، والمزيد.

وظيفة الفرز موجودة منذ وقت طويل. ولكن مع إدخال المصفوفات الديناميكية في Excel 365 ، ظهرت طريقة سهلة للغاية للفرز باستخدام الصيغ. يكمن جمال هذه الطريقة في تحديث النتائج تلقائيًا عندما تتغير بيانات المصدر.

    وظيفة Excel SORT

    تقوم وظيفة SORT في Excel بفرز محتويات مصفوفة أو النطاق حسب الأعمدة أو الصفوف ، بترتيب تصاعدي أو تنازلي.

    ينتمي SORT إلى مجموعة وظائف الصفيف الديناميكية. والنتيجة هي صفيف ديناميكي يتدفق تلقائيًا إلى الخلايا المجاورة عموديًا أو أفقيًا ، اعتمادًا على شكل المصفوفة المصدر.

    يكون بناء جملة دالة SORT كما يلي:

    SORT (صفيف ، [sort_index ]، [sort_order]، [by_col])

    أين:

    Array (مطلوب) - عبارة عن مصفوفة من القيم أو نطاق من الخلايا للفرز. يمكن أن تكون هذه أي قيم بما في ذلك النصوص والأرقام والتواريخ والأوقات وما إلى ذلك.

    Sort_index (اختياري) - عدد صحيح يشير إلى العمود أو الصف الذي سيتم الفرز وفقًا له. إذا تم حذفه ، يتم استخدام الفهرس الافتراضي 1.

    ترتيب_فرز (اختياري) - يحدد ترتيب الفرز:

    • 1 أو محذوف (افتراضي) - ترتيب تصاعدي ، أي منالصيغ (ملف .xlsx) من الأصغر إلى الأكبر
    • -1 - ترتيب تنازلي ، أي من الأكبر إلى الأصغر

    By_col (اختياري) - قيمة منطقية تشير إلى اتجاه الفرز:

    • خطأ أو محذوف (افتراضي) - فرز حسب الصف. ستستخدم هذا الخيار معظم الوقت.
    • TRUE - فرز حسب العمود. استخدم هذا الخيار إذا كانت بياناتك منظمة أفقيًا في أعمدة كما في هذا المثال.

    وظيفة Excel SORT - تلميحات وملاحظات

    SORT هي وظيفة صفيف ديناميكية جديدة وبالتالي فهي تحتوي على هناك نوعان من الخصائص التي يجب أن تكون على دراية بها:

    • حاليًا لا تتوفر وظيفة SORT إلا في Microsoft 365 و Excel 2021. لا يدعم Excel 2019 و Excel 2016 صيغ الصفيف الديناميكية ، لذا فإن الدالة SORT غير متوفر في هذه الإصدارات.
    • إذا كانت المصفوفة التي تم إرجاعها بواسطة صيغة SORT هي النتيجة النهائية (أي لم يتم تمريرها إلى دالة أخرى) ، يقوم Excel ديناميكيًا بإنشاء نطاق بحجم مناسب وملئه بالقيم التي تم فرزها. لذلك ، تأكد من أن لديك دائمًا عددًا كافيًا من الخلايا الفارغة لأسفل أو / وإلى يمين الخلية حيث تدخل الصيغة ، وإلا سيحدث خطأ #SPILL.
    • يتم تحديث النتائج ديناميكيًا مع تغير بيانات المصدر. ومع ذلك ، لا يتم توسيع المصفوفة المتوفرة للصيغة تلقائيًا لتضمين الإدخالات الجديدة التي تمت إضافتها خارج المصفوفة المرجعية . لتضمين مثل هذه العناصر ، تحتاج إما إلى تحديث مرجع الصفيف في الصيغة الخاصة بك ، أوقم بتحويل نطاق المصدر إلى جدول كما هو موضح في هذا المثال ، أو قم بإنشاء نطاق ديناميكي مسمى.

    صيغة Excel SORT الأساسية

    يوضح هذا المثال صيغة أساسية لفرز البيانات في Excel بترتيب تصاعدي وتنازلي.

    بافتراض أن بياناتك مرتبة أبجديًا كما هو موضح في لقطة الشاشة أدناه. أنت تبحث عن فرز الأرقام في العمود B دون فصل البيانات أو خلطها.

    معادلة للفرز بترتيب تصاعدي

    لفرز القيم في العمود B من الأصغر إلى الأكبر ، إليك الصيغة التي يجب استخدامها:

    =SORT(A2:B8, 2, 1)

    حيث:

    • A2: B8 هي المصفوفة المصدر
    • 2 هو رقم العمود المطلوب الفرز حسب
    • 1 هو ترتيب الفرز التصاعدي

    نظرًا لأن بياناتنا منظمة في صفوف ، يمكن حذف الوسيطة الأخيرة إلى الوضع الافتراضي FALSE - الفرز حسب الصفوف.

    فقط أدخل الصيغة في أي خلية فارغة (D2 في حالتنا) ، اضغط على Enter ، وستنتقل النتائج تلقائيًا إلى D2: E8.

    الصيغة للترتيب التنازلي

    لفرز البيانات تنازليًا ، أي من الأكبر إلى الأصغر ، قم بتعيين الوسيطة Sort_order على -1 مثل هذا:

    =SORT(A2:B8, 2, -1)

    أدخل الصيغة في الخلية اليسرى العلوية من نطاق الوجهة وستحصل على هذه النتيجة:

    بطريقة مماثلة ، يمكنك فرز القيم النصية بترتيب أبجدي من A إلى Z أو من Z إلى A.

    كيفية فرز البيانات في Excel باستخدام f ormula

    توضح الأمثلة أدناه بعض الاستخدامات النموذجية لوظيفة SORT في Excelواثنين من العناصر غير التافهة.

    Excel SORT حسب العمود

    عندما تقوم بفرز البيانات في Excel ، في معظم الأحيان تقوم بتغيير ترتيب الصفوف. ولكن عندما يتم تنظيم بياناتك أفقيًا باستخدام صفوف تحتوي على تسميات وأعمدة تحتوي على سجلات ، فقد تحتاج إلى الفرز من اليسار إلى اليمين ، بدلاً من الفرز من أعلى إلى أسفل.

    للفرز حسب العمود في Excel ، قم بتعيين by_col وسيطة لـ TRUE. في هذه الحالة ، سيمثل sort_index صفًا وليس عمودًا.

    على سبيل المثال ، لفرز البيانات أدناه حسب الكمية. من الأعلى إلى الأدنى ، استخدم هذه الصيغة:

    =SORT(B1:H2, 2, 1, TRUE)

    حيث:

    • B1: H2 هي بيانات المصدر للفرز
    • 2 هي فهرس الفرز ، نظرًا لأننا نقوم بفرز الأرقام في الصف الثاني
    • -1 يشير إلى ترتيب الفرز التنازلي
    • TRUE تعني فرز الأعمدة ، وليس الصفوف

    الفرز حسب أعمدة متعددة بترتيب مختلف (فرز متعدد المستويات)

    عند العمل مع نماذج البيانات المعقدة ، قد تحتاج غالبًا إلى فرز متعدد المستويات. هل يمكن أن يتم ذلك باستخدام صيغة؟ نعم ، بسهولة! ما تفعله هو توفير ثوابت الصفيف للوسائط sort_index و Sort_order .

    على سبيل المثال ، لفرز البيانات أدناه أولاً حسب المنطقة (العمود A) من A إلى Z ثم الكمية . (العمود C) من الأصغر إلى الأكبر ، قم بتعيين الوسيطات التالية:

    • المصفوفة هي البيانات الموجودة في A2: C13.
    • Sort_index هو ثابت المصفوفة {1،3} ، نظرًا لأننا نفرز أولاً حسب المنطقة (1stعمود) ، ثم بواسطة الكمية . (العمود الثالث).
    • Sort_order هو ثابت المصفوفة {1، -1} ، حيث سيتم فرز العمود الأول بترتيب تصاعدي والعمود الثالث بترتيب تنازلي.
    • By_col محذوف لأننا نفرز الصفوف ، وهو افتراضي.

    بتجميع الوسيطات معًا ، نحصل على هذه الصيغة:

    =SORT(A2:C13, {1,3}, {1,-1})

    وهو يعمل بشكل مثالي! يتم فرز القيم النصية في العمود الأول أبجديًا والأرقام في العمود الثالث من الأكبر إلى الأصغر:

    الفرز والتصفية في Excel

    في حالة عندما تبحث عن تصفية البيانات ببعض المعايير وترتيب المخرجات ، استخدم الدالتين SORT و FILTER معًا: ، [sort_index]، [sort_order]، [by_col])

    تحصل الدالة FILTER على مصفوفة من القيم بناءً على المعايير التي تحددها وتمررها إلى الوسيطة الأولى من SORT.

    أفضل شيء حول هذه الصيغة هي أنها تُخرج النتائج أيضًا كنطاق انسكاب ديناميكي ، دون الحاجة إلى الضغط على Ctrl + Shift + Enter أو تخمين عدد الخلايا المراد نسخها إليها. كالعادة ، تكتب صيغة في أعلى خلية وتضغط على مفتاح Enter.

    كمثال ، سنستخرج العناصر بكمية مساوية أو أكبر من 30 (& GT ؛ = 30) من بيانات المصدر في A2: B9 ورتب النتائج بترتيب تصاعدي.

    لهذا ، قمنا أولاً بإعداد الشرط ، على سبيل المثال ، فيالخلية E2 كما هو موضح في الصورة أدناه. وبعد ذلك ، قم ببناء صيغة Excel SORT الخاصة بنا بهذه الطريقة:

    =SORT(FILTER(A2:B9, B2:B9>=E2), 2)

    بصرف النظر عن المصفوفة التي تم إنشاؤها بواسطة وظيفة FILTER ، فإننا نحدد فقط sort_index الوسيطة (العمود 2). تم حذف الوسيطتين المتبقيتين لأن القيم الافتراضية تعمل تمامًا كما نحتاج (الفرز تصاعديًا ، حسب الصف).

    احصل على N أكبر أو أصغر القيم وفرز النتائج

    عند تحليل الكميات الضخمة من المعلومات ، غالبًا ما تكون هناك حاجة لاستخراج عدد معين من القيم العليا. ربما ليس فقط استخراجها ، ولكن أيضًا رتبها بالترتيب المطلوب. وبشكل مثالي ، اختر الأعمدة التي تريد تضمينها في النتائج. تبدو صعبة؟ ليس مع وظائف المصفوفة الديناميكية الجديدة! column2_to_return ،…})

    حيث n هو عدد القيم التي تريد إرجاعها.

    من مجموعة البيانات أدناه ، افترض أنك تريد الحصول عليها قائمة أعلى 3 قائمة على أساس الأرقام الموجودة في العمود C.

    للقيام بذلك ، عليك أولاً فرز المصفوفة A2: C13 حسب العمود الثالث بترتيب تنازلي:

    SORT(A2:C13, 3, -1)

    وبعد ذلك ، قم بتداخل الصيغة أعلاه في الوسيطة الأولى ( صفيف ) للدالة INDEX حتى يتم فرز الصفيف من الأعلى إلى الأصغر.

    للثانية ( row_num ) ، التي تشير إلى عدد الصفوف المراد إرجاعها ، تنشئ الأرقام التسلسلية المطلوبة باستخدام الدالة SEQUENCE. كمانحتاج إلى 3 قيم عليا ، نستخدم SEQUENCE (3) ، وهو نفس توفير ثابت صفيف عمودي {1 ؛ 2 ؛ 3} مباشرة في الصيغة.

    للثالث ( عمود العمود ) الوسيطة ، التي تحدد عدد الأعمدة المراد إرجاعها ، توفر أرقام الأعمدة في شكل ثابت صفيف أفقي. نريد إرجاع العمودين B و C ، لذلك نستخدم المصفوفة {2،3}.

    في النهاية ، نحصل على الصيغة التالية:

    =INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

    وتنتج النتائج التي نريدها بالضبط:

    لإرجاع 3 قيم أسفل ، ما عليك سوى فرز البيانات الأصلية من الأصغر إلى الأكبر. لهذا ، قم بتغيير الوسيطة sort_order من -1 إلى 1:

    =INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

    إرجاع قيمة مرتبة في موضع معين

    بالنظر من زاوية أخرى ، ماذا لو كنت تريد فقط إرجاع موضع فرز معين؟ قل ، فقط السجل الأول ، أو الثاني فقط ، أو السجل الثالث فقط من القائمة التي تم فرزها؟ للقيام بذلك ، استخدم الإصدار المبسط من صيغة INDEX SORT التي تمت مناقشتها أعلاه:

    INDEX (SORT (…) ، n ، { column1_to_return ، column2_to_return ،…})

    حيث n هو موضع الاهتمام.

    على سبيل المثال ، للحصول على موضع معين من الأعلى (أي من البيانات التي تم فرزها تنازليًا) ، استخدم هذه الصيغة :

    =INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

    للحصول على موضع محدد من الأسفل (أي من البيانات التي تم فرزها تصاعديًا) ، استخدم هذا:

    =INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

    حيث A2: C13 هي بيانات المصدر ، F1 هي الموضع من الأعلى ، I1 هي الموضع منأسفل ، و {2،3} هي الأعمدة التي سيتم إرجاعها.

    استخدم جدول Excel للحصول على صفيف الفرز للتوسيع تلقائيًا

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

    لمعرفة كيفية عملها عمليًا ، يرجى مراعاة ما يلي مثال.

    لنفترض أنك تستخدم صيغة Excel SORT أدناه لترتيب القيم في النطاق A2: B8 بترتيب أبجدي:

    =SORT(A2:B8, 1, 1)

    ثم تقوم بإدخال إدخال جديد في الصف 9 ... ونشعر بخيبة أمل لرؤية أن الإدخال المضاف حديثًا قد ترك خارج نطاق الانسكاب:

    الآن ، قم بتحويل نطاق المصدر إلى جدول. لهذا ، ما عليك سوى تحديد النطاق الخاص بك بما في ذلك رؤوس الأعمدة (A1: B8) واضغط على Ctrl + T. عند إنشاء الصيغة الخاصة بك ، حدد النطاق المصدر باستخدام الماوس ، وسيتم إدراج اسم الجدول في الصيغة تلقائيًا (وهذا يسمى مرجعًا منظمًا):

    =SORT(Table1, 1, 1)

    عندما تكتب إدخال جديد أسفل الصف الأخير مباشرةً ، سيتم توسيع الجدول تلقائيًا ، وسيتم تضمين البيانات الجديدة في نطاق الانسكابمن صيغة SORT:

    وظيفة Excel SORT لا تعمل

    إذا نتج عن صيغة SORT خطأ ، فمن المحتمل أن يكون ذلك بسبب الأسباب التالية.

    خطأ #NAME: إصدار Excel الأقدم

    SORT هي وظيفة جديدة وتعمل فقط في Excel 365 و Excel 2021. في الإصدارات الأقدم حيث لا يتم دعم هذه الوظيفة ، هل الخطأ #NAME؟ حدث خطأ.

    خطأ #SPILL: شيء ما يمنع نطاق الانسكاب

    إذا لم تكن خلية واحدة أو أكثر في نطاق الانسكاب فارغة تمامًا أو مدمجة ، فسيكون هناك خطأ #SPILL! يتم عرض الخطأ. لإصلاحه ، ما عليك سوى إزالة الانسداد. لمزيد من المعلومات ، يرجى الاطلاع على Excel #SPILL! خطأ - ما يعنيه وكيفية إصلاحه.

    خطأ #VALUE: وسيطات غير صالحة

    كلما واجهت خطأ #VALUE! خطأ ، تحقق من الوسيطتين sort_index و sort_order . Sort_index يجب ألا يتجاوز عدد الأعمدة array ، و sort_order <يجب أن يكون 2> إما 1 (تصاعدي) أو -1 (تنازلي).

    خطأ #REF: المصنف المصدر مغلق

    نظرًا لأن المصفوفات الديناميكية لديها دعم محدود للمراجع بين المصنفات ، فإن الدالة SORT يتطلب فتح كلا الملفين. إذا كان المصنف المصدر مغلقًا ، فإن الصيغة ستطرح الخطأ #REF! خطأ. لإصلاحه ، ما عليك سوى فتح الملف المشار إليه.

    هذه هي طريقة فرز البيانات في Excel باستخدام الصيغة. أشكرك على القراءة وآمل أن أراك على مدونتنا الأسبوع المقبل!

    تدرب على تنزيل المصنف

    الفرز في Excel باستخدام

    مايكل براون متحمس للتكنولوجيا ولديه شغف لتبسيط العمليات المعقدة باستخدام أدوات البرمجيات. مع أكثر من عشر سنوات من الخبرة في صناعة التكنولوجيا ، صقل مهاراته في Microsoft Excel و Outlook ، بالإضافة إلى جداول بيانات Google والمستندات. مدونة مايكل مكرسة لمشاركة معرفته وخبرته مع الآخرين ، وتقديم نصائح ودروس تعليمية سهلة المتابعة لتحسين الإنتاجية والكفاءة. سواء كنت محترفًا متمرسًا أو مبتدئًا ، تقدم مدونة مايكل رؤى قيمة ونصائح عملية للحصول على أقصى استفادة من أدوات البرامج الأساسية هذه.