TOP

Conectarea textului în celule după condiție (CONCATIF)

Descriere

Să presupunem că avem un tabel de împrumuturi cu garanția corespunzătoare. Trebuie, de exemplu, să afișăm o listă de garanții pentru fiecare împrumut într-o singură celulă.

Excel ne poate oferi doar o funcție simplă CONCATENATE, dar va trebui să selectați manual celulele necesare. Pentru a simplifica munca, trebuie să automatizăm procesul de combinare a textului din diferite celule în funcție de o condiție. Deci, dacă trebuie să „concatenați” rapid text din celule diferite folosind condiția IF, atunci ar trebui să scrieți propria funcție.


Tabelul creditelor garantate:

cod VBA pentru funcția CONCATIF

Deci, să creăm propria noastră funcție și să o numim CONCATIF. Pentru a face acest lucru, deschideți meniul Service - Macros - Visual Basic Editor, introduceți VBA modulul acolo și copiați textul Mod_bl (în meniu și copiați funcția Mod_t) :

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

Închideți Visual Basic Editor și reveniți la Excel.

Acum, în Function wizard din categoria User defined puteți găsi funcția noastră CONCATIF și o puteți utiliza. Sintaxa acestei funcții este următoarea:

=CONCATIF (coloană cu valori de căutare; valoare de căutare; coloană de date de combinat)

Vom avea urmatorul rezultat:

În cele din urmă, trebuie să blocați intervalele A2:A10 și C2:C10 cu un semn dolar ($), astfel încât intervalele să nu se miște în partea de jos atunci când copiați funcția.

Articole pe tema: