اكسل

احصل على موقع ذي قيمة في مجموعة ثنائية الأبعاد

Get Location Value 2d Array

صيغة Excel: احصل على موقع القيمة في صفيف ثنائي الأبعادصيغة عامة
= SUMPRODUCT ((data= MAX (data))* ROW (data))- ROW (data)+1
ملخص

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





 
= SUMPRODUCT ((data= MAX (data))* ROW (data))- ROW (data)+1 = SUMPRODUCT ((data= MAX (data))* COLUMN (data))- COLUMN (data)+1

حيث 'البيانات' هي نطاق مسمى C5: G14.

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





تتفوق البحث عن الخلية الأولى ذات القيمة
تفسير

للحصول على رقم الصف ، تتم مقارنة البيانات بالقيمة القصوى ، والتي تنشئ مصفوفة من نتائج TRUE FALSE. يتم ضرب هذه في نتيجة ROW (البيانات) التي تنشئ وصفيفًا لأرقام الصفوف المرتبطة بالنطاق المسمى 'البيانات':

 
= SUMPRODUCT ({FALSE,FALSE,FALSE,FALSE,FALSEFALSE,FALSE,FALSE,FALSE,FALSEFALSE,FALSE,FALSE,FALSE,FALSEFALSE,FALSE,FALSE,FALSE,FALSEFALSE,FALSE,TRUE,FALSE,FALSEFALSE,FALSE,FALSE,FALSE,FALSEFALSE,FALSE,FALSE,FALSE,FALSE}*{567891011})

تؤدي عملية الضرب إلى قيام Excel بإجبار قيم TRUE FALSE في المصفوفة الأولى على 1s و 0s ، حتى نتمكن من تصور خطوة وسيطة مثل هذا:



اكسل إضافة 1 سنة حتى الآن
 
= SUMPRODUCT ({0,0,0,0,00,0,0,0,00,0,0,0,00,0,0,0,00,0,1,0,00,0,0,0,00,0,0,0,0}*{567891011})

تُرجع الدالة SUMPRODUCT بعد ذلك النتيجة 9 ، والتي تتوافق مع الصف التاسع في ورقة العمل. للحصول على فهرس متعلق بالنطاق المحدد 'البيانات' ، نستخدم:

 
- ROW (data)+1

النتيجة النهائية هي المصفوفة {543210-1} ، والتي يتم من خلالها عرض القيمة الأولى (5) فقط.

تعمل صيغة تحديد موضع العمود بنفس الطريقة.

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

المؤلف ديف برونز


^