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