Oldukça Çoklu Koşulu Olan İşlemler

Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Merhabalar Değerli Üstatlar;

İçinden çıkamadığım bir konu ile yardımlarınızı talep ediyorum. Gerekli açıklamayı excel dosyası içerisine yazdım. Ben yazarken zorlandım umarım sizler rahatça anlarsınız.
Şimdiden yardımlarınız için çok teşekkür ederim.

Saygı ve hürmetlerle.
 

Ekli dosyalar

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,182
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Sorunuzda anlaşılmayan noktalar var. (blok sayısı ne? Bulunan satır No'su mu?)
Anlayabildiğim kadar birşeyler yaptım.
Makro çözümlü eki deneyin.
İyi çalışmalar.
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Yanlış anlamıyorsam; koşullara uyan veri sayısı 1 adet olduğunda aşağıdaki şekilde sonuç alabilirsiniz.
-- Koşullara uyan veri adetini formülde kırmızı renklendirdiğim kısım bulur.
Koşula uyan veri adeti 1 olduğunda ise aşağıdaki formül D sütunundaki değeri verir, sayı 1'den farklı ise "1'den farklı sonuç var" sonucunu verir.
=EĞER(TOPLA.ÇARPIM(($E$2:$E$14>=PARÇAAL($G10;2;BUL("-";$G10)-2)/100)*($E$2:$E$14<=PARÇAAL($G10;BUL("-";$G10)+1;3)/100)*($D$2:$D$14>=$I10)*($D$2:$D$14<=10))=1;KAYDIR($D$1;TOPLA.ÇARPIM(($E$2:$E$14>=PARÇAAL($G10;2;BUL("-";$G10)-2)/100)*($E$2:$E$14<=PARÇAAL($G10;BUL("-";$G10)+1;3)/100)*($D$2:$D$14>=$I10)*($D$2:$D$14<=10)*(SATIR($D$2:$D$14)))-1;0);"1'den farklı sonuç var")
-- X, Y ve Z değerleri için; K10 hücresine uygulayın ve sağa doğru kopyalayın.
=EĞER(TOPLA.ÇARPIM(($E$2:$E$14>=PARÇAAL($G10;2;BUL("-";$G10)-2)/100)*($E$2:$E$14<=PARÇAAL($G10;BUL("-";$G10)+1;3)/100)*($D$2:$D$14>=$I10)*($D$2:$D$14<=10))=1;KAYDIR($A$1;TOPLA.ÇARPIM(($E$2:$E$14>=PARÇAAL($G10;2;BUL("-";$G10)-2)/100)*($E$2:$E$14<=PARÇAAL($G10;BUL("-";$G10)+1;3)/100)*($D$2:$D$14>=$I10)*($D$2:$D$14<=10)*(SATIR($D$2:$D$14)))-1;SÜTUN(A$1)-1);"")
 
Son düzenleme:
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Merhaba;
Sorunuzda anlaşılmayan noktalar var. (blok sayısı ne? Bulunan satır No'su mu?)
Anlayabildiğim kadar birşeyler yaptım.
Makro çözümlü eki deneyin.
İyi çalışmalar.
Muygun Hocam;

Ellerinize sağlık çok güzel olmuş. Dediğim gibi anlatımda ben biraz kısır kalmış olabilirim. Esasen bu bir yeraltı cevherinin blok modeli. Her bir blok 10x10x10 ebatlarına sahip ve aslında 477.756 adet blok var. Ben kısaltarak koydum maalesef. Her bir küp bloğun da X,Y,Z koordinat düzleminde koordinatları var. Değer dediğim sütun blokların tenör değerleri oluyor. Güven aralığı ise normal dağılıma oturtulmuş her bir bloğun %'lik karşılığını veriyor.

Özet olarak; belirli bir güven aralığına denk gelen tenör değerlerini bulacak, bu tenör değerlerinin toplam kaç adet bloğa denk geldiğini sayacak. Örneğin, %5-%95 güven aralığında 135bin blok var diyecek. Elbette bir de tenör değerine göre bu güven aralığındaki blokları bulmak kalıyor. Yani %5-95 aralığında 135bin blok var ve bunların 73bin'i istemiş olduğunuz 4-9 tenör aralığındadır. Umarım anlatabilmişimdir. Koordinat kısmı kafa karıştırıyorsa olmayabilir ama hangi hücrelerin bu değerlerde olduğunu görebilirsem (sizin yaptığınız gibi sarı renklendirmeli) onları bulmam kolay olabilir diye düşünüyorum.

Ömer Baran bey;

Ellerinize sağlık sizin de. Güven aralığını ben tek hücrede yazdım ama o şekilde çalışmadı. Aslında 2 hücre olursa daha iyi olur yani minimum olan bir hücrede, maksimum olan bir hücrede. Aranan değer (I10 hücresindeki) de aynı şekilde min ve max olacak şekilde 2 hücrede olabilirse daha iyi olur.

Ellerinize sağlık.
Saygılarımla
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Sorularınızı; gerçek belgenin, özel bilgi içermeyen kopyası şeklinde hazırlayacağınız örnek belge üzerinden sorunuz.
"iki hücre olursa daha iyi olur"u sanırım kendinize söylediniz ve hayır cevabı almış olmalısınız ki örnek belgenizde güven aralığı tek hücrede.

Ben yine eklediğiniz örnek belge üzerinden bir cevap daha yazayım.

A2:E14 hücre aralığını seçip KOŞULLU BİÇİMLENDİR=>FORMÜL KULLAN seçeneğinde;
aşağıdaki formülü uygulayıp uygun bir renk seçerek işlemi onaylarsanız, koşullara uyan satırlar ilgili renge boyanır.
=TOPLA.ÇARPIM(($E2>=PARÇAAL($G$10;2;BUL("-";$G$10)-2)/100)*($E2<=PARÇAAL($G$10;BUL("-";$G$10)+1;3)/100)*($D2>=$I$10)*($D2<=10))
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Sorularınızı; gerçek belgenin, özel bilgi içermeyen kopyası şeklinde hazırlayacağınız örnek belge üzerinden sorunuz.
"iki hücre olursa daha iyi olur"u sanırım kendinize söylediniz ve hayır cevabı almış olmalısınız ki örnek belgenizde güven aralığı tek hücrede.

Ben yine eklediğiniz örnek belge üzerinden bir cevap daha yazayım.

A2:E14 hücre aralığını seçip KOŞULLU BİÇİMLENDİR=>FORMÜL KULLAN seçeneğinde;
aşağıdaki formülü uygulayıp uygun bir renk seçerek işlemi onaylarsanız, koşullara uyan satırlar ilgili renge boyanır.
Ömer Bey;

emekleriniz için çok teşekkür ederim. Ben oradaki tabloyu örnek olacak şekilde yapmıştım. Evet sorun benim tarif tarzımda oluştu, hazırlarken o kısmı düşünemedim. Eklemiş olduğunuz formülü deneyeceğim.

Tekrar teşekkür ederim zahmetleriniz için.

Saygılar
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Gerçek belge yapısını bilemiyoruz. Gerçek belgeyle aynı yapıda olmayan bir örnek belge olunca da malesef böyle oluyor
ve ardından da zaman zaman formülün belgeye uyarlanamadığı şeklinde geri bildirim alıyoruz.

Verdiğim formüldeki;
-- PARÇAAL($G$10;2;BUL("-";$G$10)-2)/100 kısmı yerine güven aralığı alt sınır değerini (0,26 gibi) yazdığınız hücre adresini
-- PARÇAAL($G$10;BUL("-";$G$10)+1;3)/100 kısmı yerine de güven aralığı üst sınır değerini (0,38 gibi) yazdığınız hücre adresini
yazarak kullanabilirsiniz.
.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Gerçek belge yapısını bilemiyoruz. Gerçek belgeyle aynı yapıda olmayan bir örnek belge olunca da malesef böyle oluyor
ve ardından da zaman zaman formülün belgeye uyarlanamadığı şeklinde geri bildirim alıyoruz.

Verdiğim formüldeki;
-- PARÇAAL($G$10;2;BUL("-";$G$10)-2)/100 kısmı yerine güven aralığı alt sınır değerini (0,26 gibi) yazdığınız hücre adresini
-- PARÇAAL($G$10;BUL("-";$G$10)+1;3)/100 kısmı yerine de güven aralığı üst sınır değerini (0,38 gibi) yazdığınız hücre adresini
yazarak kullanabilirsiniz.
.
Ömer Bey;

yapmaya çalıştım ama sürekli çok az değişken girdiniz hatası verdi.

Saygılar
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Ömer bey;

dosyayı da ekledim belki yardımcı olur diye.

Saygılarımla
 

Ekli dosyalar

Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Ömer bey,

sormayı unuttum peki bunu belirtmiş olduğum 477bin satırlık veriye uygularken neresini değiştirmem gerekiyor acaba?

Saygılarımla.
Tekrar çok teşekkür ederim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Tekrar merhaba.
Önceki cevabımdaki belgeyi yeniledim, formül ve makro ile çözüm mevcut, tercihinize göre birini kullanabilirsiniz.
Dosya içerisindeki açıklamaları okuyunuz. Dosyayı açtığınızda MAKROLARI ETKİNLEŞTİRİNİZ.
.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Tekrar merhaba.
Önceki cevabımdaki belgeyi yeniledim, formül ve makro ile çözüm mevcut, tercihinize göre birini kullanabilirsiniz.
Dosya içerisindeki açıklamaları okuyunuz. Dosyayı açtığınızda MAKROLARI ETKİNLEŞTİRİNİZ.
.
Sorun çözülmüştür. @Ömer BARAN hocama çok çok teşekkürler.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
.
Estağfurullah, kolay gelsin.
.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Merhabalar;

Daha önce de benzer tarzda sorularım olmuştu. Özellikle koordinat bulma üzerine ve @Ömer BARAN sağolsun çok yardımcı oldu. Yine aynı tarzda ekteki dosyada görüleceği üzere, birden fazla sütundaki değerleri, içinde aramak istediğim değerlerle karşılaştıracak ve aynı olanların sahip olduğu Tenör değerini J sütununa yazacak bir çözüm arıyorum. Excel dosyasında örneğini oluşturdum daha doğrusu ulaşmak istediğim örneği yazdım. Dosyadaki veri sayısı çok az, yani örnek olsun diye verdim. Normalde örnekte Mevcut Koordinatlar yazan kısımda 455bine yakın satırda veri olacak ve Aranan Koordinatlar yazan kısımdaki aradığım koordinat sayısı ise yaklaşık 15bin olacak.

Şimdiden çok teşekkür ederim.
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Forum yöneticilerinden, açtığınız yeni konu olan Çok Sütunlu Değerleri Bir Başka Sütunda Bulma
konusunun bu konu sayfasında birleştirilmesini istedim.

Açtığınız diğer konu sayfasının boş kalması için oradaki sorunuzun cevabını bu konu sayfasına yazıyorum.

Aşağıdaki formülü yeni belgenin K3 hücresine uygulayın ve aşağı doğru kopyalayın.
Formül, X, Y ve Z değerlerinin yanyana birleştirildiğini düşünürseniz benzersiz bir liste olacağı varsayımına dayanır.
(Yani örneğin 3 // 11 // 41 değeri sadece 1 adet satırda yan yana gelebilir demek istiyorum)
=TOPLA.ÇARPIM(($A$3:$A$23=$G3)*($B$3:$B$23=$H3)*($C$3:$C$23=$I3)*($D$3:$D$23))
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Evet haklısınız aslında aynı konuya örnek olmuş oluyor, birleştirilmesi de çok iyi olmuş.
Formül kusursuz çalıştı hocam çok teşekkür ederim. Garibime giden, topla.çarpım formülü ile bunun yapılabilmesi. süpermiş.
Tekrar teşekkür ederim @Ömer BARAN hocam, sorun çözülmüştür.
Saygılar
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Alternatif.:cool:
Kod:
=ÇOKETOPLA($D$3:$D$23;$A$3:$A$23;$G3;$B$3:$B$23;$H3;$C$3:$C23;$I23)
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
-- Makro ile çözüm önerisine ilave:
Sanıyorum verdiğim son cevaptaki formülü, konu sayfasında 10 numaralı cevap ekindeki örnek belgeye göre;
M, N ve O sütunundaki değerler (X, Y, Z) için T sütununa uygulayabilirsiniz ya da
o belgede yer alan makroda For Each hcr In b.Range("A2:A" & sonsat).SpecialCells(xlCellTypeVisible) şeklindeki döngü içerisinde,
yer alan b.Cells(sat, "O") = b.Cells(hcr.Row, "C") satırından sonra b.Cells(sat, "T") = b.Cells(hcr.Row, "D") şeklinde bir satır ekleyerek olayı orada da bitirebilirsiniz.

-- Verdiğim formülde kullanılan TOPLA.ÇARPIM işlevini inceleyiniz, araştırınız.
Kısaca
özetleyeyim.
Herbir koşul için, şu sütunda şuna, bu sütunda buna eşit olanlar (eşit olanlar için 1, olmayanlar için 0 değeri dönecektir)
tüm koşullar gerçekleştiğinde bulunan 1'lerın ÇARPIMI olan 1 ile formülün en sonundaki hedef alandaki değeri ÇARPTIĞINIZI düşünün.

İlk veri satırı için koşulların tümünün 1 olduğu satır 12'nci satır oluyor bu satırdaki işlem de 1 x 1 x 1 x 11,3723 = 11,3723 oluyor.
İlk veri için koşullardan en az bir tanesi 0 ise (12'nci satır dışındaki satırlar) sonuç sıfır dönüyor ve bununla da ilgili satırlardaki hedef değerin çarpımı da 0 oluyor.
Son çarpım sonuçlarının toplamı da istenilen değerdir.

Bu ÇARPIM değerlerini (ÇARPIM sonuçlarını) , formül uygulanan hücre seçiliyken,
formül çubuğunun solundaki f(x) düğmesine tıkladığınzda açılacak olan küçük ekranda görebilir ve olayı daha iyi anlayabilirsiniz.

Örneğin formüldeki son kısmı *($D$3:$D$23) yerine *(SATIR($D$3:$D$23)) olarak yazsaydık sonuç 12 (satır no) olacaktı.

İyi çalışmalar dilerim.
.
 
Son düzenleme:
Üst