• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Anahtar kelimeyi içeriyorsa yeni listeye ekleme

degirman

Altın Üye
Katılım
21 Temmuz 2006
Mesajlar
55
Merhaba,
LİSTE 1'de yer alan veriler bazı anahtar kelimeleri içeriyorsa diğer listedeki ilgili anahtar kelime sütununa eklensin istiyorum. EĞER ve MBUL ile yapmaya çalıştım ancak yeni listede aralarındaki hücreler boş kalmayacak şekilde alt alta sıralatamadım. Dosya ektedir. Şimdiden teşekkürler.
 

Ekli dosyalar

Kod:
Sub test()
    For i = 10 To 14
        sat = 4
        bak = UCase(Replace(Replace(Cells(3, i).Value, "ı", "I"), "i", "İ"))
        For ii = 4 To Cells(Rows.Count, 2).End(3).Row
            If InStr(UCase(Replace(Replace(Cells(ii, 2).Value, "ı", "I"), "i", "İ")), bak) > 0 Then
                Cells(sat, i).Value = Cells(ii, 2).Value
                sat = sat + 1
            End If
        Next ii
    Next i
End Sub
 
Harikasınız. Ancak maalesef benim formül ile çözüme ihtiyacım var. İlginiz için çok teşekkür ederim.
 
J4 hücresine Dizi formülü olarak girin. Dİğer tüm satır ve sütunlara kopyalayabilirsiniz.
Ancakat "kanat" ifadesinde "at" geçtiği için onu da buluyor. İşinizi görür mü bilemedim.
at ile kanat birbirinden ayırmak belki mümkün ama At/kırma gibi ifadenizden dolayı bunu çözemedim.

=EĞERHATA(İNDİS($B$4:$B$28;KÜÇÜK(EĞER(ESAYIYSA(MBUL(J$3;$B$4:$B$28))*DEĞİL(EĞERSAY(J3:J$3;$B$4:$B$28));SATIR($B$4:$B$28)-MİN(SATIR($B$4:$B$28))+1;"");1));"")
 
Alternatif;

DİZİ formüldür.

C++:
=IFERROR(INDEX($B$4:$B$28;SMALL(IF(ISNUMBER(SEARCH(J$3;$B$4:$B$28));ROW($B$4:$B$28)-3);ROW(A1)));"")

IFERROR = EĞERHATA
INDEX = İNDİS
SMALL = KÜÇÜK
IF = EĞER
ISNUMBER = ESAYIYSA
SEARCH = MBUL
ROW = SATIR
 
J4 hücresine Dizi formülü olarak girin. Dİğer tüm satır ve sütunlara kopyalayabilirsiniz.
Ancakat "kanat" ifadesinde "at" geçtiği için onu da buluyor. İşinizi görür mü bilemedim.
at ile kanat birbirinden ayırmak belki mümkün ama At/kırma gibi ifadenizden dolayı bunu çözemedim.

=EĞERHATA(İNDİS($B$4:$B$28;KÜÇÜK(EĞER(ESAYIYSA(MBUL(J$3;$B$4:$B$28))*DEĞİL(EĞERSAY(J3:J$3;$B$4:$B$28));SATIR($B$4:$B$28)-MİN(SATIR($B$4:$B$28))+1;"");1));"")
Elinize sağlık. "kanat-at" durumu benim için sorun değil, bilakis olması gerekendi. Ancak tek sorun formülün anahtar kelimenin kendisini getirmiyor olması. Örneğin içinde "kedi" geçen tüm veriler geliyor ama içinde sadece "kedi" olan hücreden veri gelmiyor. Yine de ilginiz, emeğiniz için teşekkür ederim.
 
Alternatif;

DİZİ formüldür.

C++:
=IFERROR(INDEX($B$4:$B$28;SMALL(IF(ISNUMBER(SEARCH(J$3;$B$4:$B$28));ROW($B$4:$B$28)-3);ROW(A1)));"")

IFERROR = EĞERHATA
INDEX = İNDİS
SMALL = KÜÇÜK
IF = EĞER
ISNUMBER = ESAYIYSA
SEARCH = MBUL
ROW = SATIR
Tam olarak çözüldü. Çok teşekkür ederim. Başkalarının da yararlanmasını kolaylaştırmak için sizin tam çözümünüzü, benim yardımcı sütunlardan yararlanan ilkel çözümümü :) ve NextLevel'in çözümünü (küçük eksiği de olsa öğretici olduğundan) bir arada ekteki dosyada paylaşıyorum. Sağlıklı günler dilerim.
 

Ekli dosyalar

Geri
Üst