Çoklu Şart (EĞER) Formülünü Kısaltmak

Katılım
27 Haziran 2010
Mesajlar
394
Excel Vers. ve Dili
Türkçe 2010 Ofis
Herkese merhaba,

Aşağıdaki formülü, kısa ve daha hızlı bir formül haline getirebilirmiyiz?

=EĞER(VE(C5="M";F$2="İÇ");'Data(II)'!$BE3;EĞER(VE(C5="K";F$2="İÇ");'Data(II)'!$BF3;EĞER(VE(YADA(C5="2Y";C5="2K");F$2="İÇ");'Data(II)'!$BI3;EĞER(VE(C5="S1";F$2="İÇ");'Data(II)'!$BJ3;EĞER(VE(C5="S2";F$2="İÇ");'Data(II)'!$BK3;EĞER(VE(C5="S3";F$2="İÇ");'Data(II)'!$BL3;EĞER(VE(C5="M";F$2="DIŞ");'Data(II)'!$BM3; )))))))+EĞER(VE(C5="K";F$2="DIŞ");'Data(II)'!$BN3;EĞER(VE(YADA(C5="2Y";C5="2K");F$2="DIŞ");'Data(II)'!$BQ3;EĞER(VE(C5="S1";F$2="DIŞ");'Data(II)'!$BR3;EĞER(VE(C5="S2";F$2="DIŞ");'Data(II)'!$BS3;EĞER(VE(C5="S3";F$2="DIŞ");'Data(II)'!$BT3;EĞER(C5="KD";0; ))))))

Sağlıcakla kalın,
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Herkese merhaba,

formülü, kısa ve daha hızlı bir formül haline getirebilirmiyiz?
Merhaba,

=EĞER(C5="KD";0;KAYDIR('Data(II)'!$BE$3;;ARA(C5&"|"&F$2;{"2K|DIŞ";"2K|İÇ";"2Y|DIŞ";"2Y|İÇ";"K|DIŞ";"K|İÇ";"M|DIŞ";"M|İÇ";"S1|DIŞ";"S1|İÇ";"S2|DIŞ";"S2|İÇ";"S3|DIŞ";"S3|İÇ"};{13;5;13;5;10;2;9;1;14;6;15;7;16;8})-1))

Bu şekilde deneyiniz.

.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Herkese merhaba,

formülü, kısa ve daha hızlı bir formül haline getirebilirmiyiz?
Daha kısası:


Kod:
=EĞER(C5="KD";0;KAYDIR('Data(II)'!$BE$3;;ARA(C5;{"2K";"2Y";"K";"M";"S1";
  "S2";"S3"};{5;5;2;1;6;7;8}+(F$2="DIŞ")*8)-1))
.
 
Katılım
27 Haziran 2010
Mesajlar
394
Excel Vers. ve Dili
Türkçe 2010 Ofis
Daha kısası:

=EĞER(C5="KD";0;KAYDIR('Data(II)'!$BE$3;;ARA(C5;{"2K";"2Y";"K";"M";"S1";"S2";"S3"};{5;5;2;1;6;7;8}+(F$2="DIŞ")*8)-1))
Hocam merhaba, bu daha anlaşılır gibi, sağol,

Şayet yük olmayacaksam aynı mantıkla, aşağıdakileri de kısaltabilirmisiniz,

Çok makbule geçer,

Sağolasın,

1) =EĞER(VE(YADA(C5="M";C5="2K");E$2="G";F$2="İÇ");'Data(I)'!$BG3;EĞER(VE(YADA(C5="M";C5="2K");E$2="B";F$2="İÇ");'Data(I)'!$BH3;EĞER(VE(YADA(C5="M";C5="2K");E$2="Y";F$2="İÇ");0;EĞER(VE(C5="K";E$2="G";F$2="İÇ");'Data(I)'!$BG3/2;EĞER(VE(C5="K";E$2="B";F$2="İÇ");'Data(I)'!$BH3/2;EĞER(VE(C5="K";E$2="Y";F$2="İÇ");0;))))))+EĞER(VE(YADA(C5="M";C5="2K");E$2="G";F$2="DIŞ");'Data(I)'!$BO3;EĞER(VE(YADA(C5="M";C5="2K");E$2="B";F$2="DIŞ");'Data(I)'!$BP3;EĞER(VE(YADA(C5="M";C5="2K");E$2="Y";F$2="DIŞ");0;EĞER(VE(C5="K";E$2="G";F$2="DIŞ");'Data(I)'!$BO3/2;EĞER(VE(C5="K";E$2="B";F$2="DIŞ");'Data(I)'!$BP3/2;EĞER(VE(C5="K";E$2="Y";F$2="DIŞ");0;))))))+EĞER(VE(C5="2Y";E$2="G";F$2="İÇ");'Data(I)'!$BG3*0,75;EĞER(VE(C5="2Y";E$2="B";F$2="İÇ");'Data(I)'!$BH3*0,75;EĞER(VE(C5="2Y";E$2="Y";F$2="İÇ");0;EĞER(VE(C5="2Y";E$2="G";F$2="DIŞ");'Data(I)'!$BO3*0,75;EĞER(VE(C5="2Y";E$2="B";F$2="DIŞ");'Data(I)'!$BP3*0,75;EĞER(VE(C5="2Y";E$2="Y";F$2="DIŞ");0;))))))+EĞER(C5="KD";0;)

2) =EĞER(VE(C5="S1";E$2="G";F$2="İÇ");'Data(I)'!$BG3;EĞER(VE(C5="S1";E$2="B";F$2="İÇ");'Data(I)'!$BH3;EĞER(VE(C5="S2";E$2="G";F$2="İÇ");'Data(I)'!$BG3/2;EĞER(VE(C5="S2";E$2="B";F$2="İÇ");'Data(I)'!$BH3/2;EĞER(VE(C5="S3";E$2="G";F$2="İÇ");'Data(I)'!$BG3/4;EĞER(VE(C5="S3";E$2="B";F$2="İÇ");'Data(I)'!$BH3/4;))))))+EĞER(VE(C5="S1";E$2="G";F$2="DIŞ");'Data(I)'!$BO3;EĞER(VE(C5="S1";E$2="B";F$2="DIŞ");'Data(I)'!$BP3;EĞER(VE(C5="S2";E$2="G";F$2="DIŞ");'Data(I)'!$BO3/2;EĞER(VE(C5="S2";E$2="B";F$2="DIŞ");'Data(I)'!$BP3/2;EĞER(VE(C5="S3";E$2="G";F$2="DIŞ");'Data(I)'!$BO3/4;EĞER(VE(C5="S3";E$2="B";F$2="DIŞ");'Data(I)'!$BP3/4;))))))+EĞER(C5="KD";0;)

3) =EĞER(C5="M";H$3;EĞER(C5="2K";H$3;EĞER(C5="K";H$3*0,5;EĞER(C5="2Y";H$3*0,75;EĞER(C5="S1";H$3;EĞER(C5="S2";H$3*0,5;EĞER(C5="S3";H$3*0,25)))))))+EĞER(VE(C5="3K";E$2="G";F$2="İÇ");TOPLA(H$3/4)+('Data(I)'!$BG3/4);EĞER(VE(C5="3K";E$2="B";F$2="İÇ");TOPLA(H$3/4)+('Data(I)'!$BH3/4);EĞER(VE(C5="3K";E$2="G";F$2="DIŞ");TOPLA(H$3/4)+('Data(I)'!$BO3/4);EĞER(VE(C5="3K";E$2="B";F$2="DIŞ");TOPLA(H$3/4)+('Data(I)'!$BP3/4);EĞER(C5="KD";0)))))

Tekrar teşekkürler ediyorum,
 
Katılım
27 Haziran 2010
Mesajlar
394
Excel Vers. ve Dili
Türkçe 2010 Ofis
Ömer Hocam merhaba,

4 numaralı mesajdaki formülleri de kısaltman mümkünmü, çok makbule geçecek, bide 3.mesajdaki 5,5,2,1,6,7,8 ne anlama geliyor açıklarsan bende bişeler yaparım belki.tşk ederim
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Ömer Hocam merhaba,

