Soru Belirli bir satış rakamına karşılık promosyon hesaplama

evrimmm

Altın Üye
Altın Üye
Katılım
6 Temmuz 2007
Mesajlar
35
Excel Vers. ve Dili
excel 2003
Altın Üyelik Bitiş Tarihi
06/01/2027
Arkadaşlar merhaba,
Elimde belirli bir ürün listesi ve satışlar var. Bu gerçekleşen satışlara karşılık bazı vermem gereken promosyon adetlerim var. Verilmesi gereken promosyon adetlerini hesaplayan bir program yapmak istiyorum fakat nasıl bir yol izleyeceğimi kestiremiyorum, yardımcı olabilir misiniz? Şimdiden ilginize teşekkür ederim.
 

Ekli dosyalar

evrimmm

Altın Üye
Altın Üye
Katılım
6 Temmuz 2007
Mesajlar
35
Excel Vers. ve Dili
excel 2003
Altın Üyelik Bitiş Tarihi
06/01/2027
Sevgili Mancubus emeğiniz için teşekkürler, formül olarak çok güzel bir çalışma olmuş. Ben bu formülü acaba makro ile yazabilir miyim yani yine index makrosunu mu kullanmalıyım, verilerim çok fazla var ve kasmadan çalışmasını istiyorum bu yüzden önceliğim makro ile bu hesaplamaları yapmak.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Evaluate fonksiyonu imdada yetişir.

dinamik alan kullanımın pratik bulduğum için o şekilde yaptım.
dosya ekte. tanımları bulabilirsiniz.

evaluate kullanımında, fonsiyonun değerlendireceği metinsel ifadenin içine hücrelerden gelen verileri nasıl entegre ettiğime ve bu veri metinsel ifade ise önüne ve arkasına tek tırnak eklediğime dikkat ediniz.

Kod:
Sub xlTR_174282()

    Dim i As Long
   
    With Worksheets("ÜRÜNLER_makro")
        For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
            .Range("C" & i).Value = Evaluate("=IFERROR(INDEX(nr1_prom,MATCH(" & .Range("B" & i) & ",IF(nr2_urun=""" & .Range("A" & i) & """,nr3_sadet),1),3)*INT(" & .Range("B" & i) & "/INDEX(nr1_prom,MATCH(" & Range("B" & i) & ",IF(nr2_urun=""" & .Range("A" & i) & """,nr3_sadet),1),2)),0)")
        Next i
    End With
   
End Sub
 

Ekli dosyalar

Son düzenleme:

evrimmm

Altın Üye
Altın Üye
Katılım
6 Temmuz 2007
Mesajlar
35
Excel Vers. ve Dili
excel 2003
Altın Üyelik Bitiş Tarihi
06/01/2027
Sayın Mancubus, bu makroları daha önce paylaşmış olduğunuz ek dosyada mı kullanmalıyım ?
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
mesajı düzeltirken dosyayı eklemeyi atlamışım.
kendi dosyanıza uyarlamanız gerekebilir.

veya kendi verilerinizi bu dosyaya kopyalayın.

benim dosyamda prom_şart isminde bir sayfa var.
siz sayfa adını değiştirebilirsiniz.
tüm koşullar burada tablo halinde.
bu tablodan hareketle tanımlanmış dinamik alanlar var.

ÜRÜNLER_makro isminde bir sayfa var.
siz sayfa adını değiştirebilirsiniz.
A ve B sütunlarına ürün ve satış adet bilgileri giriliyor.
eklediğim makro çalıştırıldığında C sütununda bir önceki dosyada formüllerin getirdiği rakamları getiriyor.
 

evrimmm

Altın Üye
Altın Üye
Katılım
6 Temmuz 2007
Mesajlar
35
Excel Vers. ve Dili
excel 2003
Altın Üyelik Bitiş Tarihi
06/01/2027
Sayın mancubus elinize sağlık çok teşekkürler mükemmel bir çalışma olmuş fakat ben bu kodları kendi dosyama uyarlamak istiyorum.
Dinamik alan dediğimiz yer ve makroda kodunda kullandığımız alanı kendimce düzenledim fakat makro çalışmadı. Sizin dosyanızda mükemmel çalışıyor fakat ben kendi excel dosyama geçirdiğimde malesef çalışmıyor, düzenleme kısmında mı hata yapıyorum acaba , yardımcı olabilir misiniz.
Ek dosyada gerekli açıklamaları yazdım.
 

Ekli dosyalar

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
dosyada benim verdiğim sayfa isimleri yerine başka sayfa ismi verebilirsiniz. bu takdirde kodda'da sayfa ismini güncellemek gerekir.

prom_şart sayfasındaki verileri kendi dosyanızda PRO HESAPLAMA PROGRAMI sayfasına almışsınız.
bu takdirde nr1_prom dinamik alanını
=OFFSET('PRO HESAPLAMA PROGRAMI'!$A$1;1;0;COUNTA('PRO HESAPLAMA PROGRAMI'!$A:$A)-1;COUNTA('PRO HESAPLAMA PROGRAMI'!$1:$1))
olarak tanımlayacaksınız.

nr2_urun ve nr3_sadet zaten n1_prom üzerinden tanımlı olduklarından bunları aynı şekilde yapmak yeterli.
nr2_urun =INDEX(nr1_prom;;1)
nr3_sadet =INDEX(nr1_prom;;2)

not1:
dosya ve sayfa isimlerinde boşluk bırakmak yerine alt çizgi karakterini kullanırsanız hem formüllerde hem makrolarda rahat edersiniz.

not2:
dinamik alanı formülle tanımladığınız sayfalarda asıl veri dışında başka hiç bir veriye resme falan yer vermeyin.
yani A1 hücresinden başlayan tablo o kadar. en azından belli bir tecrübeye ulaşana kadar.
 

Ekli dosyalar

Üst