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

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

  • Разбиение текста на несколько столбцов
  • Автоматическоє деление текста по разделителю (SPLITUP)
  • Соединение текста из различных ячеек (CONCATENATE)
  • Отбор части символов из текста