4 numaralı mesajdaki formülleri de kısaltman mümkünmü, çok makbule geçecek, bide 3.mesajdaki 5,5,2,1,6,7,8 ne anlama geliyor açıklarsan bende bişeler yaparım belki.tşk ederim
Tek tek formüllerinizin mantığını çözüp sadeleştirme yapacak zamanım yok maalesef. Verdiğim formülün mantığıyla giderek bu işlemi sizde yapabilirsiniz.

-----------------------------------------------------------------------

Kısaca açıklamaya çalışayım fakat olayn üzerinde derinlemesine durmalısınız yoksa açıklamalar boşa gider.

=EĞER(C5="KD";0;KAYDIR('Data(II)'!$BE$3;;ARA(C5;{"2K";"2Y";"K";"M";"S1";"S2";"S3"};{5;5;2;1;6;7;8}+(F$2="DIŞ")*8)-1))

Tek şart olarak C5 hücresi KD olduğunda 0 olsun dediğiniz için şartın başına bunu yazdık.

Formülün diğer kısmı şartın alacağı hücrelerin sütun indisiyle ilgilidir. Kaydır fonksiyonunun mantığını kavrarsanız söylemek istediğimi daha kolay anlarsınız.

=kaydır(başvuru;satır;sütun;yükseklik;genişlik)

Satır, Yükseklik ve genişliği kullanmadığımız için üstünde durmayacağım.

burada başvuru sonucu hangi hücrede ise sütun indisinde belirteceğiniz sayı ile sonuc değişir.

Bizim formülde başvurmuz BE3 dür. Buna göre 5;5;2;1;6;7;8 değerleri ile şarta göre sütun indisleri belirlenir.

Örnek;

=kaydır(a1;;0) burada sütun indisi sıfır olduğu için formül a1 deki değeri verir.

=kaydır(a1;;1) burada sütun indisi 1 olduğu için formül b1 deki değeri verir.

=kaydır(a1;;2) burada sütun indisi 2 olduğu için formül c1 deki değeri verir.

Kısaca formülün yapısı bu şekildedir.

Excel Dersanesi bölümünde Kaydır fonksiyonuyla ilgili detaylı bilgiye ulaşabilirsiniz.

-----------------------------------------------------------------------

ARA(C5;{"2K";"2Y";"K";"M";"S1";"S2";"S3"};{5;5;2;1;6;7;8}+(F$2="DIŞ")*8)-1))

Burada C5 değeri;

2K olduğunda 5
2Y olduğunda 5
K olduğunda 2
M olduğunda 1
S1 olduğunda 6
S2 olduğunda 7
S3 olduğunda 8

değerlerini alır.

+(F$2="DIŞ")*8 ile de F2 değeri "dış" sonucunu üretirse F2=dış DOĞRU sonucunu döndürür üretmezse YANLIŞ sonucunu döndürür.

DOĞRU ve YANLIŞ 1 ve 0 mantıksal ifadelerdir.

*8 ile bu değer YANLIŞ ise 0*8 ile 0, DOĞRU ise 1*8 ile 8 değerini döndürür ve ara fonksiyonun sonucuna + ile ilave olur.

Söylediğim gibi bu sayılar sizin sütun indeksinizi bulmak içindir.

Kaydır da ilk başvurulan değeri BE3 seçtiğimiz için bu değerdedeki sütun indisini 0 kabul edip bundan sonrakileri 1,2,3 ... şeklinde artarak gideceğini düşünün. Sizdeki şart sonuc hücreleride bu şekilde ilerlemektedir.

Bakınız;

Ve "iç" Yada "Dış" seçeneklerini görmezden gelin. Çünkü bu iki şart arasında 8 sütunluk bir sıçrama vardı, bizde bu olayı +(F$2="DIŞ")*8 ilavesi ile çözmüştük. Aşağıdaki şartlarda sadece C5 in değerlerine dikkat edin.

ARA(C5;{"2K";"2Y";"K";"M";"S1";"S2";"S3"};{5;5;2;1;6;7;8}+(F$2="DIŞ")*8)-1))


