إرشادات وأمثلة حول صيغ الصفيف
ينطبق على
Excel لـ Microsoft 365 Excel لـ Microsoft 365 لـ Mac Excel 2024 Excel 2024 Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel for iPhone

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

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

يمكنك استخدام صيغ الصفيف لتنفيذ مهام معقدة، مثل:

  • إنشاء نماذج مجموعات بيانات بسرعة.

  • حساب عدد الأحرف المضمنة في نطاق من الخلايا.

  • جمع الأرقام التي تفي بشروط معينة فقط، مثل القيم الدنيا في نطاق، أو الأرقام التي تقع بين حد أعلى وأدنى.

  • جمع كل قيمة Nth في نطاق من القيم.

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

تنزيل الأمثلة التي نقدمها

قم بتنزيل مصنف مثال مع جميع أمثلة صيغ الصفيف في هذه المقالة.

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

  • صيغة صفيف متعددة الخلايا

    دالة صفيف متعددة الخلايا في الخلية H10 =F10:F19*G10:G19 لحساب عدد السيارات المباعة حسب سعر الوحدة

  • هنا نحن نحسب إجمالي مبيعات الكوبيهات وsedans لكل مندوب مبيعات عن طريق إدخال =F10:F19*G10:G19 في الخلية H10.

    عند الضغط على مفتاح الإدخال Enter، سترى النتائج تمتد إلى الخلايا H10:H19. لاحظ أنه يتم تمييز نطاق الانسكاب بحد عند تحديد أي خلية ضمن نطاق الانسكاب. قد تلاحظ أيضا أن الصيغ الموجودة في الخلايا H10:H19 باللون الرمادي. إنها موجودة فقط للرجوع إليها، لذلك إذا كنت تريد ضبط الصيغة، فستحتاج إلى تحديد الخلية H10، حيث توجد الصيغة الرئيسية.

  • صيغة صفيف أحادي الخلية

    صيغة صفيف أحادي الخلية لحساب الإجمالي الكلي باستخدام =SUM(F10:F19*G10:G19)

    في الخلية H20 من المصنف المثال، اكتب أو انسخ والصق =SUM(F10:F19*G10:G19)، ثم اضغط على مفتاح الإدخال Enter.

    في هذه الحالة، يقوم Excel بضرب القيم في الصفيف (نطاق الخلايا F10 إلى G19)، ثم يستخدم الدالة SUM لإضافة الإجماليات معا. إن الناتج هو الإجمالي الكلي بقيمة 1590000 ر. س. في المبيعات.

    يوضح هذا المثال مدى فعالية هذا النوع من الصيغ. لنفترض على سبيل المثال أن لديك 1000 صف من البيانات. يمكنك جمع جزء من هذه البيانات أو كلها بإنشاء صيغة صفيف في خلية واحدة بدلاً من سحب الصيغة إلى الأسفل عبر 1000 صف. لاحظ أيضا أن الصيغة أحادية الخلية في الخلية H20 مستقلة تماما عن الصيغة متعددة الخلايا (الصيغة الموجودة في الخلايا H10 إلى H19). وهذه ميزة أخرى من مزايا استخدام صيغ الصفيف ، وهي المرونة. يمكنك تغيير الصيغ الأخرى في العمود H دون التأثير على الصيغة في H20. يمكن أن يكون من الممارسات الجيدة أيضا أن يكون لديك إجماليات مستقلة مثل هذا، لأنها تساعد على التحقق من صحة نتائجك.

  • توفر صيغ الصفيف الديناميكية أيضا هذه المزايا:

    • التناسق    إذا نقرت فوق أي من الخلايا من H10 لأسفل، فسترى الصيغة نفسها. يساعد هذا التناسق في ضمان الحصول على المزيد من الدقة.

    • الأمان    لا يمكنك الكتابة فوق مكون من صيغة صفيف متعددة الخلايا. على سبيل المثال، انقر فوق الخلية H11 واضغط على Delete. لن يغير Excel إخراج الصفيف. لتغييرها، تحتاج إلى تحديد الخلية العلوية اليمنى في الصفيف أو الخلية H10.

    • أحجام ملفات أصغر    يمكنك استخدام صيغة صفيف واحدة في أغلب الأحيان بدلاً من استخدام العديد من الصيغ الوسيطة. على سبيل المثال، يستخدم مثال مبيعات السيارات صيغة صفيف واحدة لحساب النتائج في العمود E. إذا كنت قد استخدمت صيغا قياسية مثل =F10*G10 وF11*G11 وF12*G12 وما إلى ذلك، كنت ستستخدم 11 صيغة مختلفة لحساب نفس النتائج. هذا ليس أمرا مهما، ولكن ماذا لو كان لديك آلاف الصفوف لإجمالي؟ ثم يمكن أن يحدث فرقا كبيرا.

    • الفعالية    يمكن أن تكون دالات الصفيف طريقة فعالة لإنشاء صيغ معقدة. صيغة الصفيف =SUM(F10:F19*G10:G19) هي نفسها: =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).

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

    • #SPILL! خطأ    قدمت الصفائف الديناميكية الخطأ #SPILL!، مما يشير إلى حظر نطاق الانسكاب المقصود لسبب ما. عند حل الانسداد، سيتم تسرب الصيغة تلقائيا.

