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