*EĞER(VE(C5="M";F$2="İÇ");'Data(II)'!$BE3 ...... M ise BE3 olsun. Bizim ara şartımız da M değerinin karşılığı 1 dir.
+(F$2="DIŞ")*8 ilavesi iç olduğundan 0 sonucunu üretir sonraki -1 ilede sonuc dizini şu hali alır.

1+0-1 bu hesaplamada 0 a eşittir. Kaydır fonksiyonudan başlangıç BE3 alındığından bulduğumuz sütun indiside 0 olduğunda sonucu bize BE3 olarak verir. Bizim şartımızdaki sonucda bu idi.


*EĞER(VE( C5="K";F$2="İÇ");'Data(II)'!$BF3;...... K ise BF3 olsun. Bizim ara şartımız da K değerinin karşılığı 2 dir. +(F$2="DIŞ")*8 ilavesi iç olduğundan 0 sonucunu üretir sonraki -1 ilede sonuc dizini şu hali alır.

2+0-1 bu hesaplamada 1 a eşittir. Kaydır fonksiyonudan başlangıç BE3 alındığından bulduğumuz sütun indiside 1 olduğunda sonucu bize BF3 olarak verir. Bizim şartımızdaki sonucda bu idi.


*EĞER(VE(C5="S1";F$2="DIŞ");'Data(II)'!$BR3;...... S1 ise BR3 olsun. Bizim ara şartımız da S1 değerinin karşılığı 6 dir. +(F$2="DIŞ")*8 ilavesi "dış" olduğundan 8 sonucunu üretir sonraki -1 ilede sonuc dizini şu hali alır.

6+8-1 bu hesaplamada 13 a eşittir. Kaydır fonksiyonudan başlangıç BE3 alındığından bulduğumuz sütun indiside 13 olduğunda sonucu bize BR3 olarak verir. Bizim şartımızdaki sonucda bu idi.

Formülün açıklaması kısaca bu şekildedir.

Hızlı yazımdan dolayı yazım hataları varsa kusuruma bakmayın.

.
 
Katılım
30 Eylül 2009
Mesajlar
625
Excel Vers. ve Dili
excel 2016
Sayın Ömer uzmanım!!! benim gibi acemiler için iç içe geçmiş formüllerin mantığını kavrama noktasında çok faydalı izahatler çok teşekkür ederim.fonksiyonların tek başına kullanıldığında mantığı anlaşılabiliyor ancak farklı fonksiyonlar ile kullanıldığında mantığı kavramak uzmanlık gerektirmekte.siz ve değerli uzmanlarımız vakit buldukça bu tarz izahatlerde bulunurlar ise kendi adıma minnettar olurum. saygılar!!!
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Rica ederim. Yardımcı olabiliyorsak ne mutlu bize.

Sevgi ve saygılarımla.

.
 
Katılım
27 Haziran 2010
Mesajlar
394
Excel Vers. ve Dili
Türkçe 2010 Ofis
Merhaba Ömer hocam,

bana yardım için zaman harcamışsınız ne kadar teşekkür etsem azdır, tavsiyelerinizi tutup kaydır fonk.inceleyeceğim, deneye deneye benim çoklu eğeri sadeleştirmeye çalışacağım, sağol varol hakkınızı helal edin.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayın Ömer çok teşekkürler.
 

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Formülün açıklaması kısaca bu şekildedir.

.
Sn. Ömer bey,
"Formülün açıklaması kısaca bu şekildedir." kısa açıklaması buysa...

Sayenizde kaydır formülü ile tanışmış birisi olarak bu açıklamanızdan fazlasıyla faydalanacağım. Teşekkürler.
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhaba Ömer hocam

Sizin çözümlerinizi mümkün olduğunca bende takip ediyorum
gerçekten açıklamalarınız harikulade, bu sayede her seferinde yeniden öğreniyoruz
zamanınız oldukça karmaşık çözümlere açıklama eklerseniz minnetkar kalırız
saygılar...
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Ben teşekkür ederim arkadaşlar. Tabiki zaman buldukça açıklamaya çalışırım.

Sevgi ve saygılarımla.
 
Üst