ВВЕРХ

Соединение текста в ячейках по условию (CONCATIF)

Описание

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

Excel может нас обеспечить только простой функцией CONCATENATE, но вам нужно будет выбирать необходимые ячейки вручную. Чтобы упростить работу, нам необходимо автоматизировать процесс соединения текста по условию из разных ячеек. Итак, если вам нужно быстро "сцепить" текст из разных ячеек используя условие IF, тогда вам следует написать собственную функцию.


Таблица кредитов с обеспечением:

VBA код для функции CONCATIF

Итак, создадим собственную функцию и назовем ее CONCATIF. Для этого, откройте меню Service - Macros - Visual Basic Editor, вставьте модуль VBA (меню йте туда текст этой функции:

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

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

  • Соединение текста с разных ячеек (CONCATENATE)
  • Разбитие текста на несколько столбцов
  • Автоматический раздел текста по заданному разделителю (SPLITUP)
  • Выделение части символов из текста (LEFT, RIGHT, MID)