IF formül kısaltma

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,202
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Beton döküm işinde işçilik maliyetlerini

0-20 m3 arası : 5 TL/m3
20-40 m3 arası : ilk 20 m3 için 5 TL/m3, kalanı 4 TL/m3
40-60 m3 arası : ilk 20 m3 için 5 TL/m3, 2. 20 m3 için 4 TL/m3, kalanı 3 TL/m3
60-80 m3 arası : ilk 20 m3 için 5 TL/m3, 2. 20 m3 için 4 TL/m3, 3. 20 m3 için 3 TL/m3, kalanı 2 TL/m3
80-100 m3 arası : ilk 20 m3 için 5 TL/m3, .................................................... , kalanı 1 TL/m3
100 m3 üstü : ilk 20 m3 için 5 TL/m3, .................................................... , kalanı 0,5 TL/m3

şeklinde (20 m3 lik dilimler halinde) aşağıdaki formulle hesaplamaktayım,

Kod:
=IF(B2<20;5*B2;IF(B2<40;(20*5)+(B2-20)*4;IF(B2<60;(20*5)+(20*4)+(B2-40)*3;IF(B2<80;(20*5)+(20*4)+(20*3)+(B2-60)*2;IF(B2<100;(20*5)+(20*4)+(20*3)+(20*2)+(B2-80)*1;(20*5)+(20*4)+(20*3)+(20*2)+(20*1)+(B2-100)*0,5)))))

bu formülü nasıl kısaltabilirim,

2. olarak kod yazarak kullanıcı tanımlı fonksiyona da dönüştürebiliriz.

iyi çalışmalar.
 

Ekli dosyalar

Kod:
=TOPLA.ÇARPIM(ARA((A12+SATIR(DOLAYLI("1:"&B12-A12+1))-1);A2:A7;D2:D7))
Bu şekilde deneyiniz.
 
Kod:
=TOPLA.ÇARPIM(ARA((A12+SATIR(DOLAYLI("1:"&B12-A12+1))-1);A2:A7;D2:D7))
Bu şekilde deneyiniz.

Sn Ömer maalesef sonuç alamadım; dosya üzerinde yazabilirmisiniz,

teşekkürler,
iyi çalışmalar.
 
Kod:
=SUMPRODUCT(LOOKUP((A12+ROW(INDIRECT("1:"&B12-A12+1))-1);A1:A6;D1:D6))

şeklinde yazın.

.

Sn Yurttaş öncelikle ben bu formülün
Kod:
[color=red][B]INDIRECT("1:"&B12-A12+1)[/B][/color]

kısmını anlamadım, nereye refere ediyor?

B12-A12+1=88-0+1=89 sonucunu veriyor.

iyi çalışmalar.
 
Yanlış mı hesaplıyor ?

Diğer bir konu formülün hesaplama mantığı B12-A12+1=88-0+1=89 bu şekilde değildir. Dizi içine girerek tüm verileri ayrı ayrı hesaplar.

.
 
Sn Ömer;

bu formülü' nün açılımını öğrenmeye çalışıyorum

INDIRECT("1:"&B12-A12+1)

ROW(INDIRECT("1:"&B12-A12+1))

LOOKUP((A12+ROW(INDIRECT("1:"&B12-A12+1))-1)

şeklinde giderek adım adım çözmeye çalışıyorum,

formülün çalışma mantığını kısaca anlatabilirmisiniz,

teşekkürler, iyi çalışmalar.
 
İmleç formüllü hücredeyken Görünüm / Araçlar Çubukları / Formül denetleme seçeneğini işaretleyin ve açılan menüdeki fx işaretine tıklarsanız formülün hesaplama mantığını adım adım görebilirsiniz. Bu işlemi yaparken aralığı kısa tutarsanız daha kolay görebilirsiniz..

.
 
Sn Yurttaş öncelikle ben bu formülün
Kod:
[color=red][B]INDIRECT("1:"&B12-A12+1)[/B][/color]

kısmını anlamadım, nereye refere ediyor?

B12-A12+1=88-0+1=89 sonucunu veriyor.

iyi çalışmalar.

.

Aslında formül:

Kod:
=SUM(LOOKUP((A12+ROW(INDIRECT("1:"&B12-A12+1))-1);A1:A6;D1:D6))

şeklinde bir dizi formülüdür.

Formülün temeli LOOKUP fonksiyonudur.

LOOKup ile A12 değerini, B12-A12 farkının (net) bir fazlasına ait bir dizideki elemanlarına ekletip, ortaya çıkan bu değerlerden 1 eksiltip, A1:A6'da, D1: D6 alanında bulmaktır.

Bunlar bulunduktan sonra, istersek SUM ile dizi formülü oluştururuz. İstersek SUM yerine SUMPRODUCT fonksiyonu kullanarak sonuca ulaşırız.

Kod:
=SUMPRODUCT(LOOKUP((A12+ROW(INDIRECT("1:"&B12-A12+1))-1);A1:A6;D1:D6))

.
 
.


Formülün temeli lookup fonksiyonudur.

Lookup ile a12 değerini, b12-a12 farkının (net) bir fazlasına ait bir dizideki elemanlarına ekletip, ortaya çıkan bu değerlerden 1 eksiltip, a1:a6'da, d1: D6 alanında bulmaktır.


.

Sn Yurrtaş Formül' ün geldiği son durum;
Kod:
=sumproduct(lookup(([color=red]{0;1;2;3;4;5;6;.....;81;82}[/color]);a1:a6;d1:d6))

lookup içindeki {0,1;2;3;4;5;6;.....;81;82} (0-82) arasındaki değerleri bu kadar uzatmadan kısaca yazmanın yolu yok mudur?

Örn:
Kod:
lookup({0-82})
gibi... 0 ile 82 arasındaki tüm degerler.


iyi Çalışmalar.
 
Sn Yurrtaş Formül' ün geldiği son durum;
Kod:
=sumproduct(lookup(([color=red]{0;1;2;3;4;5;6;.....;81;82}[/color]);a1:a6;d1:d6))

lookup içindeki {0,1;2;3;4;5;6;.....;81;82} (0-82) arasındaki değerleri bu kadar uzatmadan kısaca yazmanın yolu yok mudur?

Örn:
Kod:
lookup({0-82})
gibi... 0 ile 82 arasındaki tüm degerler.


iyi Çalışmalar.

.

Öyle bir yazım düzeni yok.

Burayı inceleyin.


Lookup-vlookup-hlookup



.
 
Geri
Üst