Ciro seviyesine göre farklı yüzdeli çarpma

Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe
Değerli arkadaşlar merhaba,
Öncelikle böylesi bir forum oluşturup insanlara yardımcı olduğunuz için hepinize teşekkür ediyorum.

Çözmeye çalıştığım bir sorunum var;
Bir hücredeki değer değiştikçe önceden belli olan 5 ayrı seviyedeki çarpana göre hesaplama yapacak bir formüle ihtyacım var.
Şöyleki;
Bir satış danışmanı
0-10.000TL arası bir ciro elde ettiğinde %2,
10.001-20.000TL arası bir ciro elde ettiğinde %3,
20.001-30.000TL arası bir ciro elde ettiğinde %4,
30.001 ve üzerinde %5 prim alacak.
35.000TL ciro elde eden bir danışmanın primi hesaplanırken 10.000TL ye kadar %2'den 200, 10001-20000tl arası için 300tl, 20001-30.000tl arası için 400tl, 30.0001 - 35.000tl arasındaki 5000tl için %5 ten 250 toplam1150tl hesaplayacak şekilde bir formül olmalı.
Bu çoklu EĞER ile çözülebilir mi yoksa makro mu yazılmalı?
Yardımcı olabilirseniz çok sevinirim.
Kolay gelsin.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
http://s2.dosya.tc/ gibi bir dosya sitesine örnek dosya ekleyip indirme adresini konunuza yazarsanız; hızlı cevap alabilmeniz yönünden daha iyi olacaktır.
 

parametre

Destek Ekibi
Destek Ekibi
Katılım
28 Ocak 2007
Mesajlar
1,585
Excel Vers. ve Dili
ofis 2010 turkce
ornek dosya eklemeniz gerekmezmiydi biraz daha ayrıntı anlatınız
 

parametre

Destek Ekibi
Destek Ekibi
Katılım
28 Ocak 2007
Mesajlar
1,585
Excel Vers. ve Dili
ofis 2010 turkce
toplam cironuz a2 oldugu varsayılarak yapıldı b2 ye bu formulu yazınız

Bilgilendirirseniz sevinirim.yoksa iletiyi silmek zorunda kalacağım kolay gelsin
Kod:
=EĞER(A2<=10000;A2*2/100;EĞER(VE(A2>10000;A2<=20000);10000*2/100+(A2-10000)*3/100;EĞER(VE(A2>20000;A2<=30000);10000*2/100+10000*3/100+(A2-20000)*4/100;EĞER((A2>30000);10000*2/100+10000*3/100+10000*4/100+(A2-30000)*5/100;" "))))
 
Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe
toplam cironuz a2 oldugu varsayılarak yapıldı b2 ye bu formulu yazınız

Bilgilendirirseniz sevinirim.yoksa iletiyi silmek zorunda kalacağım kolay gelsin
Kod:
=EĞER(A2<=10000;A2*2/100;EĞER(VE(A2>10000;A2<=20000);10000*2/100+(A2-10000)*3/100;EĞER(VE(A2>20000;A2<=30000);10000*2/100+10000*3/100+(A2-20000)*4/100;EĞER((A2>30000);10000*2/100+10000*3/100+10000*4/100+(A2-30000)*5/100;" "))))
Reel tabloma yazdım formülü ama hata verdi.Ben de yanlışlık yapmış olabilirim. Şİmdi dosya yükledim. Teşekkür ederim yardım gayretiniz için.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
İsterseniz soruyu baştan alın. İlk mesajınızda yazdıklarınızla örnek dosyanız biraz uzaklaşmış sanki.
 
Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe
isterseniz soruyu baştan alın. Ilk mesajınızda yazdıklarınızla örnek dosyanız biraz uzaklaşmış sanki.
prim skalası
0-40.000tl %48
40.001-70.000tl %52
70.001-100.000tl %56
100.001-130.000tl %60
130.0001 ve üzeri %64

a sütunu (gerçekleşen cirolar)
50.000tl
80.000tl
150.000tl

b sütunu
bayinin aldığı pay (örneğin 150.000tl ciro yaptıysa 40.000tl'si %48'den 30.000tl'si %52'den, 30.000tl'si %56'dan 30.000tl'si %60'dan 20.000tl'si %64'ten toplam bayi payı 82.400tl) benim hedefim bu 82.400tl'yi bulmak.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Ek dosyada KTF ile çözüm bulunuyor; işinize yarayabilir.
http://s2.dosya.tc/server3/0nalgc/ORNEK_PRIM.zip.html
Kod:
[SIZE="2"]Public Function Alan(ByVal bak1 As Range) As Double
Dim a As Double
Application.EnableEvents = True
Select Case bak1
Case 0 To 40000
a = bak1 * 0.48
Case 40001 To 70000
a = (40000 * 0.48) + ((bak1 - 40000) * 0.52)
Case 70001 To 100000
a = (40000 * 0.48) + (30000 * 0.52) + ((bak1 - 70000) * 0.56)
Case 100000 To 130000
a = (40000 * 0.48) + (30000 * 0.52) + (30000 * 0.56) + ((bak1 - 100000) * 0.6)
Case Is > 130000
a = (40000 * 0.48) + (30000 * 0.52) + (30000 * 0.56) + (30000 * 0.6) + ((bak1 - 130000) * 0.64)
End Select
 Alan = a
End Function [/SIZE]
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Makro ile hesaplama daha kolay görünüyor.

Hücreye =BayiPayı(150000) veya =BayiPayı(A2) formülü yazarsanız sonuç alırsınız.

Dosya : http://s2.dosya.tc/server3/u7nu30/Kopya_ORNEK_PRIM.zip.html

Kod:
[SIZE=2]Function BayiPayı(Tutar As Double) As Double
    Select Case Tutar
        Case 0 To 40000
            BayiPayı = Tutar * 0.48
        Case 40001 To 70000
            BayiPayı = IIf(Tutar > 70000, 30000 * 0.52, (Tutar - 40000) * 0.52) + BayiPayı(40000)
        Case 70001 To 100000
            BayiPayı = IIf(Tutar > 100000, 30000 * 0.56 + BayiPayı(40000), (Tutar - 70000) * 0.56) + BayiPayı(70000)
        Case 100001 To 130000
            BayiPayı = IIf(Tutar > 130000, 30000 * 0.6, (Tutar - 100000) * 0.6) + BayiPayı(100000)
        Case Is >= 130001
            BayiPayı = BayiPayı(130000) + (Tutar - 130000) * 0.64
    End Select
End Function[/SIZE]
 
Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bu normal bir durum. Kendi dosyanıza makro kodunu eklemeniz gerekiyor.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Formülün çalışması için sizin tablonuzun bulunduğu dosyanın (Alt+f11 ile) kod sayfasını açıp ("Insert" ten) bir modül ekleyerek eklediğim dosyanın modülündeki kodları ekleyip "makro içeren dosya" olarak farklı kaydediniz.
 
Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe
Makro ile hesaplama daha kolay görünüyor.

Hücreye =BayiPayı(150000) veya =BayiPayı(A2) formülü yazarsanız sonuç alırsınız.

Dosya : http://s2.dosya.tc/server3/u7nu30/Kopya_ORNEK_PRIM.zip.html

Kod:
[SIZE=2]Function BayiPayı(Tutar As Double) As Double
    Select Case Tutar
        Case 0 To 40000
            BayiPayı = Tutar * 0.48
        Case 40001 To 70000
            BayiPayı = IIf(Tutar > 70000, 30000 * 0.52, (Tutar - 40000) * 0.52) + BayiPayı(40000)
        Case 70001 To 100000
            BayiPayı = IIf(Tutar > 100000, 30000 * 0.56 + BayiPayı(40000), (Tutar - 70000) * 0.56) + BayiPayı(70000)
        Case 100001 To 130000
            BayiPayı = IIf(Tutar > 130000, 30000 * 0.6, (Tutar - 100000) * 0.6) + BayiPayı(100000)
        Case Is >= 130001
            BayiPayı = BayiPayı(130000) + (Tutar - 130000) * 0.64
    End Select
End Function[/SIZE]
Bu beni aştı üstat. Anlamadım ne yapmam gerektiğini :)
Yine de teşekkür ederim.
 
Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe
Zeki Gürsoy ve Plint.
Vallahi zorla yaptırdınız :)
Çok ama çok teşekkür ederim.
Hayatımı çok kolaylaştırdınız.

Allah razı olsun...
 
Katılım
23 Aralık 2016
Mesajlar
11
Excel Vers. ve Dili
2010 türkçe
Arkadaşlar son bir desteğe ihtiyacım var.
Makroyu yazdıktan sonra dosyayı kaydetmeye çalıştığımda "makro içermeyen dosyaya kaydedemezsin" diye bir mesaj veriyor.
Ne yapmalıyım?
 
Üst