ВГОРУ

З'єднання тексту в комірках по умові (CONCATIF)

Опис

Припустимо ми маємо таблицю кредитів із відповідним забезпеченням. Нам потрібно, для прикладу, відобразити список забезпечення для кожного кредиту в одній комірці.

Excel може нас забезпечити тільки простою функцією CONCATENATE, але вам потрібно буде вибирати необхідні комірки вручну. Щоби спростити роботу, нам необхідно автоматизувати процес з'єднання тексту по умові з різних комірок. Отож, якщо вам потрібно швидко "зчепити" текст з різних комірок використовуючи умову IF, тоді вам варто написати власну функцію.


Таблиця кредитів із забезпеченням:

VBA код для функції CONCATIF

Отже, створимо власну функцію та назвемо її 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 defined ви можете знайти нашу функцію CONCATIF і використовувати її. Синтаксис цієї функції такий:

=CONCATIF (колонка із шуканими значеннями; шукане значення; колонка з даними для об'єднання)

Ми матимемо такий результат:

І на останок, вам необхідно зафіксувати діапазони A2:A10 та C2:C10 знаком долара ($), для того, щоб діапазони не з'їжджали донизу під час копіювання функції.

Статті по темі: