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 wymaganych komórek. Aby uprościć pracę, musimy zautomatyzować proces połączenie tekstu według warunku z różnych komórek . Więc jeśli potrzebujesz tego szybko „zaczep” tekst z różnych komórek używając 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 . Aby to zrobić, otwórz menu Service - Macros - Visual Basic Editor , wstaw moduł VBA (menu Insert - Module ) i skopiuj tam tekst tej funkcji:

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 defined możesz znaleźć naszą funkcję CONCATIF i użyć jej. Składnia tej funkcji jest następująca:

=CONCATIF ( kolumna z wyszukiwanymi wartościami ; wartość wyszukiwania ; kolumna z danymi do połączenia )

Będziemy mieli następujący wynik:

I na koniec musisz naprawić zakresy A2:A10 I C2:C10 znak dolara ($) , aby zakresy nie przesuwały się w dół podczas kopiowania funkcji.

Artykuły na ten temat: