TOP

Conectando texto em células por condição (CONCATIF)

Descrição

Digamos que temos uma tabela de empréstimos com garantia correspondente. Precisamos, por exemplo, exibir uma lista de garantias para cada empréstimo em uma célula.

Excel só pode nos fornecer uma função CONCATENATE simples, mas você precisará selecionar as células necessárias manualmente. Para simplificar o trabalho, precisamos automatizar o processo de combinação de texto de diferentes células de acordo com uma condição. Portanto, se você precisar "concatenar" rapidamente texto de células diferentes usando a condição IF, você deve escrever sua própria função.


Tabela de empréstimos garantidos:

VBA código para função CONCATIF

Então, vamos criar nossa própria função e chamá-la de CONCATIF. Para fazer isso, abra o menu Service - Macros - Visual Basic Editor, insira o módulo VBA (menu Insert - Module) e copie o texto desta função lá:

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

Feche Visual Basic Editor e retorne para Excel.

Agora, em Function wizard na categoria User defined você pode encontrar nossa função CONCATIF e usá-la. A sintaxe desta função é a seguinte:

=CONCATIF (coluna de valores de pesquisa; valor de pesquisa; coluna de dados a combinar)

Teremos o seguinte resultado:

Finalmente, você precisa bloquear os intervalos A2:A10 e C2:C10 com um cifrão ($) para que os intervalos não se movam para baixo quando você copiar a função.

Artigos sobre o tema: