İşte VBA yaklaşımı. Excel 2007 veya üstü varsayımı; Şerit öncesi bir Excel sürümü kullanıyorsanız ilk birkaç adım değişecektir.
Geliştirici Sekmesini Etkinleştir
Şeritteki Geliştirici Sekmesinde "Visual Basic" seçeneğine tıklayın
"VBAProject (sayfanızın adı ne olursa olsun) .xls *)" üzerine sağ tıklayın ve bağlam menüsünde Ekle -> Modül yapın
Bu koda yapıştır
Option Explicit
Function allquixotic(param As Variant, search As Range, values As Range, Optional absolute As Boolean = False) As String
Dim sep As String, retval As String
Dim i As Integer, rownum As Integer
Dim look As Range, j As Range
sep = ", "
retval = ""
For i = 1 To search.Rows.Count
Set look = search.Cells(i, 1)
If absolute Then
rownum = look.Row
Else
rownum = i
End If
If look.Value = param Then
If absolute Then
Set j = values.Worksheet.Cells(rownum, values.Column)
Else
Set j = values.Cells(i, 1)
End If
retval = IIf(retval = "", retval & j.Value, retval & sep & j.Value)
End If
Next
allquixotic = retval
End Function
Çalışma sayfası işlevini kullanın (yeniden adlandırmaktan çekinmeyin) gibi bir formül kullanarak
=allquixotic(A1,$A$1:$A$15,$B$1:$B$15,true)
Formülü tüm hücrelere koymak için doldurma tutamacını kullanın
Parametreler şunlardır:
=allquixotic(look_cell, key_range, value_range, absolute)
look_cell
: İlk parametre, tek bir hücre veya değişmez bir değer olmalıdır . Geçerli giriş gibi şeyleri içerir 3
, $6.25
, "Hello"
vb Bu Bulmaya çalıştığınız değerdir key_range
.
key_range
: Bu bir hücre aralığı olmalıdır (birden fazla hücre); absolute
true ise , bu bitişik bir aralık olmadıkça çok garip sonuçlar elde edersiniz (tüm değerler sıralı satırlardadır).
value_range
: Bu bir hücre aralığı olmalıdır (birden fazla hücre); absolute
true ise , bu bitişik bir aralık olmadıkça çok garip sonuçlar elde edersiniz (tüm değerler sıralı satırlardadır).
absolute
: Doğruysa, o zaman bir değerin hangi satırdan çıkarılacağını belirlemek için her "bulunan" satırın mutlak satır numarasını (tüm e-tablodaki satır sayısına göre) kullanırız . Eğer yanlışsa, göreceli sayıları kullanacağız; örneğin, üçüncü satırda bir eşleşme bulursak, değeri üçüncü satırdan alırız . Önerilen değer FALSE, veya bunu varsayılan değerine atabilirsiniz.key_range
value_range
key_range
value_range
Not : Bu işlev, anahtar ve değer aralıklarının sütunlarda olduğu durumu desteklemez , ancak buna uyarlanması oldukça kolay olmalıdır.
Ayrıca, key_range veya value_range'de birden fazla sütun belirtirseniz, yalnızca en soldaki sütun kullanılır.