لنفترض أن لدينا جدول قروض مع الضمانات المقابلة. نحتاج، على سبيل المثال، إلى عرض قائمة الضمانات لكل قرض في خلية واحدة.
Excel يمكن أن يزودنا بوظيفة بسيطة فقط CONCATENATE ، لكنك ستحتاج إلى تحديد الخلايا المطلوبة يدويًا. لتبسيط العمل، نحن بحاجة إلى أتمتة العملية ربط النص حسب الحالة من خلايا مختلفة . لذلك إذا كنت في حاجة إليها بسرعة "ربط" النص من خلايا مختلفة باستخدام شرط IF ، فيجب عليك كتابة وظيفتك الخاصة.
جدول القروض المضمونة:
لذلك، دعونا ننشئ دالتنا الخاصة ونسميها CONCATIF . للقيام بذلك، افتح القائمة Service - Macros - محرر Visual Basic , أدخل الوحدة النمطية VBA (قائمة طعام Inser - Module ) وانسخ نص هذه الوظيفة هناك:
Function CONCATIF(Table As Range, SearchValue As Variant, Table2 As Range) 'moonexcel.com.ua Dim i As Integer For i = 1 To Table.Rows.Count If Table.Cells(i, 1) = SearchValue Then If Not IsEmpty(Table2.Cells(i, 1).Value) Then CONCATIF = CONCATIF & Table2.Cells(i, 1).Value & "; " End If End If Next i CONCATIF = Left(CONCATIF, Len(CONCATIF) - 2) End Function
أغلق Visual Basic Editor ثم عد إلى Excel.
الآن، في Function wizard في الفئة User يمكنك العثور على وظيفة CONCATIF الخاصة بنا واستخدامها. بناء جملة هذه الوظيفة كما يلي:
=CONCATIF ( العمود الذي يحتوي على القيم التي تم البحث عنها ; قيمة البحث ; عمود يحتوي على بيانات للانضمام )
ستكون لدينا النتيجة التالية:
وأخيرا، تحتاج إلى إصلاح النطاقات ج2:أ10 و C2:C10 علامة الدولار ($) ، بحيث لا تتحرك النطاقات للأسفل عند نسخ الوظيفة.