Excelde, döngü içeren formüller yazmak mümkün mü ?

Katılım
21 Ocak 2008
Mesajlar
309
Excel Vers. ve Dili
Excel 2013 / Türkçe
İlişikteki dosyaya basit bir örneğini eklediğim, 300 küsur satırdan oluşan bir malzeme listemiz var. Bu ürünlerin her birinin 3 ayrı rengi var.

Tedarikçimizden bu ürünleri istemek için Sipariş Listesi oluşturacağım zaman, yapmak istediğim şey şu;

İlk sekmeye geçip, öncelikle isteyeceğim ürünlerin renk sütunlarına "x" yazacağım. Örneğin "A" isimli üründen sadece "Siyah" renk istiyorsam, C4'e "x" giriyorum. "K" isimli ürünün tüm renklerini isteyeceksem, C14, D14 ve E14'e "x" giriyorum. Böylece ihtiyacım olan tüm ürün ve renkleri belirlemiş oluyorum.

2. sekmede yapmaya çalıştığım şey şu;

Yazacağım formüllerle, ilk sekmeden ürün isimleri ve renkleri, boşluksuz olarak bu sekmeye çekmek istiyorum. Ancak, tedarikçimin bu ürünleri karıştırmadan, düzgün bir şekilde gönderebilmesi için, bu listede önce ilk rengin, sonra 2. rengin, en son da 3. rengin ürünlerinin bu sekmeye çekilmesini istiyorum. Yani renkler karışık bir sıra ile gelsin istemiyorum.
Daha anlaşılır olması için şöyle izah edeyim; yazacağım formül öncelikle "Siyah" sütununu (C4:C300) örnekte olduğu gibi, A, C, G, I, ve K isimlerini çekmeli, bu ürünlerin karşısına da "Siyah" yazmalı.
Sonra aynı formül, bu kez baştan sona kontrol edip "Krom" sütununu (D4:D300) örnekte olduğu gibi, C, D, E, F, H, I, J, K ÜRÜN isimlerini çekmeli, bu ürünlerin karşısına da "Krom yazmalı.
Bir döngü daha yapıp, aynı işlemi (E4:E300) sütunu için de yapmalı.

Ben bunu 2. sekmede B4:C8 hücrelerine yazmış olduğum formüllerle, ancak tek bir döngü için yapabildim. 2. döngüyü beceremedim.

Excelde böyle bir şey yaptırabilmek mümkün mü ?

 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,171
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

DİZİ formüllerdir.

B4;
C++:
=EĞERHATA(İNDİS('Malzeme Listesi'!$B$4:$B$1000;KÜÇÜK(EĞER('Malzeme Listesi'!$C$4:$E$1000="X";SATIR('Malzeme Listesi'!$C$4:$E$1000)-3);SATIR($A1)));"")
C4;
C++:
=EĞERHATA(İNDİS('Malzeme Listesi'!$C$3:$E$3;KÜÇÜK(EĞER('Malzeme Listesi'!$B$4:$B$1000=$B4;EĞER('Malzeme Listesi'!$C$4:$E$1000="X";SÜTUN('Malzeme Listesi'!$C$4:$E$1000)-2));EĞERSAY($B$4:$B4;$B4)));"")
 
Katılım
21 Ocak 2008
Mesajlar
309
Excel Vers. ve Dili
Excel 2013 / Türkçe
Korhan bey ilginize teşekkürler ediyorum ama maalesef amaçladığım şeyi yapmadı formüller. Ben istiyorum ki; yan sayfadan önce ilk sütunu, yani "siyah" olanları ard arda çekip alsın. Sonra 2. sütunu yani "krom"ları alt alta çeksin, en son da 3. sütunu yani "kırmızı"ları. Yani renkler karışık olarak çekilmemeli. Sipariş Listesi oluştuğunda, listeye bakan kişi; listenin en üstünde tüm siyahları, sonra kromları, en altta da kırmızıları görmeli...

Renkler karışık gelmemeli...
 
Katılım
21 Ocak 2008
Mesajlar
309
Excel Vers. ve Dili
Excel 2013 / Türkçe
@bmutlu966 çözüm olsun da her türlüsüne razıyım.. : ) Makronuz harika çalışıyor, gönül dolusu teşekkürler ediyorum... Sağolun...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,171
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formüllerle çözüm için inceleyiniz.

Sıralama dizisini tek formül içinde kurgulayamadım. Mutlaka bir tekniği vardır. Ama benim aklıma gelmedi. Bu sebeple yardımcı sütun kullanmak durumunda kaldım. Belki kullanmak istersiniz.

Harici Link (Silinebilir) ; https://dosyam.org/1N0e/Siralama.xlsx
 

Ekli dosyalar

Katılım
21 Ocak 2008
Mesajlar
309
Excel Vers. ve Dili
Excel 2013 / Türkçe
@Korhan Ayhan bey, ilginize teşekkür ediyorum. Google'un desteği ile çözdüm sorunumu. Belki başkalarının da işine yarar düşüncesiyle formülü paylaşıyorum (ilk formül B4'e, ikinci formül C4'e) :



=EĞER(EĞERSAY('Malzeme Listesi'!C$4:E$17;"x")<SATIR(A1);"";KAYDIR('Malzeme Listesi'!$B$1;MOD(KÜÇÜK(EĞER('Malzeme Listesi'!$C$4:$E$17="x";KUVVET(10;10)*SÜTUN('Malzeme Listesi'!$C$4:$E$17)+SATIR('Malzeme Listesi'!$C$4:$E$17));SATIR($A1));KUVVET(10;10))-1; ))
=EĞER(EĞERSAY('Malzeme Listesi'!C$4:E$17;"x")<SATIR(A1);"";KAYDIR('Malzeme Listesi'!$A$1;2;TAMSAYI(KÜÇÜK(EĞER('Malzeme Listesi'!$C$4:$E$17="x";KUVVET(10;10)*SÜTUN('Malzeme Listesi'!$C$4:$E$17)+SATIR('Malzeme Listesi'!$C$4:$E$17));SATIR($A1))/KUVVET(10;10))-1))
 
Katılım
21 Ocak 2008
Mesajlar
309
Excel Vers. ve Dili
Excel 2013 / Türkçe
@Korhan Ayhan bey çok teşekkür ediyorum. Denedim gayet güzel çalışmakta, sağolun...
 
Üst