إن ثوابت الصفيف مكوّن من مكونات صيغ الصفيف. ويمكنك إنشاء ثوابت الصفيف عبر إدخال قائمة من العناصر ثم إحاطتها يدوياً بقوسين كبيرين ({ })، كالتالي:

={1,2,3,4,5} أو ={"January","February","March"}

إذا قمت بفصل العناصر باستخدام الفواصل، فستنشئ صفيفاً أفقياً (صف). وإذا قمت بفصل العناصر باستخدام الفواصل المنقوطة، فستنشئ صفيفاً عمودياً (عمود). لإنشاء صفيف ثنائي الأبعاد، يمكنك تحديد العناصر في كل صف بفواصل، وتحديد كل صف بفواصل منقوطة.

تدرّبك الإجراءات التالية على إنشاء ثوابت أفقية وعمودية وثنائية الأبعاد. سنعرض أمثلة باستخدام الدالة SEQUENCE لإنشاء ثوابت الصفيف تلقائيا، بالإضافة إلى ثوابت الصفيف التي تم إدخالها يدويا.

  • إنشاء ثابت أفقي

    استخدم المصنف من الأمثلة السابقة، أو أنشئ مصنفاً جديداً. حدد أي خلية فارغة وأدخل =SEQUENCE(1,5). تقوم الدالة SEQUENCE بإنشاء صف واحد بمقدار 5 صفيف عمود بنفس ={1,2,3,4,5}. يتم عرض النتيجة التالية:

    إنشاء ثابت صفيف أفقي باستخدام =SEQUENCE(1,5) أو ={1,2,3,4,5}

  • إنشاء ثابت عمودي

    حدد أي خلية فارغة تحتها غرفة، وأدخل =SEQUENCE(5)، أو ={1؛ 2; 3; 4; 5}. يتم عرض النتيجة التالية:

    إنشاء ثابت صفيف عمودي باستخدام =SEQUENCE(5) أو ={1; 2; 3; 4; 5}

  • إنشاء ثابت ثنائي الأبعاد

    حدد أي خلية فارغة بها مساحة إلى اليمين وأسفلها، وأدخل =SEQUENCE(3,4). تظهر أمامك النتيجة التالية:

    إنشاء 3 صف بمقدار 4 ثابت صفيف عمود باستخدام =SEQUENCE(3,4)

    يمكنك أيضا إدخال: أو ={1,2,3,4; 5,6,7,8; 9,10,11,12}، ولكنك ستحتاج إلى الانتباه إلى المكان الذي تضع فيه فاصلات منقوطة مقابل الفواصل.

    كما ترى، يوفر خيار SEQUENCE مزايا كبيرة على إدخال القيم الثابتة للصفيف يدويا. في المقام الأول، يوفر لك الوقت، ولكن يمكن أن يساعد أيضا في تقليل الأخطاء من الإدخال اليدوي. من الأسهل أيضا القراءة، خاصة وأن الفاصلات المنقوطة قد يكون من الصعب تمييزها عن فواصل الفاصلة.

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

في الخلية D9، أدخلنا =SEQUENCE(1,5,3,1)، ولكن يمكنك أيضا إدخال 3 و4 و5 و6 و7 في الخلايا A9:H9. لا يوجد شيء خاص حول تحديد هذا الرقم المحدد، لقد اخترنا فقط شيئا آخر غير 1-5 للتمييز.

في الخلية E11، أدخل =SUM(D9:H9*SEQUENCE(1,5)) أو =SUM(D9:H9*{1,2,3,4,5})). ترجع الصيغ 85.

استخدم ثوابت الصفيف في الصيغ. في هذا المثال، استخدمنا =SUM(D9:H(*SEQUENCE(1,5))

تنشئ الدالة SEQUENCE ما يعادل ثابت الصفيف {1,2,3,4,5}. نظرا لأن Excel ينفذ عمليات على التعبيرات المضمنة بين أقواس أولا، فإن العنصرين التاليين اللذين يدخلان حيز التشغيل هما قيم الخلية في D9:H9، وعامل الضرب (*). عند هذه المرحلة، تضرب الصيغة القيم الموجودة في الصفيف المخزن بالقيم المناظرة في الثابت. وهو ما يكافئ:

=SUM(D9*1,E9*2,F9*3,G9*4,H9*5), or =SUM(3*1,4*2,5*3,6*4,7*5)

وأخيرا، تضيف الدالة SUM القيم، وترجع 85.

لتجنب استخدام الصفيف المخزن والاحتفاظ بالعملية بالكامل في الذاكرة، يمكنك استبدالها مع ثابت صفيف آخر:

=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)), or =SUM({3,4,5,6,7}*{1,2,3,4,5})

العناصر التي يمكنك استخدامها في ثوابت الصفيف

  • يمكن أن تحتوي ثوابت الصفيف على أرقام ونص وقيم منطقية (مثل TRUE و FALSE) وقيم خطأ مثل #N/A. يمكنك استخدام الأرقام بتنسيقات عدد صحيح وأرقام عشرية وعلمية. إذا قمت بتضمين نص، فستحتاج إلى إحاطته بعلامات اقتباس ("نص").

  • لا يمكن أن تحتوي ثوابت الصفيف على صفائف أو صيغ أو دالات إضافية. بعبارات أخرى، لا يمكن أن تتضمن سوى نص أو أعداد مفصولة بفواصل أو فواصل منقوطة. ويعرض Excel رسالة تحذير عند قيامك بإدخال صيغة مثل {‎1,2,A1:D4} أو {1,2‎,SUM(Q2:Z8)‎}. ولا يمكن أن تتضمن القيم الرقمية علامات النسبة المئوية أو علامات الدولار أو الفواصل أو الأقواس.

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

انتقل إلى الصيغ > الأسماء المعرفة > تعريف الاسم. في المربع الاسم ، اكتب Quarter1. في المربع يشير إلى، أدخل الثابت التالي (تذكر كتابة الأقواس الكبيرة يدوياً):

{"يناير","فبراير","يناير"}=

يجب أن يبدو مربع الحوار الآن كما يلي:

إضافة ثابت صفيف مسمى من الصيغ > الأسماء المعرفة > إدارة الأسماء > جديد

انقر فوق موافق، ثم حدد أي صف بثلاث خلايا فارغة، وأدخل =Quarter1.

يتم عرض النتيجة التالية:

استخدم ثابت صفيف مسمى في صيغة، مثل =Quarter1، حيث تم تعريف Quarter1 على أنه ={"January","February","March"}

إذا كنت تريد أن تمتد النتائج عموديا بدلا من أفقيا، يمكنك استخدام =TRANSPOSE(Quarter1).

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

=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"mmm")

استخدم مجموعة من الدالات TEXT و DATE و YEAR و TODAY و SEQUENCE لإنشاء قائمة ديناميكية من 12 شهرا

يستخدم هذا الدالة DATE لإنشاء تاريخ استنادا إلى السنة الحالية، ويقوم SEQUENCE بإنشاء ثابت صفيف من 1 إلى 12 لشهر يناير حتى ديسمبر، ثم تحول الدالة TEXT تنسيق العرض إلى "mmm" (يناير وفبراير ومر وما إلى ذلك). إذا أردت عرض اسم الشهر الكامل، مثل يناير، فستستخدم "mmmm".

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

توضح الأمثلة التالية بعض الطرق التي يمكن بواسطتها استخدام ثوابت الصفيف في صيغ الصفيف. تستخدم بعض الأمثلة الدالة TRANSPOSE لتحويل الصفوف إلى أعمدة والعكس صحيح.

  • عدة عناصر في صفيف

    أدخل =SEQUENCE(1,12)*2 أو ={1,2,3,4; 5,6,7,8; 9,10,11,12}*2

    يمكنك أيضا القسمة مع (/)، وإضافة مع (+)، والطرح باستخدام (-).

  • تطويق العناصر في صفيف

    أدخل =SEQUENCE(1,12)^2 أو ={1,2,3,4; 5,6,7,8; 9,10,11,12}^2

  • البحث عن الجذر التربيعي للعناصر التربيعية في صفيف

    أدخل =SQRT(SEQUENCE(1,12)^2), أو =SQRT({1,2,3,4; 5,6,7,8; 9,10,11,12}^2)

  • تبديل موضع صف أحادي الأبعاد

    أدخل =TRANSPOSE(SEQUENCE(1,5)) أو =TRANSPOSE({1,2,3,4,5})

    على الرغم من إدخال ثابت صفيف أفقي، تحوّل دالة TRANSPOSE ثابت الصفيف إلى عمود.

  • تبديل موضع عمود أحادي الأبعاد

    أدخل =TRANSPOSE(SEQUENCE(5,1)) أو =TRANSPOSE({1; 2; 3; 4; 5})

    على الرغم من إدخال ثابت صفيف عمودي، تحوّل دالة TRANSPOSE ثابت الصفيف إلى صف.

  • تبديل موضع ثابت ثنائي الأبعاد

    أدخل =TRANSPOSE(SEQUENCE(3,4)) أو =TRANSPOSE({1,2,3,4; 5,6,7,8; 9,10,11,12})

    تحول دالة TRANSPOSE كل صف إلى سلسلة من الأعمدة.

يوفر هذا المقطع أمثلة على صيغ الصفيف الأساسية.

  • إنشاء صفيف من قيم موجودة

    يوضح المثال التالي كيفية استخدام صيغ الصفيف لإنشاء صفيف جديد من صفيف موجود.

    أدخل =SEQUENCE(3,6,10,10)أو ={10,20,30,40,50,60; 70,80,90,100,110,120; 130,140,150,160,170,180}

    تأكد من كتابة { (فتح قوس) قبل كتابة 10، و} (قوس إغلاق) بعد كتابة 180، لأنك تقوم بإنشاء صفيف من الأرقام.

    بعد ذلك، أدخل =D9#، أو =D9:I11 في خلية فارغة. يظهر صفيف 3 × 6 من الخلايا بنفس القيم التي تراها في D9:D11. تسمى علامة # عامل تشغيل النطاق المتسرب، وهي طريقة Excel للإشارة إلى نطاق الصفيف بأكمله بدلا من الاضطرار إلى كتابته.

    استخدام عامل تشغيل النطاق المتسرب (#) للإشارة إلى صفيف موجود

  • إنشاء ثابت صفيف من قيم موجودة

    يمكنك أخذ نتائج صيغة صفيف ممتدة وتحويلها إلى أجزاء مكوناتها. حدد الخلية D9، ثم اضغط على F2 للتبديل إلى وضع التحرير. بعد ذلك، اضغط على F9 لتحويل مراجع الخلايا إلى قيم، والتي يحولها Excel بعد ذلك إلى ثابت صفيف. عند الضغط على مفتاح الإدخال Enter، يجب أن تكون الصيغة =D9#، الآن ={10,20,30; 40,50,60; 70,80,90}.

  • حساب عدد الأحرف في نطاق خلايا

    يوضح لك المثال التالي كيفية حساب عدد الأحرف في نطاق من الخلايا. يتضمن ذلك المسافات.

    حساب العدد الإجمالي للأحرف في نطاق، والصفائف الأخرى للعمل مع السلاسل النصية

    =SUM(LEN(C9:C13))

    في هذه الحالة، ترجع الدالة LEN طول كل سلسلة نصية في كل من الخلايا في النطاق. ثم تضيف الدالة SUM هذه القيم معا وتعرض النتيجة (66). إذا أردت الحصول على متوسط عدد الأحرف، يمكنك استخدام:

    =AVERAGE(LEN(C9:C13))

  • محتويات أطول خلية في النطاق C9:C13

    =INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)

    تعمل هذه الصيغة فقط عندما يتضمن نطاق بيانات عموداً واحداً من الخلايا.

    فلنلقِ نظرة عن كثب على الصيغة، بدءاً من العناصر الداخلية وبالاتجاه نحو الخارج. ترجع الدالة LEN طول كل عنصر من العناصر في نطاق الخلايا D2:D6. تحسب الدالة MAX أكبر قيمة بين هذه العناصر، والتي تتوافق مع أطول سلسلة نصية، الموجودة في الخلية D3.

    هنا تصبح الأمور معقدة بعض الشيء. تحسب الدالة MATCH الإزاحة (الموضع النسبي) للخلية التي تحتوي على أطول سلسلة نصية. يتطلب إجراء ذلك ثلاث وسيطات: قيمة البحث وصفيف البحث ونوع المطابقة. تبحث الدالة MATCH في صفيف البحث عن قيمة البحث المُحددة. في هذه الحالة، تكون قيمة البحث أطول سلسلة نصية:

    MAX(LEN(C9:C13)

    وتتواجد السلسلة في الصفيف التالي:

    LEN(C9:C13)

    وسيطة نوع المطابقة في هذه الحالة هي 0. يمكن أن يكون نوع المطابقة قيمة 1 أو 0 أو -1.

    • 1 - إرجاع أكبر قيمة أقل من أو مساوية لقيمة البحث

    • 0 - إرجاع القيمة الأولى مساوية تماما لقيمة البحث

    • -1 - إرجاع أصغر قيمة أكبر من قيمة البحث المحددة أو مساوية لها

    • إذا قمت بحذف نوع المطابقة، فسيفترض Excel أنها 1.

    وأخيرا، تأخذ الدالة INDEX هذه الوسيطات: صفيف ورقم صف وعمود داخل هذا الصفيف. يوفر نطاق الخلية C9:C13 الصفيف، وتوفر الدالة MATCH عنوان الخلية، وتحدد الوسيطة النهائية (1) أن القيمة تأتي من العمود الأول في الصفيف.

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

  • البحث عن قيم n الصغرى في النطاق

    يوضح هذا المثال كيفية العثور على القيم الثلاث الأصغر في نطاق من الخلايا، حيث تم إنشاء صفيف من بيانات العينة في الخلايا B9:B18has باستخدام: =INT(RANDARRAY(10,1)*100). لاحظ أن RANDARRAY هي دالة متقلبة، لذلك ستحصل على مجموعة جديدة من الأرقام العشوائية في كل مرة يحسب فيها Excel.

    صيغة صفيف Excel للعثور على أصغر قيمة Nth: =SMALL(B9#,SEQUENCE(D9))

    أدخل =SMALL(B9#,SEQUENCE(D9), =SMALL(B9:B18,{1; 2; 3})

    تستخدم هذه الصيغة ثابت صفيف لتقييم الدالة SMALL ثلاث مرات وإرجاع أصغر 3 أعضاء في الصفيف المضمن في الخلايا B9:B18، حيث تكون 3 قيمة متغيرة في الخلية D9. للعثور على المزيد من القيم، يمكنك زيادة القيمة في الدالة SEQUENCE، أو إضافة المزيد من الوسيطات إلى الثابت. يمكنك أيضاً استخدام دالات إضافية مع هذه الصيغة، مثل SUM أو AVERAGE. على سبيل المثال:

    =SUM(SMALL(B9#,SEQUENCE(D9))

    =AVERAGE(SMALL(B9#,SEQUENCE(D9))

  • البحث عن قيم n الكبرى في النطاق

    للعثور على أكبر القيم في نطاق، يمكنك استبدال الدالة SMALL بالدالة LARGE. بالإضافة إلى ذلك، يستخدم المثال التالي الدالتين ROW وINDIRECT.

    أدخل =LARGE(B9#,ROW(INDIRECT("1:3"))) أو =LARGE(B9:B18,ROW(INDIRECT("1:3")))

    في هذه المرحلة، قد تفيدك معرفة القليل حول الدالتين ROW وINDIRECT. يمكنك استخدام الدالة ROW لإنشاء صفيف يتألف من أعداد صحيحة متتالية. على سبيل المثال، حدد فارغا وأدخل:

    =ROW(1:10)

    تنشئ الصيغة عموداً يتألف من 10 أعداد صحيحة متتالية. لرؤية المشكلة المحتملة، أدرج صفاً فوق النطاق الذي يحتوي على صيغة الصفيف (أي فوق الصف 1). يقوم Excel بضبط مراجع الصفوف، وتنشئ الصيغة الآن أعدادا صحيحة من 2 إلى 11. ولحل هذه المشكلة، أضِف الدالة INDIRECT إلى الصيغة:

    =ROW(INDIRECT("1:10"))

    تستخدم الدالة INDIRECT سلاسل نصية كوسيطات لها (وهذا هو السبب في أن النطاق 1:10 محاط بعلامات اقتباس). لا يقوم Excel بتعديل القيم النصية عند إدراج صفوف أو نقل صيغة الصفيف بدلاً من ذلك. كنتيجة لذلك، تقوم الدالة ROW دائماً بإنشاء صفيف من الأعداد الصحيحة التي تريدها. يمكنك بسهولة استخدام SEQUENCE:

    =SEQUENCE(10)

    دعونا نفحص الصيغة التي استخدمتها سابقا — =LARGE(B9#,ROW(INDIRECT("1:3"))) — بدءا من الأقواس الداخلية والعمل إلى الخارج: ترجع الدالة INDIRECT مجموعة من القيم النصية، وفي هذه الحالة القيم من 1 إلى 3. تقوم الدالة ROW بدورها بإنشاء صفيف عمود مكون من ثلاث خلايا. تستخدم الدالة LARGE القيم الموجودة في نطاق الخلية B9:B18، ويتم تقييمها ثلاث مرات، مرة واحدة لكل مرجع يتم إرجاعه بواسطة الدالة ROW. إذا كنت تريد العثور على المزيد من القيم، يمكنك إضافة نطاق خلايا أكبر إلى الدالة INDIRECT. وأخيرا، كما هو الحال مع الأمثلة SMALL، يمكنك استخدام هذه الصيغة مع دالات أخرى، مثل SUM و AVERAGE.

  • جمع نطاق يحتوي على قيم خطأ

    لا تعمل الدالة SUM في Excel عند محاولة جمع نطاق يحتوي على قيمة خطأ، مثل #VALUE! أو #N/A. يوضح لك هذا المثال كيفية جمع القيم في نطاق يسمى Data الذي يحتوي على أخطاء:

    استخدم الصفائف للتعامل مع الأخطاء. على سبيل المثال، سيقوم =SUM(IF(ISERROR(Data),",Data) بتلخيص النطاق المسمى Data حتى إذا كان يتضمن أخطاء، مثل #VALUE! أو #NA!.

  • ‎=SUM(IF(ISERROR(Data),"",Data))‎

    تنشئ الصيغة صفيفاً جديداً يحتوي على القيم الأصلية من دون أي قيم أخطاء. بدءاً من الدالات الداخلية وباتجاه الخارج، تبحث الدالة ISERROR في نطاق الخلايا (بيانات) عن أخطاء. وتُرجع الدالة IF قيمة معينة إذا تم تقييم الشرط الذي حددته إلى TRUE وتُرجع قيمة أخرى إذ تم تقييم الشرط إلى FALSE. في هذه الحالة، تُرجع الدالة سلاسل فارغة ("") لكافة قيم الخطأ لأنه تم تقييمها إلى TRUE، وكذلك تُرجع القيم الباقية من النطاق (بيانات) لأنه تم تقييمها إلى FALSE، مما يعني عدم احتوائها على قيم خطأ. تحسب الدالة SUM حينئذٍ الإجمالي بالنسبة إلى الصفيف الذي تمت تصفيته.

  • حساب عدد قيم الأخطاء في النطاق

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

    ‎=SUM(IF(ISERROR(Data),1,0))‎

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

    ‎=SUM(IF(ISERROR(Data),1))‎

    إذا لم تحدد الوسيطة، فتُرجع الدالة IF القيمة FALSE إذا كانت الخلية لا تحتوي على قيمة خطأ. ويمكنك أيضاً تبسيط الصيغة أكثر:

    =SUM(IF(ISERROR(Data)*1))

    تعمل هذه النسخة لأن TRUE*1=1 وFALSE*1=0.

قد تحتاج إلى جمع القيم بالاستناد إلى شروط.

يمكنك استخدام الصفائف لحسابها استنادا إلى شروط معينة. =SUM(IF(Sales>0,Sales)) سيتم جمع جميع القيم الأكبر من 0 في نطاق يسمى Sales.

على سبيل المثال، تجمع صيغة الصفيف هذه الأعداد الصحيحة الموجبة فقط في نطاق يسمى Sales، والذي يمثل الخلايا E9:E24 في المثال أعلاه:

‎=SUM(IF(Sales>0,Sales))‎

تنشئ الدالة IF صفيفا من القيم الموجبة والزائفة. وتتجاهل الدالة SUM بشكل أساسي قيم الخطأ 0+0=0. يمكن أن يحتوي نطاق الخلايا الذي تستخدمه في هذه الصيغة على أي عدد من الصفوف والأعمدة.

يمكنك أيضاً جمع القيم التي تحقق أكثر من شرط واحد. على سبيل المثال، تحسب صيغة الصفيف هذه القيم الأكبر من 0 AND أقل من 2500:

=SUM((Sales>0)*(Sales<2500)*(Sales))

تذكر أن هذه الصيغة ترجع خطأ إذا كان النطاق يحتوي على خلية غير رقمية واحدة أو أكثر.

يمكنك أيضاً إنشاء صيغ صفيف تستخدم نوع الشرط OR. على سبيل المثال، يمكنك جمع القيم الأكبر من 0 OR أقل من 2500:

=SUM(IF((Sales>0)+(Sales<2500),Sales))

لا يمكنك استخدام الدالتين AND وOR في صيغ الصفيف مباشرة لأن هذه الدالات ترجع نتيجة فردية، إما TRUE أو FALSE، وتتطلب دالات الصفيف وجود صفائف للنتائج. يمكنك حل هذه المشكلة من خلال استخدام المنطق المبين في الصيغة السابقة. بمعنى آخر، يمكنك إجراء عمليات رياضية، مثل الجمع أو الضرب على القيم التي تفي بشرط OR أو AND.

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

‎=AVERAGE(IF(Sales<>0,Sales))‎

تعمل الدالة IF على إنشاء صفيف من القيم لا يساوي 0 ثم تقوم بتمرير هذه القيم إلى الدالة AVERAGE.

تعمل صيغة الصفيف هذه على مقارنة القيم الموجودة في نطاقين من الخلايا تمت تسميتهما MyData وYourData وإرجاع عدد الاختلافات بين النطاقين. إذا كانت محتويات النطاقين متطابقة، فترجع الصيغة 0. لاستخدام هذه الصيغة، يجب أن تكون نطاقات الخلايا بنفس الحجم والبعد نفسه. على سبيل المثال، إذا كانت MyData عبارة عن نطاق من 3 صفوف بمقدار 5 أعمدة، فيجب أن تكون YourData أيضا 3 صفوف في 5 أعمدة:

=SUM(IF(MyData=YourData,0,1))

تعمل الصيغة على إنشاء صفيف جديد بالحجم نفسه لحجم النطاقات التي تقوم بمقارنتها. وتعمل الدالة IF على تعبئة الصفيف بالقيمة 0 والقيمة 1 (0 للخلايا غير المتطابقة و1 للخلايا المتطابقة). بعد ذلك تقوم الدالة SUM بإرجاع مجموع القيم في الصفيف.

يمكنك تبسيط الصيغة على النحو التالي:

=SUM(1*(MyData<>YourData))

تماماً مثل الصيغة التي تحسب عدد قيم الخطأ في النطاق، تعمل هذه الصيغة لأن TRUE*1=1 وFALSE*1=0.

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

‎=MIN(IF(Data=MAX(Data),ROW(Data),""))‎

تنشئ الدالة IF صفيفاً جديداً يتطابق مع النطاق المسمى "بيانات". إذا كانت إحدى الخلايا المتطابقة تحتوي على القيمة الأعلى في النطاق، فسيحتوي الصفيف على رقم الصف. في الحالات الأخرى، سيحتوي الصفيف على سلسلة فارغة (""). تستخدم الدالة MIN الصفيف الجديد باعتباره الوسيطة الثانية له وترجع القيمة الأصغر التي تتطابق مع رقم صف القيمة الأعلى في النطاق "بيانات". إذا كان النطاق المسمى "بيانات" يحتوي على قيم أعلى متطابقة، فتُرجع الصيغة صف القيمة الأولى.

إذا كنت تريد إرجاع عنوان الخلية الفعلي لإحدى القيم العليا، فاستخدم الصيغة التالية:

‎=ADDRESS(MIN(IF(Data=MAX(Data),ROW(Data),"")),COLUMN(Data))‎

ستجد أمثلة مماثلة في نموذج المصنف على ورقة عمل الاختلافات بين مجموعات البيانات .

الاعتراف

تستند أجزاء من هذه المقالة إلى سلسلة من أعمدة Excel Power User التي كتبها كولن ويلكوكس، وتم تكييفها من الفصلين 14 و15 من صيغ Excel 2002، وهو كتاب كتبه جون ووكرباخ، وهو Excel MVP سابق.

هل تحتاج إلى مزيد من المساعدة؟

يمكنك دائماً الاستفسار من أحد الخبراء في مجتمع Excel التقني أو الحصول على الدعم في المجتمعات.

راجع أيضًا

صفائف ديناميكية وسلوك الصفيف الممدّ

صيغ الصفيف الديناميكية مقابل صيغ صفيف CSE القديمة

الدالة FILTER

دالة RANDARRAY

دالة SEQUENCE

دالة SORT

دالة SORTBY

دالة UNIQUE

أخطاء #المد! في Excel

عامل تشغيل التقاطع الضمني: @

نظرة عامة حول الصيغ

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

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