TOP

Łączenie tekstu w komórkach według warunku (CONCATIF)

Opis

Załóżmy, że mamy tabelę pożyczek z odpowiednimi zabezpieczeniami. Musimy np. wyświetlić w jednej komórce listę zabezpieczeń dla każdego kredytu.

Excel może zapewnić nam jedynie prostą funkcję CONCATENATE, ale konieczne będzie ręczne wybranie niezbędnych komórek. Aby uprościć pracę, musimy zautomatyzować proces łączenia tekstu z różnych komórek według warunku. Jeśli więc chcesz szybko „połączyć” tekst z różnych komórek przy użyciu warunku IF, powinieneś napisać własną funkcję.


Tabela kredytów zabezpieczonych:

VBA kod funkcji CONCATIF

Stwórzmy więc własną funkcję i nazwijmy ją CONCATIF. W tym celu otwórz menu Service - Macros - Visual Basic Editor, wstaw moduł VBA (menu Insert - Module) i skopiuj tekst ta funkcja tam:

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

Zamknij Visual Basic Editor i wróć do Excel.

Teraz w Function wizard w kategorii User defini możesz znaleźć naszą funkcję CONCATIF i z niej skorzystać. Składnia tej funkcji jest następująca:

=CONCATIF (kolumna wartości wyszukiwania; wartość wyszukiwania; kolumna danych do połączenia)

Będziemy mieli następujący wynik:

Na koniec musisz zablokować zakresy A2:A10 i C2:C10 znakiem dolara ($), aby zakresy nie przesunęły się na dół podczas kopiowania funkcji.

Artykuły na ten temat: