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 işlev sağlayabilir CONCATENATE , ancak gerekli hücreleri manuel olarak seçmeniz gerekecektir. İşi basitleştirmek için süreci otomatikleştirmemiz gerekiyor metnin farklı hücrelerden duruma göre bağlantısı . Yani eğer hızlı bir şekilde ihtiyacınız varsa farklı hücrelerden metni "kanca" bir koşul kullanarak IF , o zaman kendi fonksiyonunuzu yazmalısınız.


Teminatlı krediler tablosu:

VBA işlevi için kod CONCATIF

O halde kendi fonksiyonumuzu yaratalım ve ona isim verelim. CONCATIF . Bunu yapmak için menüyü açın Service - Macros - Visual Basic Düzenleyici , modül ekle VBA (Menü Insert - Module ) ve bu işlevin metnini buraya kopyalayın:

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'ı kapatın ve Excel'ye dönün.

Şimdi, Function wizard kategorisinde User defined CONCATIF fonksiyonumuzu bulup kullanabilirsiniz. Bu fonksiyonun sözdizimi aşağıdaki gibidir:

=CONCATIF ( aranan değerleri içeren sütun ; arama değeri ; birleştirilecek verileri içeren sütun )

Aşağıdaki sonuca sahip olacağız:

Son olarak aralıkları düzeltmeniz gerekiyor A2:A10 Ve C2:C10 dolar işareti ($) böylece işlev kopyalanırken aralıklar aşağı doğru hareket etmez.

Konuyla ilgili makaleler: