Soru Alış faturalarındaki miktarlara göre fiyat kartlarını kullanarak maliyet hesaplama.

Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Arkadaşlar herkese merhaba. Öncelikle benzer bir çalışma yapıldı ise şimdiden özür dilerim. Ama oldukça karışık bir maliyet hesabı konusunda yardımınızı rica ediyorum.Örnek dosyadaki açıklama sekmesinde daha detaylı açıkladım ama biraz bahsetmem gerekirse elimizdeki ürün sayılarına göre bu ürünlerin maliyetini belirlemek istiyoruz. Bunu yaparken belirli tarih aralıklarına göre tanımlanan kampanya fiyatlarını kullanıyoruz.Anlaşılabilir olması için örnek dosyada bir kaç ürün için örnek verdim. Yardımlarınız için şimdiden teşekkür ediyorum. Anlaşılmayan bir kısım olursa lütfen sorunuz.Kolay gelsin...
 

Ekli dosyalar

Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Arkadaşlar tekrar merhaba. Cevap yazan olmamış ama örnek dosyada bir güncelleme yaptım.Bazı hücrelerde boşluk vardı onları düzelttim. Bu vesile ile istenilen şeyi bir kez daha açıklamak isterim.Elimizde bir gıda firmasının yıl sonu envanteri var ve biz bu ürünlerin maliyetini hesaplamaya çalışıyoruz. Sorun şu ki bir ürün yıl içinde bir kaç farklı fiyatta gelmiş olabilir. Mesela elimizde 95 adet ÜRÜN1 olsun ve bu ürünlerin geliş tarihleri ve geliş fiyatları şu şekilde olsun.

14.12.2017 tarihinde A FİRMASI 40 adet 8 TL
09.11.2017 tarihinde B FİRMASI 25 adet 9 TL
23.09.2017 tarihinde C FİRMASI 35 adet 7 TL

Dikkat edilirse tarihler yıl sonundan yıl başına doğru dizilmiş. Çünkü elimizdeki ürünlerde ilk gelen ilk satılır mantığıyla hareket ediyoruz.Bu ürünün maliyetini hesaplar isek

(40*8+25*9+30*7)/95=7,95 TL çıkıyor. Burada dikkat edilirse C firmasından gelen 35 adet ürün yerine 30 yazıldı. Çünkü 5 adet ürün satılmış ( ilk gelen ilk satılır mantığı). Buna matematikte ağırlıklı ortalama diyorlar sanırım. Bu şekilde basit gibi gözüküyor ama 1500 adet ürün olunca işler biraz zorlaşıyor.Bu sebeple yardımınızı rica ediyorum.Şimdiden teşekkürler kolay gelsin....
 

Ekli dosyalar

Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Arkadaşlar çok mu karışık sordum? Hiç yorumu olan yok mu? Aslında excel üstatları için oldukça basit bir algoritma ama sanırım ben anlatamadım ....
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Dosyanız eklidir.
"Stok" sayfasındaki "Hesapla" butonuna basarak sonuçları inceleyiniz.
Gerçek verilerinizle test etmek isterseniz; Stok sayfasının mevcut yapısın değiştirmeden,
A,B,C ve D sütunlarına verilerinizi doldurarak deneyebilirsiniz.
Aynı şekilde "ALIM FATURALARI" ve "FİYAT KARTLARI" sayfalarınızın başlık yapısını değiştirmeyin.(Verileri buna uygun değiştirebilir, ilave eksiltme yapabilirsiniz)
İyi çalışmalar...
 

Ekli dosyalar

Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Öncelikle cevap verdiğiniz için çok teşekkür ederim.Elinize sağlık. Lakin bazı hatalar var .Sanırım ben izah edemedim.Öncelikle ALIM FATURALARI sekmesinde P sütununda bazı ürünlerin bilgisi var.Bu algoritma ile alakalı mı ?

Detaylı şekilde eksiklikleri tespit edip akşam yazarım.Tekrar teşekkürler...
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
P sütunundaki Bilgiler, deneme sırasında Ürün Listesini görmek içindi, silebilirsiniz.

Hesaplamada kullanılan yöntem:
Stok Listesinde bulunan ürün:
1-Önce "ALIM FATURALARINDA" son tarihten ilk tarihe doğru aranır, stok miktarına ulaşana kadar fiyatları ve alımları tutarları değerlendirerek Ağırlıklı Ortalama ile Birim Fiyatı hesaplanır.
2-Ürün bulunamazsa Direkt olarak FİYAT KARTLARI sayfasından Listede ilk bulduğu fiyatı hesaplamada dikkate alır.
Siz denemelerinizi çeşitli açılardan yaparak sonucu bildirirseniz, uyumsuz olanlarda değişiklik yapılabilir.
İyi çalışmalar...
 
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Tekrar merhaba;

Kullanılan yöntem şu şekilde olmalıdır.
1-Elimizdeki ürün adedini stok bilgisinden alıyoruz.Örneğin X ürünü 130 adet.
2-Bu ürün Alım faturalarında ; alım sırası en yeniden en eskiye olacak şekilde

30.12.2017====>A firması ====> 40 adet ====>FİYAT4
25.11.2017====>A firması ====> 40 adet====>FİYAT5
18.11.2017====>B firması ====> 60 adet ====>FİYAT6


gelmiş.

3- Bizim için fiyat belirlemede öncelikli olan fiyat kartları. FİYAT KARTLARI sayfasında fiyat ararken akış şu şekilde olmalıdır.

Ürünün adı >>>>>>> Alış Faturasında ürünün geldiği firma >>>>> Alış faturasının tarihinin olduğu tarih aralığı (Dikkat edilirse tarih aralıkları tanımlı)

Yukarıdaki örnek için ;

X ürünü >>>>>>> A firması >>>>>>> 30.12.2017 tarihinin denk geldiği tarih aralığı >>>>>>> FİYAT1
X ürünü >>>>>>> A firması >>>>>>> 25.11.2017 tarihinin denk geldiği tarih aralığı >>>>>>> FİYAT2
X ürünü >>>>>>> B firması >>>>>>> 18.11.2017 tarihinin denk geldiği tarih aralığı >>>>>>> FİYAT3

şeklinde olacaktır.

maliyet = (40*FİYAT1+40*FİYAT2+50*FİYAT3) / 130 olacaktır. (40+40+50=130 olduğu için 60 yerine 50 oldu)

4-Eğer söz konusu ürün için FİYAT KARTLARI sayfasında bir tanımlama yok ise ;

a-Maliyet fiyatı için # Yok hatası verilebilir.Bu şekilde kullanıcı o fiyatı manuel olarak bulup girebilir.
b-FİYAT KARTLARI sayfasında olmayan bilgi ALIM FATURALARINDA söz konusu alımın fiyatı olarak belirlenebilir.

Bu iki seçenekten b seçeneği excelimizi daha kullanışlı kılacaktır.Yine örnek üzerinden gidecek olur isek mesela

X ürünü >>>>>>> B firması >>>>>>> 18.11.2017 tarihinin denk geldiği tarih aralığı

tarandığında herhangi bir fiyat tanımlaması yapılmamışsa fiyat olarak

18.11.2017====>B firması ====> 60 adet ALIM FATURASINDAKi fiyat alınabilir.Yani FİYAT6. Bu durumda;

maliyet = (40*FİYAT1+40*FİYAT2+50*FİYAT6) / 130 olacaktır. (40+40+50=130 olduğu için 60 yerine 50 oldu)

Veya başka bir örnek

X ürünü >>>>>>> A firması >>>>>>> 25.11.2017 tarihinin denk geldiği tarih aralığı
tarandığında herhangi bir fiyat tanımlaması yapılmamışsa fiyat olarak

25.11.2017====>A firması ====> 40 adet====>FİYAT5 alınabilir.Bu durumda ;

maliyet = (40*FİYAT1+40*FİYAT5+50*FİYAT3) / 130 olacaktır.

Özetlemek gerekirse fiyat bilgisini öncelikle FİYAT KARTLARI eğer orada bir bilgiye ulaşılamamışsa ALIM FATURASINDA arıyoruz.

Diğer bir seçenek olarak #YOK hatası da verebilir.

Umarım açıklayıcı olmuştur.Teşekkürler...
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
İhtiyaç karşılanmışsa alternatif olsun.
-- Belgenize GEÇİCİ adında bir boş sayfa ekleyin,
-- Boş bir modüle aşağıdaki kod blokunu yapıştırın ve çalıştırın.
İşlem sonuçları STOK sayfası P sütununa yazılır (STOK sayfası F:O sütun aralığında işlem yapılmaz).
ALIM FATİRALARININ, örnek belgenizdeki gibi 31.12'den 1.1'e doğru sıralandığı varsayıldı.
GEÇİCİ yerine başka bir adla sayfa ekleyecekseniz veya işlem sonuçlarını P sütunu yerine başka sütuna yazdırmak isterseniz;
kod'da ilgili kısımları (GEÇİCİ adı 1 yerde, P sütun adı ise biri [P : P], diğerleri "P" şeklinde olmak üzere 3 yerde var) değiştirebilirsiniz.
Kod:
Sub STOK_MALIYET_BARAN()
Set s = Sheets("STOK"): Set a = Sheets("ALIM FATURALARI")
Set f = Sheets("FİYAT KARTLARI"): Set brn = Sheets("GEÇİCİ")
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
sson = s.Cells(Rows.Count, 1).End(3).Row
s.[P:P].ClearContents
For sat = 2 To sson
        a.Range("A1:F1").AutoFilter Field:=3, Criteria1:=s.Cells(sat, 2).Text
    If a.Cells(Rows.Count, 1).End(3).Row > 1 Then
        brn.Cells.Clear: a.[A1].CurrentRegion.Copy brn.[A1]
        For brnsat = 2 To brn.Cells(Rows.Count, 1).End(3).Row
            ds = s.Cells(sat, 3)
            gelen = WorksheetFunction.Sum(brn.Range("D2:D" & brnsat))
            If gelen <= ds Then
                maliyet = maliyet + (brn.Cells(brnsat, 4) * brn.Cells(brnsat, 6))
                st = st + brn.Cells(brnsat, 4)
            Else
                fark = ds - st: st = st + fark
                maliyet = maliyet + (fark * brn.Cells(brnsat, 6))
            End If
            If st = ds Then
                dsfiyat = maliyet / ds: s.Cells(sat, "P") = dsfiyat
                maliyet = 0: gelen = 0: ds = 0: fark = 0: st = 0: dsfiyat = 0
                Exit For
            End If
        Next
    Else
        If WorksheetFunction.CountIf(f.[B:B], s.Cells(sat, 2)) > 0 Then _
        s.Cells(sat, "P") = f.Cells(WorksheetFunction.Match(s.Cells(sat, 2), f.[B:B], 0), 5)
    End If
Next
a.Range("A1:F1").AutoFilter Field:=3
brn.Cells.Clear
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "İşle tamamlandı.", vbInformation, "..:: Ömer BARAN :.."
End Sub
 
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Merhaba ;

Yardımınız için teşekkürler. GEÇİCİ adında yeni bir sayfa ekledim.Geliştirici bölümünden kod görüntüle yapıp verdiğiniz kodu kopyala yapıştır ile uyguladım. Çalıştır dediğimde ekteki hatayı aldım.Sebebi ne olabilir? Rica etsem deneyip çalışır halde dosya ekleyebilir misiniz ?
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Tekrar merhaba.

İşlemin uygulandığı belge ekte.
 

Ekli dosyalar

Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Ömer bey eklediğiniz dosya için teşekkürler. Lakin ben yine anlatamadım sanırım.Zira anlattığım şekilde çalışmıyor algoritma.Tekrar izah etmem gerekirse ;

1-Elimizde 2 farklı fiyat tanımlaması var.

a- GÖRÜNEN FİYAT = Alım faturalarında bize gelen ürünün görünen fiyatıdır.
b- GERÇEK FİYAT = Fiyat kartlarında yazılı olan çeşitli indirim ,kampanya vs. sonrasında ürünün gerçek fiyatı.

2- Biz bir ürünün maliyetini hesaplarken,

a- Öncelikle her zaman GERÇEK FİYATI dikkate alıyoruz.
b-Gerçek fiyat için bir bilgiye ulaşılamazsa ancak o zaman gerçek fiyat yerine GÖRÜNEN FİYATI kullanabiliriz.

3- Bir ürünün GERÇEK FİYATINI bulurken,

a- Ürünün fiyatını FİYAT KARTLARI sekmesinde buluyoruz.Bulma işlemini önce ürünün adı; sonra geldiği firma ve son olarak geldiği tarihin girdiği tarih aralığına bakarak buluyoruz.Sıralamanın bu şekilde olmasının sebebi en kısa yoldan GERÇEK FİYATA ulaşabilmek. Önce ürünün geldiği firma , sonra ürünün adı ve son olarak tarih aralığı olarak da gitsek aynı rakama ulaşırız ama sadece işlem süresi uzar. Bir ürünün en fazla 5-6 firmadan gelme olasılığı varken bir firmadan binlerce ürün gelmiş olabilir. Bu sebeple ilk yazdığım sıralama en kısa yol olanı. Bunlar ilave bilgiydi.Kafamız karışmasın.

b- 3a seçeneğinde izlenecek yolda gerekli olan 3 bilgi de (Ürünün adı - Ürünün geldiği firma - Ürünün geldiği tarih) ALIŞ FATURASINDA mevcuttur. Bu sırayla tarama yapılıp herhangi bir değere ulaşılamazsa (GERÇEK FİYAT) ; ancak o zaman alım faturasındaki fiyat (GÖRÜNEN FİYAT) kullanılabilir.

4- Elimizdeki ürün için hiç ALIM FATURASI yoksa (2017'de alım yapılmadığı anlamına gelir) direkt olarak fiyat olarak son tanımlanan kampanya fiyatı (GERÇEK FİYAT) kullanılabilir. Mesela X ürünü elimizde 80 adet var diyelim.(Bu bilgi stok sekmesinde mevcuttur). Ama ne zaman alındığı bilgisi için Alım faturalarını taradığımızda bu ürünün olmadığını görüyoruz diyelim (Yani bu ürün 2017 yılı öncesinden kalma). GERÇEK FİYAT için en yeni tarihli (yıl sonuna en yakın olan) kampanyayı dikkate alırız.

5-Elimizdeki ürün adedi alım faturalarından fazla ise , mesela elimizde Y ürününden 80 tane var ama alım faturalarında 5 adet alınmış gözüküyor.(Yani 5 tanesi 2017 yılında gelmiş 75 tanesi 2017 yılı öncesinde alınmış) Bu durumda da GERÇEK FİYATA ulaşıp (Bknz: 3a maddesi) 80 ürün için bu fiyatı dikkate alabiliriz.

Özetlemek gerekirse ilk hedef GERÇEK FİYATA ulaşmak.Olmazsa onun yerine GÖRÜNEN FİYATI kullanmak.

Diğer konular olan ağırlıklı fiyatlandırma ; ürün adedi tamamlanana kadar alış faturalarını (yıl sonundan yıl başına doğru) taramak gibi konuları önceden izah ettiğim için tekrar değinmiyorum.

Umarım bu sefer daha anlaşılır olmuştur.Şimdiden teşekkürler.Kolay gelsin...
 
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Tekrar merhaba ;

Yukarıdaki açıklamaları bir ürün ile örneklendireyim dedim. Gönderdiğiniz exceli incelediğimizde ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) ürünü yanlış hesaplanmış mesela.Şimdi akışı birlikte ele alalım.

1- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) ürünü elimizde 315 koli var (STOK SAYFASINDA bu bilgiyi alıyoruz)
2-
ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) ürünü yıl içinde şu şekilde alım görmüş. (ALIM FATURALARI sayfasından bu bilgiyi alıyoruz)


04.10.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 585,000 KOLİ -------- 22,44 ₺
28.09.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 180,000 KOLİ -------- 20,64 ₺
21.09.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 90,000 KOLİ -------- 20,64 ₺
13.09.2017-------- MOPAS MARKETCILIK GIDA SAN-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 180,000 KOLİ -------- 15,69 ₺
17.08.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 225,000 KOLİ -------- 20,64 ₺
24.07.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 405,000 KOLİ -------- 20,64 ₺
30.06.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI. -------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 270,000 KOLİ -------- 20,64 ₺
03.06.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 630,000 KOLİ -------- 20,64 ₺
02.05.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 385,000 KOLİ -------- 20,64 ₺
01.05.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 385,000 KOLİ -------- 20,64 ₺
19.04.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 330,000 KOLİ -------- 20,64 ₺
27.02.2017-------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 55,000 KOLİ -------- 18,04 ₺
14.02.2017 -------- BOGAZICI GIDA SAN.TIC.LTD.STI.-------- ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) -------- 110,000 KOLİ -------- 20,64 ₺

Burada ürünün yıl içinde 2 farklı firmadan geldiğini görüyoruz. (Tarihlerin yıl sonundan başına doğru olduğunu görüyoruz)

3- Elimizde 315 ürün vardı. Demek ki bu ürünler son alım olan

04.10.2017 BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 585,000 KOLİ 22,44 ₺

alımından gelmiş.Sadece bu alımı değerlendirmek yeterli olacaktır. Ama mesela elimizde 900 ürün olsa idi 585+180+90+45= 900 olduğundan

04.10.2017 BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 585,000 KOLİ 22,44 ₺
28.09.2017 BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 180,000 KOLİ 20,64 ₺
21.09.2017 BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 90,000 KOLİ 20,64 ₺
13.09.2017 MOPAS MARKETCILIK GIDA SAN.VE TIC. A.S. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 180,000 KOLİ 15,69 ₺

alışlarını değerlendirmek gerekecekti.

4-Son alım faturası yeterli demiştik. Buradaki fiyat 22,44 ₺ (GÖRÜNEN FİYAT) Ama bize GERÇEK FİYAT gerekiyor.Alış faturasını incelersek,

04.10.2017 BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 585,000 KOLİ 22,44 ₺

ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) ürünü BOGAZICI GIDA SAN.TIC.LTD.STI. firmasından 04.10.2017 tarihte alınmış.Fiyat kartlarını incelersek;



BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.12.2017 31.12.2017 16,20
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 14.10.2017 30.11.2017 16,20
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.10.2017 13.10.2017 16,20
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.07.2017 31.07.2017 16,44
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.08.2017 30.09.2017 16,20
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.06.2017 30.06.2017 16,44
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 12.04.2017 31.05.2017 16,44
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.04.2017 11.04.2017 14,35
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.03.2017 31.03.2017 14,35
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.02.2017 28.02.2017 14,35
BOGAZICI GIDA SAN.TIC.LTD.STI. ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*) 01.01.2017 31.01.2017 14,95

farklı tarihlerde farklı fiyatlarla geldiğini görüyoruz.Kampanya tarihlerinin birbirini tamamladığını görüyoruz. Bizim alım faturamızın tarihi (04.10.2017 ) 01.10.2017 13.10.2017 aralığına denk geldiği için GERÇEK FİYATIMIZ 16,20 oluyor.

GÖRÜNEN FİYAT = 22,44 ₺
GERÇEK FİYAT = 16,20 ₺

Bu durumda maliyet = (16,20*315) / 315 = 16,20 ₺ oluyor. Eğer o tarih için bir kampanya tanımlanmamış olsaydı ;
bu durumda maliyet = (22,44*315) / 315 = 22,44 ₺
olacaktı. Excelimiz de o sonucu veriyor zaten. Nasıl bir algoritma ile çalışıyor bilemiyorum ama umarım açıklayıcı olmuştur.Kolay gelsin....
 
Son düzenleme:

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Sayın @machool
Ekli dosyada; "STOK" sayfasında "Hesapla" butonuna basarak sonuçları inceleyiniz.
Farklı ürünler, stoklar değerler girerek TEST ediniz.
Herhangibir uyumsuzluk ve/veya fark gözlemlerseniz lütfen forumda açıklama yapınız.
İyi çalışmalar...
 

Ekli dosyalar

Son düzenleme:
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Sayın @turist cevabınız için teşekkürler.

İlerleyen saatlerde detaylı olarak test edeceğim.Ama ilk gözüme çarpan bir önceki mesajda anlattığım

ÇAMLICA 1,5 LT. (12*) SADE GAZOZ (55*)

ürününü yanlış hesaplaması. İsterseniz adım adım gidelim. Alış faturalarından fiyat bilgisi almayı şimdilik unutalım. Fiyatı sadece FİYAT KARTLARI sayfasından alalım. Orada bir fiyat bulunamaz ise "Fiyat Bulunamadı" yazalım. Şimdiden teşekkürler...

Not: Fiyat Kartlarında fiyat arama mantığı 2 önceki mesajda ifade edilmişti.
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Sayın @machool ,
#13 No.lu mesajımdaki eklediğim dosya güncellenmiştir.
Lütfen eski dosyayı indirdiyseniz siliniz.
Güncellenip eklenen dosyayı inceleyiniz ve görüşlerinizi bildiriniz.
İyi çalışmalar...
 
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Sayın @turist cevabınız için teşekkürler.

Hızlı bir şekilde incelediğimde son güncellemeden sonra doğru şekilde çalışıyor. Ama daha detaylı ve farklı senaryolar ile (Alış var-Kampanya yok ;Alış yok -Kampanya var; Alış var -Kampanya tarihleri dışında; Örnek ürünün 2 farklı firmadan gelmesi vesaire....) test ettikten sonra tekrar bilgi veririm. Tekrar teşekkürler...
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Rica ederim.
#12 No.lu mesajınızdaki gibi, senaryoları da örnekleştirirseniz; sanırım çalışma daha verimli olur.
İyi çalışmalar.
 
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Tekrar merhaba sayın @turist

Exceli incelerken basitten zora doğru gitmek adına önce tek ürün üzerinde denemeler yaptım.Tek ürün ;tek firma ;tek alış faturası vs...

Öncelikle çalışan senaryolar şu şekilde.

--------- 2017 ÖNCESİ
------------ ALIM ----------- ALIM FATURASINDA --- FİYAT KARTLARINDA----FİRMA DURUMU ----TARİH ARALIĞI ----- GERÇEK FİYAT
ÜRÜN -----VAR ------------------------YOK-------------------VAR--------------- ANLAMSIZ -----------ANLAMSIZ-------FİYAT KARTLARINDA

ÜRÜN -----YOK ------------------------VAR-------------------YOK -------------- ANLAMSIZ -----------ANLAMSIZ--------ALIM FATURASINDA
ÜRÜN -----YOK------------------------VAR------------------- VAR -------------- AYNI ----------------- TARİH DIŞI-------ALIM FATURASINDA
ÜRÜN-----YOK ------------------------VAR ------------------- VAR-------------- AYNI ------------------ TARİH İÇİ -------- FİYAT KARTLARINDA

