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

Припустимо ми маємо таку таблицю кредитів з відповідним забезпеченням:

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

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

Давайте назвемо її CONCATIF.

Відкрийте меню Service - Macros - Visual Basic Editor, вставте новий модуль (меню 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 definded ви можете знайти нашу функцію CONCATIF і використовувати її. Синтаксис цієї функції такий:

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

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

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

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

З'єднання тексту з різних комірок (CONCATENATE)

Розбиття тексту на декілька стовпців

Автоматичний поділ тексту по заданому розділювачу (SPLITUP)

Виокремлення частини символів з тексту