• DİKKAT

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

Bulduğun değerleri boşluk bırakmadan alt alta yaz

Katılım
2 Ekim 2014
Mesajlar
48
Excel Vers. ve Dili
Excel 2013-Türkçe
İyi Akşamlar,

Şöyle bir sıkıntım var;
D1 sütununa yazdığım dersin ismini A sütununda aratıp bulacak ve B sütununda yer alan karşı değerlerini boşluk olmadan D sütununa yazdıracak.



https://yadi.sk/i/1lqAWG6FenbM9
 
. . .

D2 hücresi için DİZİ formül.
Aşağı ve sağa doğru çoğaltın.

Kod:
=EĞERHATA(İNDİS($A$1:$B$12;KÜÇÜK(EĞER(DEĞİL(EBOŞSA($B$1:$B$12));EĞER($A$1:$A$12=D$1;SATIR($A$1:$A$12)));SATIR($A1));SÜTUN($B$1));"")

. . .
 
Buyurun.:cool:
Kod:
Sub ders59()
Dim i As Long, sonsat As Long, sat As Long, ders As String
Range("D2:D" & Rows.Count).ClearContents
sonsat = Cells(Rows.Count, "A").End(xlUp).Row
sat = 2
ders = UCase(Replace(Replace(Range("D1").Value, "i", "İ"), "ı", "I"))
For i = 1 To sonsat
    If UCase(Replace(Replace(Cells(i, "A").Value, "i", "İ"), "ı", "I")) = ders Then
        If Cells(i, "B").Value <> "" Then
            Cells(sat, "D").Value = Cells(i, "B").Value
            sat = sat + 1
        End If
    End If
Next i
MsgBox "İşlem tamamlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub
 
D2 hücresine aşağıdaki dizi formülü uygulayınız. Daha sonra aşağı ve sağa çekerek çoğaltınız.
Dizi formülü: Hücre içerisindeyken Ctrl+Shift+Enter tuş kombinasyonu ile elde edilir.
Kod:
=EĞERHATA(İNDİS($B$1:$B$20;KÜÇÜK(EĞERHATA(KAÇINCI(EĞER($A$1:$A$20=D$1;EĞER($B$1:$B$20<>"";$B$1:$B$20));$B$1:$B$20;0);"");SATIRSAY($2:2)));"")
 
Teşekkür ederim. Bütün kodlar çok klas. Hepsi çalışıyor. Ellerinize Sağlık.
 
Alternatif olsun;
Kod:
=EĞERHATA(KÜÇÜK(EĞER((A$1:A$5="Türkçe")*
         (B$1:B$5<>"");B$1:B$5);
SATIR(A1));"")
[COLOR="Blue"]Formül dizi formülüdür.CTRL + SHIFT + ENTER ile tamamlayınız.[/COLOR]

Not : Verilerinizin içerisinde METİNSEL değerler varsa sonuç yanlış olacaktır.

Daxe Syán
 
Evren beyin koduna ilave sutunlar eklenmiş hali.

Kod:
Sub ders59()
Dim i As Long,a As Long, sonsat As Long, sat As Long, ders As String
Range("D2:J" & Rows.Count).ClearContents
sonsat = Cells(Rows.Count, "A").End(xlUp).Row
sat = 2
For a = 4 To Range("d1").End(2).Column+1
For i = 1 To sonsat
ders = UCase(Replace(Replace((Cells(1, a).Value), "i", "İ"), "ı", "I"))
    If UCase(Replace(Replace(Cells(i, "A").Value, "i", "İ"), "ı", "I")) = ders Then
        If Cells(i, "B").Value <> "" Then
            Cells(sat, a).Value = Cells(i, "B").Value
            sat = sat + 1
        End If
    End If
Next i
sat = 2
Next a
MsgBox "İşlem tamamlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub
 
Son düzenleme:
Alternatif olsun,

Kod:
=EĞERHATA(TOPLAMA(15;6;$B$1:$B$12/(($B$1:$B$12>0)*($A$1:$A$12=$D$1));SATIR(A1));"")
 
. . .

D2 hücresi için DİZİ formül.
Aşağı ve sağa doğru çoğaltın.