ÜRÜN----- YOK------------------------ VAR------------------- VAR -------------- FARKLI -------------- ANLAMSIZ------- ALIM FATURASINDA

ÜRÜN-----VAR ------------------------VAR -------------------YOK -----------ANLAMSIZ----------- ANLAMSIZ----------- ALIM FATURASINDA (a1)
ÜRÜN----- VAR------------------------ VAR------------------- VAR -------------- FARKLI----------- -- ANLAMSIZ ------- ALIM FATURASINDA (a2)
ÜRÜN----- VAR------------------------ VAR ------------------- VAR -----------AYNI ----------------TARİH DIŞI ---------ALIM FATURASINDA (a3)
ÜRÜN----- VAR ------------------------ VAR-------------------VAR -----------AYNI--------------TARİH İÇİ -----------FİYAT KARTLARINDA (f)


Buraya bir excel eklemek yerine bu şekilde yazayım dedim okurken yorumlaması kolay olsun diye.
Yeşil ve kalın olan senaryolar gayet iyi çalışıyor. Kırmızı senaryolarda sıkıntı var. Şöyle ki 2017 öncesinde elimizde alım varsa (yani STOK SAYISI>Örnek ürünün 2017 alımları toplamı ise) algoritma hata veriyor. Elimizde X ürününden 100 adet var diyelim. 2017 içindeki alımlar 20 adet ,30 adet , 40 adet olsun. 20+30+40 = 90 yapar.2017 de 90 adet aldığımız halde 100 adet ürün varsa bunun 10 adedi 2017 öncesinden gelmektedir.

Burada excel şöyle bir hata yapıyor. (a) satırlarında fiyatı doğru yerden çağırıyor .Yani alım faturasından ama maliyeti hesaplarken;

Maliyet = (Alım adedi* Alım fiyatı) / Stok Adedi yapıyor. Ürünün hep 12 TL'den geldiğini varsayalım.
=(90*12)/100 yapıyor. Sanki 2017 öncesi ürünlerin maliyeti yok gibi kabul ediyor.Yapılması gereken
= (Alım adedi* Alım fiyatı) / Alım Adedi
=(90*12)/90 olmalıdır.Böylece 2017 öncesi alımları maliyet ortalamasının dışına aldık.

ÖZEL NOT AÇ:

Maliyet =(Stok adedi* Alım fiyatı) / Stok Adedi mantığıyla da hareket edebilirdik ama bu tüm alışların aynı fiyattan geldiği durumlar
=(100*12)/100 için geçerli olurdu.Hep 12 değil de 11 TL ;12 TL ; 18TL den gelirse bunun ağırlıklı ortalamasını alıp Alım fiyatı yerine kullanmak gerekir ki uzun iş. Kafa karıştırmamak için altı çizgili formül gayet kullanışlı. Böylece farklı fiyatlardan gelse bile

Maliyet = (20*11TL+30*12TL+40*18TL) / 90 şeklinde olayı çözüyoruz.

ÖZEL NOT KAPAT:



Benzer şekilde (f) satırlarında fiyatı doğru yerden çağırıyor .Yani FİYAT KARTLARINDAN ama maliyeti hesaplarken;

Maliyet = (Alım adedi* Kart fiyatı) / Stok Adedi yapıyor. Ürünün kampanyada 7 TL'den tanımlandığını varsayalım.
=(90*7)/100 yapıyor. Sanki 2017 öncesi ürünlerin maliyeti yok gibi kabul ediyor.Yapılması gereken
= (Alım adedi* Kart fiyatı) / Alım Adedi
=(90*7)/90 olmalıdır.

Farkı görebilmek adına tek bir ürüne maliyet hesaplatıp sonra o ürünün stok sayısını 10; 100; 1000; 10000 gibi artırıp her defasında maliyet hesaplatıldığında görülecektir ki stok sayısı arttıkça maliyet düşüyor.Oysa maliyetin sabit kalması gerekiyordu.Bir ürünün size maliyeti bellidir.Yıl sonunda elinizde 10 ürün veya 10.000 ürün kalmasına göre değişmez. Burada değişmesinin sebebi

