假设我们有一张带有相应担保的贷款表。例如,我们需要在一个单元格中显示每笔贷款的抵押品列表。
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。
现在,在类别 User define 的 Function wizard 中,您可以找到我们的 CONCATIF 函数并使用它。该函数的语法如下:
=CONCATIF(搜索值column;搜索值;数据列至combine)
我们将得到以下结果:
最后,您需要使用美元符号 ($) 锁定范围 A2:A10 和 C2:C10,以便在复制时范围不会移动到底部功能。