Kod:
=EĞERHATA(İNDİS($A$1:$B$12;KÜÇÜK(EĞER(DEĞİL(EBOŞSA($B$1:$B$12));EĞER($A$1:$A$12=D$1;SATIR($A$1:$A$12)));SATIR($A1));SÜTUN($B$1));"")

. . .

Merhaba Hüseyin Bey,

C1:C12 arasında her satırda veri mevcut. Bu verilerden sadece D sütununa yazdırdığımız 10 ve 12 değerinin karşısında var olan veriyi F sütununa yazdırmak istiyorum. "VE" formülü denedim ama bir türlü istediğim veri gelmiyor.
 
Sayın Yesilaski,
Deneyiniz.
  • A sütunu kriterleriniz,
  • B sütunu sonuç,
C1 hücresine yazıp, aşağı doğru çekiniz.
Kod:
=İNDİS(B$1:B$6;KÜÇÜK(EĞER((A$1:A$6="Jane")+
                     (A$1:A$6="Jankat");SATIR(B$1:B$6)-
SATIR(C$1)+1);SATIRSAY(C$1:C1)))
[COLOR="Blue"]Formül dizi formülüdür. CTRL + SHIF + ENTER ile tamamlayınız.[/COLOR]

Daxe Syán
 
. . .

DİZİ formül.

Kod:
=EĞERHATA(İNDİS($C$1:$D$12;KÜÇÜK(EĞER(($D$1:$D$12=10)+($D$1:$D$12=12)>=1;SATIR($A$1:$A$12));SATIR(A1));SÜTUN($A$1));"")
. . .
 
. . .

DİZİ formül.

Kod:
=EĞERHATA(İNDİS($C$1:$D$12;KÜÇÜK(EĞER(($D$1:$D$12=10)+($D$1:$D$12=12)>=1;SATIR($A$1:$A$12));SATIR(A1));SÜTUN($A$1));"")
. . .

Kusura bakmayın Hüseyin Bey,

Fotoğrafla anlatayım



İlk sayfada verdiğiniz kod tam istediğim gibi çalışıyor. Fakat sonradan C sütununa zaman verisi ekledim. Bu nedenle F sütununa fotoğraftaki gibi veri çekmem gerekiyor.
 
. . .

Kod:
=eğerhata(indis($b$1:$c$12;küçük(eğer(($b$1:$b$12=10)+($b$1:$b$12=12)>=1;satır($a$1:$a$12));satır(a1));sütun($b$1));"")

. . .
 
. . .

Kod:
=eğerhata(indis($b$1:$c$12;küçük(eğer(($b$1:$b$12=10)+($b$1:$b$12=12)>=1;satır($a$1:$a$12));satır(a1));sütun($b$1));"")

. . .

D sütunundaki 10 ve 12 sayısı sabit bir sayı değil. Hem sayı hemde sırası değişken. Bu nedenle formülde o değerleri kendi bulmalı. B sütununda bulduğu değeri C sütununda hangi tarihe denk geliyorsa onu F sütununa getirecek.

Verdiğiniz formülü uyarlamaya çalıştım ama olmadı.
 
. . .

Örneğin,
B sütununda 10 ve 12 değerleri her zaman bir kez mi geçiyor.

. . .
 
. . .

Örneğin,
B sütununda 10 ve 12 değerleri her zaman bir kez mi geçiyor.

. . .

Değerler sabit değil. Hiç geçmeye de bilir veya 10 kerede geçebilir. Yani değerleri önceden bilmiyorum. Olayın özü şu şekilde

A sütununda istenilen dersi bulduk. Örnek "Tarih" (D1 Sütununu baz alarak)
B sütununda "Tarih" dersinin karşısında var olan değeri aldık. Boş ise es geçtik.
C sütununda ise hem A sütununda "Tarih" olanı hemde B sütununda "Değer" olanı bulduysan C sütununda var olan günü al F'ye yaz.

Bunun için sizin formülde VE(A1:A12="Tarih";B1:B12>0) gibi bir formül eklemeye çalıştım ama beceremedim.
 
Geri
Üst