Maliyet = (Alım adedi* Kart fiyatı) / Stok Adedi ------------------------formülünde paydaki değerler sabit kalırken (10; 100; 1000; 10000 artışında) paydadaki değerin artmasıdır.

Toparlamak gerekirse 2017 öncesinden ürün kalmışsa kafası karışıyor :) Yukarıda anlatılanların satır numaralarına göre örnek senaryo excellerini ekliyorum.

Not: (a) ve (f) satır numaraları senaryoları işaretlemek amaçlı verilmiştir (Kırmızı satırların sonuna dikkat). Eğer Alış adetlerinin toplamı elimizdeki stok miktarını geçiyorsa (tüm stok miktarının 2017 'de alındığı anlamına gelir) algoritma doğru çalışıyor. Kolay gelsin....
 

Ekli dosyalar

Son düzenleme:
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Tekrar merhaba ;

Exceli biraz daha inceleme şansım oldu. GERÇEK FİYAT ve GÖRÜNEN FİYAT mantığı oldukça iyi olmuş.

Gerçek fiyat aranırken sadece birebir uyan hallerde (Ürün adı >>> Firma Adı >>> Tarih Aralığı akışına göre) FİYAT KARTLARINDAN diğer hallerde ALIŞ FATURALARINDAN fiyat çağrılması mantığı çok iyi çalışıyor.

Çoklu alımlarda ( Birden fazla Alış faturasının olduğu durumlarda) bazı fiyatlar FİYAT KARTLARINDAN bazı fiyatlar ALIŞ FATURALARINDAN çağrılıyor. Nereden çağrılacağı Alış faturasının içindeki 3 bilgi (Ürün adı >>> Firma Adı >>> Tarih Aralığı) ile belirlenirken bu fiyatların adetleri yine ilgili Alış faturasının alım adedi oluyor.

Mesela COLA ürünü yılın ilk 4 ayında her ay 100 koli olarak 12 TL fiyatla alındı ve yıl sonu itibari ile elimizdeki stok 360 koli varsayarsak;


Cola Maliyeti =(60*12 TL+100*7 TL+100*12 TL+100*12 TL ) / 360 olacaktır. Burada ay sıralaması OCAK-ŞUBAT-MART-NİSAN olduğu aşikar. İlk gelen ürün ilk satılır mantığı. Peki neden şubat ayında ürün 7 TL ye düşmüş?

#Şubat ayı için FİYAT KARTLARINDA bir kampanya tanımlanmış olabilir.(Ürün adı >>>Firma adı>>>Tarih aralığı) Alış faturasına uyan ve 7 TL'ye ulaşılan
#Ürün B Firmasından 7 TL ye gelmiş olabilir.
#Ürün B Firması için 7 TL ye kampanya tanımlanmış olabilir.

Ürün FİYAT KARTLARINDA tanımlı ama firma tutmuyor ise veya firma tutuyor ama tarih aralığı tutmuyor ise buradan netice alamayan excel alış faturalarına bakıyor.Orada da bilgi bulamadıysa "Fiyat Bulunamadı" yazıyor ya cidden mükemmel.

Bunları sadece doğru anlaşılmış mı diye yazdım.Önceki mesajdaki hatamız halen baki.Şimdiden teşekkürler.Kolay gelsin...
 
Son düzenleme:
Katılım
17 Şubat 2010
Mesajlar
226
Excel Vers. ve Dili
excel 2007 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2020
Mesaj 18 'deki hatanın düzeltilmesi uğraştıracak ise alternatif çözüm olarak; tıpkı "Fiyat Bulunamadı" yazdığı gibi eğer STOK SAYISI > ALIŞ FATURALARI MİKTARLARI TOPLAMI durumu varsa (Önceki yıldan ürün olması durumu) "Devirli Ürün" yazılabilir...
 
Üst