TOP

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

描述

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

Excel只能为我们提供一个简单的CONCATENATE函数,但您需要手动选择必要的单元格。为了简化工作,我们需要自动化根据条件组合来自不同单元格的文本的过程。因此,如果您需要使用 IF 条件快速“连接”不同单元格中的文本,那么您应该编写自己的函数。


担保贷款表:

VBA CONCATIF 函数的代码

因此,让我们创建自己的函数并将其命名为 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:A10C2:C10,以便在复制时范围不会移动到底部功能。

有关该主题的文章:

  • 连接不同单元格中的文本 (CONCATENATE)
  • 将文本分成几列
  • 按指定分隔符自动分割文本(SPLITUP)
  • 从文本中选择部分字符 (LEFT, RIGHT, MID)