假设我们有一张带有相应担保的贷款表。例如,我们需要在一个单元格中显示每笔贷款的抵押品列表。
Excel只能为我们提供简单的功能 CONCATENATE ,但您需要手动选择所需的单元格。为了简化工作,我们需要自动化流程 根据不同单元格的条件连接文本 。所以如果你需要快速 “挂钩”来自不同单元格的文本 使用条件 IF ,那么你应该编写自己的函数。
担保贷款表:
因此,让我们创建自己的函数并命名它 CONCATIF 。为此,请打开菜单 Service - Macros - Visual Basic 编辑器 , 插入模块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 类别中 用户 定义 您可以找到我们的 CONCATIF 函数并使用它。该函数的语法如下:
=CONCATIF ( 包含搜索值的列 ; 搜索值 ; 包含要连接的数据的列 )
我们将得到以下结果:
最后,您需要修复范围 A2:A10 和 C2:C10 美元符号 ($) ,以便复制函数时范围不会向下移动。