Anlatım biraz Uzun olacak... Çünkü detaylar biraz fazlaca...
Formüle geçmeden, öncelikle, seçimlerinizden bahsedelim.

Formülünüzde, SOLDAN işleviyle B2 hücresindeki seçime göre, A2 hücresindeki ibarenin
* karakterine kadarki bölüm alınmaktaydı. * da Joker karakter olduğundan * karakterinin kendisinin aranabilmesi için önüne
~ (tilde ya da yaklaşık) işareti konulmakta idi.
D2 hücresinde, işleç seçilmekte ve E2 hücresine de değer yazılmakta. Sonuçta elde edilecek olayın D2&E2 şeklinde olması istenmekte. Yani resme göre <=150 olması istenmekte. İşleç seçimi de D2 hücresindeki açılır listeden yapılmakta. Bu durumda, seçilen işlecin D2 hücresine başvuru ile hücreden alınması istenmekte...
Hesaplanacak tablo ise

şeklinde olup, koşullara uyanlar için Stok * Fiyat kolonlarının çarpımlarının toplamı istenmekte...
İşleçlerin hücreden alınabilmesi için, işlevlerde "<", "<=", "=", ...vs gibi tırnak içerisinde yazılabilen işlevler kullanılmalı... Bu da bize kullanılacak işlevlerin ancak ve ancak EĞERSAY, ETOPLA, ÇOKETOPLA, ÇOKEĞER li işlevler.... olmasını gerektirir.
Örnek verirsek, D2 ve E2 deki koşulları tablodaki gün kolonu için uygularsak, <=150 gün olanların adedi nedir dersek.
=EĞERSAY(I2:I8 ;
"<="&E2) şeklinde yazarız. Burada "<=" tırnak içerisinde yazılmıştır. Demek ki biz bu değeri hücreden aldırabiliriz. Yani, formülü "<=" işlecini D2 hücresinden aldırarak, =EĞERSAY(I2:I8 ;
D2&E2) şeklinde yazabiliriz.
Bir örnek daha verelim
firma için A.RAIF* ile başlayanlardan, <=150 gün (D2&E2 gün) olanların Fiyat Toplamlarını hesaplayalım.
ÇOKETOPLA işlevini kullanabiliriz.
2 durum var...
1. durum : * işareti Joker karakter olduğundan * işaretinin kendisini arattıracağımız için yaklaşık işaretini önüne koymalıyız.
Yani arattırılacak olan C2&"~**" şeklinde olmalı. ilk * işaretinden önce ~ işareti var. Bu durumda bizzat * aranacaktır. İkinci * işaretinden hemen önce ise ~ işareti olmadığından Joker karakter olup, ...ile başlayıp arkasından başka karakterler gelebilir anlamındadır.
Yani, C2&"~*
" , A.RAIF ile başlayıp, A.RAIF* ibaresinden sonra başka karakteristikler olabilir anlamındadır.(A.RAIF*1* gibi örneğin)
2. durum : <=150 değerini hücrelerden aldıracağız. Bu durumda D2&E2 olacak.
Bu durumda formül
=ÇOKETOPLA(K2:K8;H2:H8;C2&"~**";I2:I8;D2&E2)
şeklinde olup, 7 sonucunu verecektir.
Koşulları sağlayanlar, A.RAIF*2* için 3 + A.RAIF*3* için 4
Şimdi,
önemli bir kısım olan
Bu ÇOKETOPLA, EĞERSAY.... işlevlerinin gerekliliklerine ve sonuçlarına bakalım.
1 - Sonuç olarak bize,
SONUÇ olarak TEK bir hücrede değer üretir.
2 - İşlevlerin söz dizilimlerine bakıldığında İŞLEV(
hücre aralığı ;
kriter....) şeklindedir.
Yani bizzat hücre arlıkları kullanılmalıdır.
Örnek vererek açıklarsak,
Sizin isteğiniz olan sonuc için, yani
firma için A.RAIF* ile başlayanlardan, <=150 gün (D2&E2 gün) olanların Stok ve Fiyat
çarpımlarının Toplamlarını hesaplayalım.
Şöyle bir formül yazalım,
(mantık olarak doğru...)
=ÇOKETOPLA(
J2:J8 * K2:K8 ;H2:H8;C2&"~**";I2:I8;D2&E2)
formül çalışmayacaktır.
Çünkü, tek başına J2 : J8 ve tek başına K2 : K8 hücre arlıklarıdır. Ancak ise hücre aralıklarına bir işlem uygulanmış olup, hücre aralığından çıkar ve bir dizi oluşturur. Sonuçta, formül, hücre aralığı ile çalışacağından, yazılan bu formül çalışamayacaktır.
Eğer şöyle yapsaydık,

Stok * Fiyat değerlerini L2 : L8 aralığında hesaplattırıp yazsaydık. O zaman L2 : L8 bir hücre aralığı olacaktı.
Formülde de J2 : J8 * K2 : K8 ibaresi yerine L2 : L8 olan hücre aralığı kullanılacaktı ve formül çalışacaktı.
Şimdi tüm bunlardan yola çıkarak,
=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)
formülünün açıklamasını yapmaya çalışalım.
stok ve fiyat kolonlarının çarpımlarının toplamları isteniyor. Dolaylı bir yol kullanacağız.
TOPLA.ÇARPIM işlevi içerisinde, işleçlerin alınmasını sağlayabilen bir ÇOKEĞERSAY işlevi kullanacağız.
1 - Sonuç olarak bize, SONUÇ olarak TEK bir hücrede değer üretir.
Bize, tek bir değer değil, tablonun her bir satırı için bir değer gerekmekte, yani bir dizi gerekmekte.
Bu diziyi bir çarpan gibi kullanacağız. Ben bu diziyi I2 : I8 aralığında kullandım. H2 : H8 gibi diğer kolonlar da kullanılabilir.
Dizi şöyle =EĞERSAY(I2:I8;I2:I8) dediğimizde bize dizi olarak

şeklinde tablonun her bir satırı için değer üretir. Bu sonuç bize, I2 : I8 aralığındaki her bir satırdaki değerden kaçar adet olduğunu verir. Tablodaki değerlere baktığımızda, 100 değerinden 2 adet, diğerlerinden ise 1 er adet vardır.
Şimdi bu diziyi ÇOKEĞERSAY işlevi içerisinde <=150 (D2&E2) ile kullanırsak

<=150 olup, dizi ile çarpımlarının sonucu gelecektir.
Burada, akıllara hemen H2:H8 ; C2&"~*
" parametresini (A.RAIF ile başlayanları da bulma) de ekleyip, sonuca gitmek gelecektir.
Yapalım...
Maxi 6 resim eklendiğinden bir sonraki mesajda devam ediyorum...