TOP

按条件连接单元格中的文本 (CONCATIF)

描述

假设我们有一张带有相应担保的贷款表。例如,我们需要在一个单元格中显示每笔贷款的抵押品列表。

Excel只能为我们提供简单的功能 CONCATENATE ,但您需要手动选择所需的单元格。为了简化工作,我们需要自动化流程 根据不同单元格的条件连接文本 。所以如果你需要快速 “挂钩”来自不同单元格的文本 使用条件 IF ,那么你应该编写自己的函数。


担保贷款表:

VBA 函数 CONCATIF 的代码

因此,让我们创建自己的函数并命名它 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 美元符号 ($) ,以便复制函数时范围不会向下移动。

有关该主题的文章: