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 simples CONCATENATE , mas você precisará selecionar as células necessárias manualmente. Para simplificar o trabalho, precisamos automatizar o processo conexão de texto por condição de células diferentes . Então, se você precisar rápido "gancho" texto de células diferentes usando uma condição IF , então 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 nomeá-la CONCATIF . Para fazer isso, abra o menu Service - Macros - Editor Visual Basic , inserir módulo VBA (cardápio 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 definido você pode encontrar nossa função CONCATIF e usá-la. A sintaxe desta função é a seguinte:

=CONCATIF ( coluna com valores pesquisados ; valor de pesquisa ; coluna com dados para juntar )

Teremos o seguinte resultado:

E finalmente, você precisa corrigir os intervalos A2:A10 e C2:C10 cifrão ($) , para que os intervalos não se movam para baixo ao copiar a função.

Artigos sobre o tema: