Diyelim ki karşılık gelen teminata sahip bir kredi tablomuz var. Örneğin her kredi için teminat listesini tek bir hücrede görüntülememiz gerekiyor.
Excel bize yalnızca basit bir CONCATENATE fonksiyonunu sağlayabilir, ancak gerekli hücreleri manuel olarak seçmeniz gerekecektir. İşi basitleştirmek için farklı hücrelerdeki metinleri bir duruma göre birleştirme sürecini otomatikleştirmemiz gerekiyor. Dolayısıyla, IF koşulunu kullanarak farklı hücrelerdeki metni hızlı bir şekilde "birleştirmeniz" gerekiyorsa, kendi işlevinizi yazmalısınız.
Teminatlı krediler tablosu:
O halde kendi fonksiyonumuzu oluşturalım ve ona CONCATIF adını verelim. Bunu yapmak için Service - Macros - Visual Basic Editor, VBA modülünü ekleyin (menü Insert - Module) ve bu fonksiyonun metnini kopyalayın orada:
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
Visual Basic Editor'u kapatın ve Excel'ye dönün.
Şimdi, User Definition kategorisindeki Function wizard içinde CONCATIF fonksiyonumuzu bulabilir ve kullanabilirsiniz. Bu fonksiyonun sözdizimi aşağıdaki gibidir:
=CONCATIF (arama değerleri sütunu; arama değeri; birleştirilecek veri sütunu)
Aşağıdaki sonuca sahip olacağız:
Son olarak, fonksiyonu kopyaladığınızda aralıkların aşağıya doğru hareket etmemesi için A2:A10 ve C2:C10 aralıklarını dolar işaretiyle ($) kilitlemeniz gerekir.