لنفترض أن لدينا جدول قروض مع الضمانات المقابلة. نحتاج، على سبيل المثال، إلى عرض قائمة الضمانات لكل قرض في خلية واحدة.
يمكن لـ Excel أن يزودنا فقط بوظيفة CONCATENATE البسيطة، ولكنك ستحتاج إلى تحديد الخلايا الضرورية يدويًا. ولتبسيط العمل، نحتاج إلى أتمتة عملية دمج النص من خلايا مختلفة وفقًا للحالة. لذلك، إذا كنت بحاجة إلى "تسلسل" النص بسرعة من خلايا مختلفة باستخدام شرط IF، فيجب عليك كتابة وظيفتك الخاصة.
جدول القروض المضمونة:
لذلك، دعونا ننشئ دالتنا الخاصة ونسميها CONCATIF. للقيام بذلك، افتح القائمة Service - Macros - Visual Basic Editor, أدخل وحدة VBA (القائمة Insert - 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 ified يمكنك العثور على وظيفة CONCATIF واستخدامها. بناء جملة هذه الوظيفة كما يلي:
=CONCATIF (القيم التي تم البحث عنها column; القيمة التي تم البحث عنها; عمود البيانات للجمع بين)
ستكون لدينا النتيجة التالية:
وأخيرًا، تحتاج إلى قفل النطاقات A2:A10 و C2:C10 بعلامة الدولار ($) بحيث لا تنتقل النطاقات إلى الأسفل عند نسخ وظيفة.