Sayı değerine göre aynı veriyi alt alt yazma

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Merhaba,
A1 de yer alan metinleri B1 de yazılan sayı kadar farklı bir sayfaya alt alt gelecek şekilde yazmak için ne yapmalıyım?
(Formülle)

Örnek;
Cüneyt 3
Ali 2
İse;
Cüneyt
Cüneyt
Cüneyt
Ali
Ali
Çok teşekkür ederim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Cüneyt 3
Ali 2
yazan sayfanın kod kısmına aşağıdaki kodları kopyalayın.
Kod:
Sub test()
    Dim Bak As Integer, Say As Integer
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        With Worksheets("Sayfa2")
            Say = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            Cells(Bak, "A").Copy .Range("A" & Say & ":A" & Say + Cells(Bak, "B") - 1)
        End With
    Next
End Sub
Diğer sayfanın adı "Sayfa2" olmalı. Yada kendi sayfanızın adını koddaki ilgili yere yazarsınız.
 
Katılım
21 Aralık 2016
Mesajlar
722
Excel Vers. ve Dili
Office 365 TR
Selamlar,
Formülle çözüme örnek olarak hazırlanmış dokumanı incelersiniz.....


Dokumanda
A2 : A6 isimler
B2 : B6 adetleri mevcut

Adetler, 0 ya da POZİTİF Tamsayı olmalıdır... (Adet ≥ 0)... Ya da BOŞ bırakılabilir. Bu kriterler formüllerde değerlendirmeye alınmıştır.

Çözüm.1 --- Yardımcı kolon kullanarak
Yardımcı kolon : D2 : D6 --- Kümülatif adet toplamları hesaplatıldı.
E2 hücresindeki formül (Standart normal Formül)
Kod:
=EĞERHATA(EĞER(SATIRSAY($A$2:$A2)<=TOPLA($B$2:$B$6);İNDİS($A$2:$A$6;KAÇINCI(SATIRSAY($A$2:$A2);$D$2:$D$6));"");"")
Çözüm.2 --- Yardımcı kolon kullanılmadan
G2 hücresindeki formül (DİZİ Formül)
Kod:
=EĞER(VE(TOPLA.ÇARPIM(($B$2:$B$6<0)+(MOD($B$2:$B$6;1)<>0))=0;SATIRSAY($A$2:$A2)<=TOPLA($B$2:$B$6));İNDİS($A$2:$A$6;KAÇINCI(SATIRSAY($A$2:$A2)-1;DÇARP(--(SATIR($B$2:$B$6)>DEVRİK_DÖNÜŞÜM(SATIR($B$2:$B$6)));EĞER($B$2:$B$6="";0;$B$2:$B$6))));"")
Çözüm.3 --- Yardımcı kolon kullanılmadan
I2 hücresindeki formül (DİZİ Formül)
Kod:
=EĞER(VE(TOPLA.ÇARPIM(($B$2:$B$6<0)+(MOD($B$2:$B$6;1)<>0))=0;SATIRSAY($A$2:$A2)<=TOPLA($B$2:$B$6));İNDİS($A$2:$A$6;KAÇINCI(1;İŞARET(EĞERSAY($I$1:I1;$A$2:$A$6)<ETOPLA($A$2:$A$6;$A$2:$A$6;$B$2:$B$6));0));"")
Not :
DİZİ
formüllerin hücreye girişleri ENTER ile değil, CTRL + SHIFT + ENTER tuşlarının 3 üne AYNI anda basılarak yapılır. Formül doğru şekilde girildiğinde, formül otomatik olarak {...} parantezleri içerisine alınır. Eğer, formül doğru şekilde girilmezse ya da { } parantezleri Manuel yazılırsa formül düzgün çalışmayacaktır.
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Merhaba.

Cüneyt 3
Ali 2
yazan sayfanın kod kısmına aşağıdaki kodları kopyalayın.
Kod:
Sub test()
    Dim Bak As Integer, Say As Integer
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        With Worksheets("Sayfa2")
            Say = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            Cells(Bak, "A").Copy .Range("A" & Say & ":A" & Say + Cells(Bak, "B") - 1)
        End With
    Next
End Sub
Diğer sayfanın adı "Sayfa2" olmalı. Yada kendi sayfanızın adını koddaki ilgili yere yazarsınız.
Muzaffer Bey Çok teşekkür ederim sonuç başarılı emeğinize ve ilginize ayrıca teşekkür ederim
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Selamlar,
Formülle çözüme örnek olarak hazırlanmış dokumanı incelersiniz.....


Dokumanda
A2 : A6 isimler
B2 : B6 adetleri mevcut

Adetler, 0 ya da POZİTİF Tamsayı olmalıdır... (Adet ≥ 0)... Ya da BOŞ bırakılabilir. Bu kriterler formüllerde değerlendirmeye alınmıştır.

Çözüm.1 --- Yardımcı kolon kullanarak
Yardımcı kolon : D2 : D6 --- Kümülatif adet toplamları hesaplatıldı.
E2 hücresindeki formül (Standart normal Formül)
Kod:
=EĞERHATA(EĞER(SATIRSAY($A$2:$A2)<=TOPLA($B$2:$B$6);İNDİS($A$2:$A$6;KAÇINCI(SATIRSAY($A$2:$A2);$D$2:$D$6));"");"")
Çözüm.2 --- Yardımcı kolon kullanılmadan
G2 hücresindeki formül (DİZİ Formül)
Kod:
=EĞER(VE(TOPLA.ÇARPIM(($B$2:$B$6<0)+(MOD($B$2:$B$6;1)<>0))=0;SATIRSAY($A$2:$A2)<=TOPLA($B$2:$B$6));İNDİS($A$2:$A$6;KAÇINCI(SATIRSAY($A$2:$A2)-1;DÇARP(--(SATIR($B$2:$B$6)>DEVRİK_DÖNÜŞÜM(SATIR($B$2:$B$6)));EĞER($B$2:$B$6="";0;$B$2:$B$6))));"")
Çözüm.3 --- Yardımcı kolon kullanılmadan
I2 hücresindeki formül (DİZİ Formül)
Kod:
=EĞER(VE(TOPLA.ÇARPIM(($B$2:$B$6<0)+(MOD($B$2:$B$6;1)<>0))=0;SATIRSAY($A$2:$A2)<=TOPLA($B$2:$B$6));İNDİS($A$2:$A$6;KAÇINCI(1;İŞARET(EĞERSAY($I$1:I1;$A$2:$A$6)<ETOPLA($A$2:$A$6;$A$2:$A$6;$B$2:$B$6));0));"")
Not :
DİZİ
formüllerin hücreye girişleri ENTER ile değil, CTRL + SHIFT + ENTER tuşlarının 3 üne AYNI anda basılarak yapılır. Formül doğru şekilde girildiğinde, formül otomatik olarak {...} parantezleri içerisine alınır. Eğer, formül doğru şekilde girilmezse ya da { } parantezleri Manuel yazılırsa formül düzgün çalışmayacaktır.
İsminizi göremiyorum ama açıklayıcı ve kapsamlı dönüşünüz için çok teşekkür ediyorum, her bir formülü deneyerek kendi dosyama uyarladım, yardımcı kolon olmayan alternatifinizi kullanmayı tercih ettim.

Desteğiniz, alakanız ve emeğiniz için teşekkür ederim.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,632
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Alternatif,

Kod:
=EĞERHATA(İNDİS($A$2:$A$3;ARA(SATIR(A1);ALTTOPLAM(9;KAYDIR($B$1;;;SATIR($1:$3)))+1;SATIR($1:$99)));"")
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Alternatif,

Kod:
=EĞERHATA(İNDİS($A$2:$A$3;ARA(SATIR(A1);ALTTOPLAM(9;KAYDIR($B$1;;;SATIR($1:$3)))+1;SATIR($1:$99)));"")
Erdem Bey,
Dizi formülü olarak giriş ve dosyama göre uyarlamada sizin formülünüzde istediğim sonucu verdi,
Size de çok teşekkür ederim,

Yinelenenleri kaldırmak çok kolay ama yinelenen değer yapmak oldukça karmaşıkmış :)
Katkılarınız için tekrar herkese teşekkür ediyorum.
Saygılar.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,632
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Dizi formülü değil, normal olarak kullanabilirsiniz.
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Dizi formülü değil, normal olarak kullanabilirsiniz.
Erdem Bey dediğiniz gibi normal olarak yaptım (dizi olarak da sonuç aynı)
İstediğim gibi oluyor ama sizin formülünüzü C2 den başlatıyorum tek fark a2 deki değerleri C5 den itibaren yazmaya başlıyor.
 
Üst