TOP

Hücrelerdeki metni duruma göre bağlama (CONCATIF)

Tanım

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:

VBA işlevi için kod CONCATIF

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.

Konuyla ilgili makaleler: