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:
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.