TOP

Соединение текста в ячейках по условию (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 знаком доллара ($) , для того, чтобы диапазоны не съезжали вниз при копировании функции.

Статьи по теме: