TOP

توصيل النص في الخلايا حسب الشرط (CONCATIF)

وصف

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

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


جدول القروض المضمونة:

VBA كود الدالة CONCATIF

لذلك، دعونا ننشئ دالتنا الخاصة ونسميها 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 علامة الدولار ($) ، بحيث لا تتحرك النطاقات للأسفل عند نسخ الوظيفة.

مقالات حول الموضوع: