Merakli_72
Yeni Üye
Konuyu Başlatan
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.
Sayın 52779Alternatif olsun..
Ekli dosyayı görüntüle 22562
=, >, >=, <, <=,<> gibi işleçlerin hücreye başvurularak alınmaları, Ancak, EĞERSAY, ETOPLA, ÇOKETOPLA, ÇOKEĞER işlevleri, VSEÇ işlevleri gibi işlevler kullanılarak alınabilir. Direkt olarak TOPLA, TOPLA.ÇARPIM gibi işlevlerde hücreden alınabilmesi mümkün değildir.
** Ayrıca söz konusu olan EĞERSAY, ETOPLA... vs gibi işlevler de hücre referans aralıklarını kullanarak çalışırlar. Hücre aralıklarında herhangi bir işlem ile çalışmazlar, çünkü dizi ile çalışmazlar.
İstediğiniz olay Stok * Fiyat kolonlarının çarpımlarının toplamı olduğundan, J2 : J8 ya da K2 : K8 tek başlarına hücre referans aralığıdır. Ancak J2 : J8 * K2 : K8 çarpımlarını aldığınızda referans aralığı olmaktan çıkar ve bir dizi olur. Bu durumda da ÇOKETOPLA gibi bir işlev çalışmayacaktır.
O nedenle de istediğiniz olay için, ya dolaylı bir yol kullanılır, ya da, yardımcı kolonlar kullanılarak çözüm sağlanabilir.
Direkt hesaplama için formül (dolaylı bir yol) : TOPLA.ÇARPIM işlevinin içerisinde ÇOKEĞERSAY kullanımı
Kod:Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Dosyanızda,
1 - C2 hücresindeki formül değiştirildi. ""(BOŞ) olma durumu eklendi ki, bu durumda Tüm firmalar değerlendirilir.
2 - Yardımcı kolonlarla çözümler eklendi.
3 - Dinamik olarak, ad tanımlamalarıyla çalışan TOPLA.ÇARPIM kullanımı da eklendi.
Dosyanız ektedir... İncelersiniz...
formülünün açıklamasını yapmaya çalışalım.=TOPLA.ÇARPIM(((EĞER(C2="";1;SOLDAN(KIRP(H2:H8);UZUNLUK(C2))=C2))*ÇOKEĞERSAY(I2:I8;I2:I8;I2:I8;D2&E2)>0)*J2:J8*K2:K8)
Bize, tek bir değer değil, tablonun her bir satırı için bir değer gerekmekte, yani bir dizi gerekmekte.1 - Sonuç olarak bize, SONUÇ olarak TEK bir hücrede değer üretir.
Burada, akıllara hemen H2:H8 ; C2&"~*" parametresini (A.RAIF ile başlayanları da bulma) de ekleyip, sonuca gitmek gelecektir.
Yapalım...
Emeğiniz ve gönül zenginliğiniz için çok teşekkür ediyorum müsait bir zamanda en inDevam....
Ekli dosyayı görüntüle 22592
Sonuçlara baktığımızda, 2. satırda 1 değeri vermekte. Ama Firma, A.RAIF* ile başlamıyor...
Koşul sağlanmıyor. Şu halde neden 1 değeri veriyor.
Çünkü, problem yine TEK Sonuç problemi. H2:H8;C2&"~**" sonucu Doğrudur. Çünkü bu koşulu sağlayan 3 adet değer vardır. 3 > 0 olduğundan ya da 0 dan farklı bir değere sahip olduğundan doğru sonucunu üretip tüm diziyi 1 ile çarpar.
Şu halde, H2:H8;C2&"~**" olayını da bir dizi ile elde etmek gerekir.
Bunu, ÇOKEĞERSAY dışarısına alıyoruz ve C2 de SOLDAN işlevi kullanıldığından dolayı, TOPLA.ÇARPIM formülünün bir parametresi olarak yazıyoruz.
Burada, hemen bir not düşelim.
1 - C2 hücresi BOŞ("") olduğunda TÜM firmaları değerlendirsin dedik ve 1 çarpanı kullandık.
2 - A2 hücresinde * karakteri varsa * dan hemen önceki kısım alınsın dedik.
3 - A2 hücresinde * karakteri yoksa ilk 5 karakterlik kısım alınsın dedik.
Buradaki tüm seçimler tablonuzdaki verilere göre değiştirilebilir. En uygun değer ne ise o seçilebilir. Metinlere göre...
Evet devam edersek,
C2 de elde edilen metine göre SOLDAN işlevini yazdığımızda
* gibi Joker karakter geçersiz olup Eşitliğe bakılacaktır.
Eşitlik olarak da, firma kolonundaki firmaların, C2 kaç karakterse, o kadar ilk karakteri alınacak ve C2 ye eşitliğine bakılacak.
Yapalım...
Ekli dosyayı görüntüle 22593
Koşullarımızı sağlayanlar ortaya çıkmış oldu.
A.RAIF*2* ve A.RAIF*3* koşullarımızı sağlamakta...
Dikkat edersek, en son satırda 2 yazmakta. Sebebi, ilk elde ettiğimiz dizide, 100 değerinden 2 adet olduğundan dolayı 2 ile çarpılarak gelmekte. Yani yazılan dizideki değer bir çarpan olarak <=150 koşulunu sağlayanlara işlem yapmakta.
Bize bu sonuçların DOĞRU ya da YANLIŞ (ya da 1 veya 0 olmasına) olmasına ihtiyaç var. Yani bunlar da bir çarpan olacaktır.
O halde eşitliğe >0 olup olmadıklarına göre bakılacak ve değer alınacaktır.
Yaparsak
Ekli dosyayı görüntüle 22594
ve bu sonuçları da TOPLA.ÇARPIM işlevinde, J2 : J18 ve K2 : K18 değerleriyle çarpıp sonuca ulaşıyoruz....
Umarım açıklayabilmişimdir.