وظيفة Excel SORTBY - فرز مخصص باستخدام الصيغة

  • شارك هذا
Michael Brown

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

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

    وظيفة Excel SORTBY

    تم تصميم الدالة SORTBY في Excel لفرز نطاق أو صفيف واحد استنادًا إلى القيم الموجودة في نطاق أو صفيف آخر. يمكن إجراء الفرز بواسطة عمود واحد أو عدة أعمدة.

    SORTBY هي واحدة من ست وظائف صفيف ديناميكية جديدة متوفرة في Excel لـ Microsoft 365 و Excel 2021. والنتيجة هي صفيف ديناميكي يمتد إلى الخلايا المجاورة ويتم تحديثه تلقائيًا عند تتغير بيانات المصدر.

    تحتوي الدالة SORTBY على عدد متغير من الوسيطات - الأولان مطلوبان والآخر اختياري: ،…)

    صفيف (مطلوب) - نطاق الخلايا أو مجموعة القيم المراد فرزها.

    By_array1 (مطلوب) - النطاق أو المصفوفة لفرزحسب.

    Sort_order1 (اختياري) - ترتيب الفرز:

    • 1 أو محذوف (افتراضي) - تصاعدي
    • -1 - تنازلي

    By_array2 / Sort_order2 ،… (اختياري) - أزواج صفيف / ترتيب إضافية لاستخدامها في الفرز.

    ملاحظة مهمة! لا تتوفر حاليًا وظيفة SORTBY إلا مع اشتراكات Microsoft 365 و Excel 2021. في Excel 2019 و Excel 2016 والإصدارات السابقة ، لا تتوفر وظيفة SORTBY.

    وظيفة SORTBY - 4 أشياء يجب تذكرها

    لكي تعمل صيغة Excel SORTBY بشكل صحيح ، هناك بعض النقاط المهمة التي يجب ملاحظتها:

    • يجب أن تكون وسيطات By_array إما ارتفاع صف واحد أو عرض عمود واحد.
    • المصفوفة وجميع وسائط by_array يجب أن يكون لها أبعاد متوافقة. على سبيل المثال ، عند الفرز حسب عمودين ، يجب أن يكون للمصفوفة و by_array1 و by_array2 نفس عدد الصفوف ؛ وإلا سيحدث خطأ #VALUE.
    • إذا كان الصفيف الذي تم إرجاعه بواسطة SORTBY هو النتيجة النهائية (الإخراج في خلية ولم يتم تمريره إلى وظيفة أخرى) ، يقوم Excel بإنشاء نطاق انسكاب ديناميكي وملئه بالنتائج. لذلك ، تأكد من وجود عدد كافٍ من الخلايا الفارغة لأسفل و / أو على يمين الخلية حيث تدخل الصيغة ، وإلا ستحصل على خطأ #SPILL.
    • يتم تحديث نتائج صيغ SORTBY تلقائيًا عندما تغيير بيانات المصدر. ومع ذلك ، فإن الإدخالات الجديدة التي تمت إضافتها خارجلا يتم تضمين الصفيف المشار إليه في الصيغة في النتائج ما لم تقم بتحديث مرجع الصفيف . لكي يتم توسيع الصفيف المشار إليه تلقائيًا ، قم بتحويل النطاق المصدر إلى جدول Excel أو إنشاء نطاق ديناميكي مسمى.

    صيغة SORTBY الأساسية في Excel

    إليك سيناريو نموذجي لاستخدام صيغة SORTBY في Excel:

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

    يمكن إنجاز المهمة بسهولة باستخدام وظيفة SORTBY ، والتي من أجلها قدم الوسيطات التالية:

    • المصفوفة هي A2: A10 - نظرًا لأنك لا ترغب في عرض العمود القيمة في النتائج ، فأنت تتركه خارج المصفوفة.
    • By_array1 هو B2: B10 - الفرز حسب القيمة .
    • Sort_order1 هو -1 - تنازليًا ، أي من الأعلى إلى الأدنى.

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

    =SORTBY(A2:B10, B2:B10, -1)

    من أجل التبسيط ، نستخدم الصيغة على نفس ورقة - أدخلها في D2 واضغط على مفتاح Enter. النتائج "تتسرب" تلقائيًا إلى العديد من الخلايا حسب الحاجة (D2: D10 في حالتنا). ولكن من الناحية الفنية ، فإن الصيغة موجودة فقط في الخلية الأولى ، وسيؤدي حذفها من D2 إلى حذف جميع النتائج.

    عند استخدامها على ورقة أخرى ، تأخذ الصيغةالشكل التالي:

    =SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)

    حيث الورقة 1 هي ورقة العمل التي تحتوي على البيانات الأصلية.

    استخدام الدالة SORTBY في Excel - أمثلة الصيغة

    أدناه ستجد بعض الأمثلة الأخرى لاستخدام SORTBY ، والتي نأمل أن تكون مفيدة وثاقبة.

    الفرز حسب أعمدة متعددة

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

    للفرز حسب عمودين ، نضيف فقط زوجًا آخر من by_array / sort_order وسيطات:

    • Array هي A2: C10 - هذه المرة ، نريد تضمين الأعمدة الثلاثة في النتائج.
    • By_array1 هو B2: B10 - أولاً ، قم بالفرز حسب الحالة .
    • Sort_order1 هو 1 - فرز أبجديًا من A إلى Z.
    • By_array2 هو C2: C10 - ثم الفرز حسب القيمة .
    • Sort_order2 هو -1 - الفرز من الأكبر إلى الأصغر.

    ونتيجة لذلك ، نحصل على الصيغة التالية:

    =SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)

    التي تعيد ترتيب بياناتنا تمامًا كما أشرنا إليها:

    فرز مخصص في Excel باستخدام صيغة

    لفرز البيانات بترتيب مخصص ، يمكنك إما استخدام ميزة الفرز المخصص في Excel أو إنشاء صيغة SORTBY MATCH بهذه الطريقة:

    ترتيب (مجموعة ،MATCH ( range_to_sort ، custom_list ، 0))

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

    للقيام بذلك ، نقوم أولاً بإنشاء قائمة مخصصة بترتيب الفرز المطلوب ( قيد التقدم ، مكتمل ، قيد الانتظار ) كتابة كل قيمة في خلية منفصلة في النطاق E2: E4.

    وبعد ذلك ، باستخدام الصيغة العامة أعلاه ، نقدم نطاق المصدر لصفيف (A2 : C10) ، والعمود الحالة لـ range_to_sort (B2: B10) ، والقائمة المخصصة التي أنشأناها لـ custom_list (E2: E4).

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))

    نتيجة لذلك ، حصلنا على المشاريع مرتبة حسب حالتها تمامًا حسب الحاجة:

    للفرز حسب القائمة المخصصة بترتيب عكسي ، ضع -1 لـ sort_order1 الوسيطة:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)

    وسيكون لديك المشاريع مرتبة في الاتجاه المعاكس:

    هل تريد أيضًا فرز السجلات داخل كل حالة؟ لا مشكلة. ببساطة ، أضف مستوى فرز آخر إلى الصيغة ، قل حسب القيمة (C2: C10) ، وحدد الترتيب المطلوب للفرز ، تصاعديًا في حالتنا:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)

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

    كيف هذه الصيغةيعمل:

    كما ذكرنا سابقًا ، يمكن لوظيفة SORTBY في Excel معالجة المصفوفات "الفرز حسب" التي تتوافق أبعادها مع المصفوفة المصدر. نظرًا لأن مصفوفة المصدر (C2: C10) تحتوي على 9 صفوف والقائمة المخصصة (E2: E4) 3 صفوف فقط ، لا يمكننا توفيرها مباشرة إلى الوسيطة by_array . بدلاً من ذلك ، نستخدم وظيفة MATCH لإنشاء صفيف مكون من 9 صفوف:

    MATCH(B2:B10, E2:E5, 0)

    هنا ، نستخدم العمود الحالة (B2: B10) كقيم بحث و قائمتنا المخصصة (E2: E5) كمصفوفة بحث. تم تعيين الوسيطة الأخيرة على 0 للبحث عن التطابقات التامة. نتيجة لذلك ، نحصل على مصفوفة من 9 أرقام ، يمثل كل منها الموضع النسبي لقيمة معينة الحالة في القائمة المخصصة:

    {1;3;2;1;3;2;2;1;2}

    تنتقل هذه المصفوفة مباشرة إلى الوسيطة by_array للدالة SORTBY وتجبرها على وضع البيانات بالترتيب المقابل لعناصر المصفوفة ، أي الإدخالات الأولى ممثلة بـ 1 ، ثم الإدخالات الممثلة بـ 2 ، وهكذا.

    فرز عشوائي في Excel باستخدام صيغة

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

    في Excel الجديد ، يمكنك استخدام دالة RANDARRAY أكثر قوة مع SORTBY:

    SORTBY ( مجموعة ، RANDARRAY (ROWS ( array )))

    حيث المصفوفة هي البيانات المصدر التي تريد تبديلها عشوائيًا.

    تعمل هذه الصيغة العامة لقائمة تتكون منعمود واحد بالإضافة إلى نطاق متعدد الأعمدة.

    على سبيل المثال ، لفرز قائمة عشوائيًا في A2: A10 ، استخدم هذه الصيغة:

    =SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))

    للتبديل العشوائي البيانات الموجودة في A2: C10 مع الاحتفاظ بالصفوف معًا ، استخدم هذا:

    =SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))

    كيف تعمل هذه الصيغة:

    تنتج الدالة RANDARRAY صفيفًا من الأرقام العشوائية التي سيتم استخدامها للفرز ، وتمررها في الوسيطة by_array في SORTBY. لتحديد عدد الأرقام العشوائية المراد إنشاؤها ، يمكنك حساب عدد الصفوف في النطاق المصدر باستخدام وظيفة ROWS و "تغذية" هذا الرقم إلى من الصفوف وسيطة RANDARRAY. هذا كل شيء!

    ملاحظة. مثل سابقتها ، تعد RANDARRAY دالة متغيرة وتقوم بإنشاء مجموعة جديدة من الأرقام العشوائية في كل مرة يتم فيها إعادة حساب ورقة العمل. نتيجة لذلك ، سيتم اللجوء إلى بياناتك مع كل تغيير على الورقة. لمنع اللجوء التلقائي ، يمكنك استخدام ميزة لصق خاص & gt؛ قيم لاستبدال الصيغ بقيمها.

    فرز الخلايا حسب طول السلسلة

    لفرز الخلايا حسب طول السلاسل النصية التي تحتوي عليها ، استخدم الدالة LEN لحساب عدد الأحرف في كل خلية ، وقم بتوفير الأطوال المحسوبة للوسيطة by_array في SORTBY. يمكن تعيين الوسيطة sort_order إلى 1 أو -1 ، اعتمادًا على الترتيب المفضل للفرز.

    للفرز حسب السلسلة النصية من الأصغر إلى الأكبر:

    SORTBY (مصفوفة ، LEN (مجموعة) ، 1)

    للفرز حسبسلسلة نصية من الأكبر إلى الأصغر:

    SORTBY (array، LEN (array)، -1)

    وإليك صيغة توضح هذا الأسلوب على البيانات الحقيقية:

    =SORTBY(A2:A7, LEN(A2:A7), 1)

    حيث A2: A7 هي الخلايا الأصلية التي ترغب في الفرز حسب طول النص بترتيب تصاعدي:

    SORTBY مقابل SORT

    في مجموعة وظائف الصفيف الديناميكية الجديدة في Excel ، هناك نوعان مصممة للفرز. فيما يلي ندرج أهم الاختلافات والتشابهات وكذلك عندما يكون من الأفضل استخدام كل منها.

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

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

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

    وسيطات by_array غير صالحة

    يجب أن تكون وسيطات by_array صفًا واحدًا أو عمودًا واحدًا ومتوافقة في الحجم مع المصفوفة حجة. على سبيل المثال ، إذا كان للمصفوفة 10الصفوف ، by_array يجب أن تتضمن أيضًا 10 صفوف. وإلا فإن الخطأ #VALUE! حدث خطأ.

    وسيطات ترتيب_فرز غير صالحة

    يمكن أن تكون الوسيطات ترتيب_فرز فقط 1 (تصاعدي) أو -1 (تنازلي). إذا لم يتم تعيين أي قيمة ، فسيتم تعيين الترتيب الافتراضي لـ SORTBY على الترتيب التصاعدي. إذا تم تعيين أي قيمة أخرى ، فسيتم الخطأ #VALUE! تم إرجاع الخطأ.

    لا توجد مساحة كافية للنتائج

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

    المصنف المصدر مغلق

    إذا كانت صيغة SORTBY تشير إلى ملف Excel آخر ، فيجب فتح كلا المصنفين. إذا كان المصنف المصدر مغلقًا ، فإن الخطأ #REF! حدث خطأ.

    إصدار Excel الخاص بك لا يدعم المصفوفات الديناميكية

    عند استخدامها في إصدار ما قبل الديناميكي من Excel ، ترجع الدالة SORT الخطأ #NAME؟ خطأ.

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

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

    صيغ Excel SORTBY (ملف .xlsx)

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