Допустим, мы имеем таблицу кредитов с соответствующим обеспечением. Нам нужно, например, отобразить список обеспечения для каждого кредита в одной ячейке.
Excel может нас обеспечить только простой функцией CONCATENATE , но вам нужно будет выбирать необходимые ячейки вручную. Чтобы упростить работу, нам необходимо автоматизировать процесс соединение текста по условию из разных ячеек . Итак, если вам нужно быстро "сцепить" текст с разных ячеек используя условие IF , тогда вам следует написать собственную функцию.
Таблица кредитов с обеспечением:
Итак, создадим собственную функцию и назовем ее 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 знаком доллара ($) , для того, чтобы диапазоны не съезжали вниз при копировании функции.