Personel Haftalık Prim hesaplama

Namık BOLAT

Altın Üye
Katılım
29 Mayıs 2014
Mesajlar
39
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
11-10-2029
İyi günler,
Bir güzellik merkezinde çalışanlara haftalık satışından %5 prim verilmek isteniyor. (Prim yüzdesi değişebilir.) Ben bir örnek yaptım ama toplam sayfasında devamlı çalışan adlarını ekleyip formülleri taşımak icab ediyor. Bunun daha mantıklı bir yolu varmı dır? ne yapılması gerek fikir verirseniz sevinirim. Çalışana bir sayfa açınca toplam sayfasına direk aktarma gibi. Şimdiden teşekkürler.
 

Ekli dosyalar

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
Merhaba,

Örnek dosyanızı görebilir miyiz?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makroyu bir modüle kopyalayıp deneyiniz:

PHP:
Sub toparla()
Set s1 = Sheets("Toplam")
eski = s1.Cells(Rows.Count, "A").End(3).Row
If eski < 5 Then eski = 5
s1.Range("A5:K" & eski).ClearContents
For i = 1 To Sheets.Count
    If Sheets(i).Name <> s1.Name And Sheets(i).Name <> "Sayfa1" And Sheets(i).Name <> "Sayfa2" Then
        yeni = s1.Cells(Rows.Count, "A").End(3).Row + 1
        s1.Cells(yeni, "A") = Sheets(i).Name
        s1.Cells(yeni, "B") = Sheets(i).[B2]
        s1.Cells(yeni, "C") = Sheets(i).[C2]
        s1.Cells(yeni, "D") = Sheets(i).[F2]
        s1.Cells(yeni, "E") = Sheets(i).[G2]
        s1.Cells(yeni, "F") = Sheets(i).[J2]
        s1.Cells(yeni, "G") = Sheets(i).[K2]
        s1.Cells(yeni, "H") = Sheets(i).[N2]
        s1.Cells(yeni, "I") = Sheets(i).[O2]
        s1.Cells(yeni, "J") = Sheets(i).[B2] + Sheets(i).[F2] + Sheets(i).[J2] + Sheets(i).[N2]
        s1.Cells(yeni, "K") = Sheets(i).[C2] + Sheets(i).[G2] + Sheets(i).[K2] + Sheets(i).[O2]
    End If
Next
For j = 2 To 11
    s1.Cells(2, j) = WorksheetFunction.Sum(Range(Cells(5, j), Cells(yeni, j)))
Next
End Sub
 

Namık BOLAT

Altın Üye
Katılım
29 Mayıs 2014
Mesajlar
39
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
11-10-2029
Aşağıdaki makroyu bir modüle kopyalayıp deneyiniz:

PHP:
Sub toparla()
Set s1 = Sheets("Toplam")
eski = s1.Cells(Rows.Count, "A").End(3).Row
If eski < 5 Then eski = 5
s1.Range("A5:K" & eski).ClearContents
For i = 1 To Sheets.Count
    If Sheets(i).Name <> s1.Name And Sheets(i).Name <> "Sayfa1" And Sheets(i).Name <> "Sayfa2" Then
        yeni = s1.Cells(Rows.Count, "A").End(3).Row + 1
        s1.Cells(yeni, "A") = Sheets(i).Name
        s1.Cells(yeni, "B") = Sheets(i).[B2]
        s1.Cells(yeni, "C") = Sheets(i).[C2]
        s1.Cells(yeni, "D") = Sheets(i).[F2]
        s1.Cells(yeni, "E") = Sheets(i).[G2]
        s1.Cells(yeni, "F") = Sheets(i).[J2]
        s1.Cells(yeni, "G") = Sheets(i).[K2]
        s1.Cells(yeni, "H") = Sheets(i).[N2]
        s1.Cells(yeni, "I") = Sheets(i).[O2]
        s1.Cells(yeni, "J") = Sheets(i).[B2] + Sheets(i).[F2] + Sheets(i).[J2] + Sheets(i).[N2]
        s1.Cells(yeni, "K") = Sheets(i).[C2] + Sheets(i).[G2] + Sheets(i).[K2] + Sheets(i).[O2]
    End If
Next
For j = 2 To 11
    s1.Cells(2, j) = WorksheetFunction.Sum(Range(Cells(5, j), Cells(yeni, j)))
Next
End Sub
Sayın Yusuf44 öncelikle teşekkür ederim. Makroyu modüle kopyaladım. Yeni kişi eklediğimde Toplam dada yeni kişi ekliyorum. Fakat her defasında makroyu çalıştırmam icap ediyor. bir yerde hatamı yapıyorum anlamadım. Yada toplam sayfasında bir hesaplatma düğmesimi ekleyelim ?
 

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
Sayın@ usubaykan bir sorum olacak. Bir sayfaya sadece Tarih, Adı Soyadı, Yapılan işlem ve Tutar yazsak. diğer başka bir sayfada haftalık yada aylık olarak filtre yapamaz mıyız acaba?
Öyle bir veri tabanı hazırlarsanız, işlemler daha kolay olur.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodları toplam sayfasının kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırırsanız, sayfayı her açtığınızda mevcut verileri günceller:


PHP:
Private Sub Worksheet_Activate()
Set s1 = Sheets("Toplam")
eski = s1.Cells(Rows.Count, "A").End(3).Row
If eski < 5 Then eski = 5
's1.Range("A5:K" & eski).ClearContents
For i = 1 To Sheets.Count
    If Sheets(i).Name <> s1.Name And Sheets(i).Name <> "Sayfa1" And Sheets(i).Name <> "Sayfa2" Then
        sonA = s1.Cells(Rows.Count, "A").End(3).Row
        If WorksheetFunction.CountIf(s1.Range("A1:A" & sonA), Sheets(i).Name) > 0 Then
            sat = WorksheetFunction.Match(Sheets(i).Name, s1.Range("A1:A" & sonA), 0)
        Else
            sat = sonA + 1
        End If
        s1.Cells(sat, "A") = Sheets(i).Name
        s1.Cells(sat, "B") = Sheets(i).[B2]
        s1.Cells(sat, "C") = Sheets(i).[C2]
        s1.Cells(sat, "D") = Sheets(i).[F2]
        s1.Cells(sat, "E") = Sheets(i).[G2]
        s1.Cells(sat, "F") = Sheets(i).[J2]
        s1.Cells(sat, "G") = Sheets(i).[K2]
        s1.Cells(sat, "H") = Sheets(i).[N2]
        s1.Cells(sat, "I") = Sheets(i).[O2]
        s1.Cells(sat, "J") = Sheets(i).[B2] + Sheets(i).[F2] + Sheets(i).[J2] + Sheets(i).[N2]
        s1.Cells(sat, "K") = Sheets(i).[C2] + Sheets(i).[G2] + Sheets(i).[K2] + Sheets(i).[O2]
    End If
Next
For j = 2 To 11
    s1.Cells(2, j) = WorksheetFunction.Sum(Range(Cells(5, j), Cells(sat, j)))
Next
Range("A5:K" & sat).Font.Name = "Microsoft Sans Serif"
Range("A5:K" & sat).Font.Size = 11
Range("J5:K" & sat).Font.Color = vbRed
Range("J5:K" & sat).Font.Bold = True
Range("B5:K" & sat).NumberFormat = "#,##0.00 $"
End Sub
 

Namık BOLAT

Altın Üye
Katılım
29 Mayıs 2014
Mesajlar
39
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
11-10-2029
Aşağıdaki kodları toplam sayfasının kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırırsanız, sayfayı her açtığınızda mevcut verileri günceller:


PHP:
Private Sub Worksheet_Activate()
Set s1 = Sheets("Toplam")
eski = s1.Cells(Rows.Count, "A").End(3).Row
If eski < 5 Then eski = 5
's1.Range("A5:K" & eski).ClearContents
For i = 1 To Sheets.Count
    If Sheets(i).Name <> s1.Name And Sheets(i).Name <> "Sayfa1" And Sheets(i).Name <> "Sayfa2" Then
        sonA = s1.Cells(Rows.Count, "A").End(3).Row
        If WorksheetFunction.CountIf(s1.Range("A1:A" & sonA), Sheets(i).Name) > 0 Then
            sat = WorksheetFunction.Match(Sheets(i).Name, s1.Range("A1:A" & sonA), 0)
        Else
            sat = sonA + 1
        End If
        s1.Cells(sat, "A") = Sheets(i).Name
        s1.Cells(sat, "B") = Sheets(i).[B2]
        s1.Cells(sat, "C") = Sheets(i).[C2]
        s1.Cells(sat, "D") = Sheets(i).[F2]
        s1.Cells(sat, "E") = Sheets(i).[G2]
        s1.Cells(sat, "F") = Sheets(i).[J2]
        s1.Cells(sat, "G") = Sheets(i).[K2]
        s1.Cells(sat, "H") = Sheets(i).[N2]
        s1.Cells(sat, "I") = Sheets(i).[O2]
        s1.Cells(sat, "J") = Sheets(i).[B2] + Sheets(i).[F2] + Sheets(i).[J2] + Sheets(i).[N2]
        s1.Cells(sat, "K") = Sheets(i).[C2] + Sheets(i).[G2] + Sheets(i).[K2] + Sheets(i).[O2]
    End If
Next
For j = 2 To 11
    s1.Cells(2, j) = WorksheetFunction.Sum(Range(Cells(5, j), Cells(sat, j)))
Next
Range("A5:K" & sat).Font.Name = "Microsoft Sans Serif"
Range("A5:K" & sat).Font.Size = 11
Range("J5:K" & sat).Font.Color = vbRed
Range("J5:K" & sat).Font.Bold = True
Range("B5:K" & sat).NumberFormat = "#,##0.00 $"
End Sub

Çok teşekkürler YUSUF44 hocam ellerinize sağlık.
 

Namık BOLAT

Altın Üye
Katılım
29 Mayıs 2014
Mesajlar
39
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
11-10-2029
Öyle bir veri tabanı hazırlarsanız, işlemler daha kolay olur.
Sayın Mahir64 Örnek veri dosyası olarak attım. Veri sayfasına Tarih, Personel Adı Soyadı, Yapılan İşlemler, Prim Oranı, İşlem Tutarı, ve Prim Hakediş olarak Toplam sayfasında tarih aralığı seçerek, haftalık yada aylık olarak görebilir miyiz? Diğer formüller işimi gördü aslında ama, Her defasında sayfa ekleme ve Excel çalışma sayfasını kopyalamak zorunda kalmamak adına, Veri ve Toplam sayfasında çözersek çok daha iyi olacak.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Özet tablo ile yaptığım ekli dosyayı inceleyin. Dosyada veri giriş kısmında tablo olarak biçimlendirme kullandım. Böylece alta veri ekledikçe tablo kendisini yeniler. Özet tablo sayfasında da kişi toplamları görünüyor. O sayfada üstteki zaman çizelgesi bölümünde istediğiniz döneme ait filtreleme yapabilirsiniz.
 

Ekli dosyalar

Namık BOLAT

Altın Üye
Katılım
29 Mayıs 2014
Mesajlar
39
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
11-10-2029
Özet tablo ile yaptığım ekli dosyayı inceleyin. Dosyada veri giriş kısmında tablo olarak biçimlendirme kullandım. Böylece alta veri ekledikçe tablo kendisini yeniler. Özet tablo sayfasında da kişi toplamları görünüyor. O sayfada üstteki zaman çizelgesi bölümünde istediğiniz döneme ait filtreleme yapabilirsiniz.

Sayın YUSUF44 çok değişik bir şey yapmışsınız. Ellerinize sağlık akşam detaylı inceleyebileceğim. Hakkınızı helal edin. 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
Merhaba,
@YUSUF44 Beyin özet tablo ile çözümü daha pratik ve kullanışlı olacaktır.
Ben size farklı bir alternatif sunayım. İnceleyin.

ÇOKETOPLA formülünü kullanmak isterseniz,
B2,
Kod:
=+ÇOKETOPLA(Veri!$E$2:$E$100;Veri!$A$2:$A$100;">="&$F$2;Veri!$A$2:$A$100;"<="&$F$3;Veri!$B$2:$B$100;$A2)
E2,
Kod:
=+ÇOKETOPLA(Veri!$F$2:$F$100;Veri!$A$2:$A$100;">="&$F$2;Veri!$A$2:$A$100;"<="&$F$3;Veri!$B$2:$B$100;$A2)
Harici link. Silinebilir. https://dosyam.org/Xku/BEB_Veri.xlsx
 

Ekli dosyalar

Son düzenleme:

Namık BOLAT

Altın Üye
Katılım
29 Mayıs 2014
Mesajlar
39
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
11-10-2029
Merhaba,
@YUSUF44 Beyin özet tablo ile çözümü daha pratik ve kullanışlı olacaktır.
Ben size farklı bir alternatif sunayım. İnceleyin.

ÇOKETOPLA formülünü kullanmak isterseniz,
B2,
Kod:
=+ÇOKETOPLA(Veri!$E$2:$E$100;Veri!$A$2:$A$100;">="&$F$2;Veri!$A$2:$A$100;"<="&$F$3;Veri!$B$2:$B$100;$A2)
E2,
Kod:
=+ÇOKETOPLA(Veri!$F$2:$F$100;Veri!$A$2:$A$100;">="&$F$2;Veri!$A$2:$A$100;"<="&$F$3;Veri!$B$2:$B$100;$A2)
Harici link. Silinebilir. https://dosyam.org/Xku/BEB_Veri.xlsx
Sayın Mahir64 Çok teşekkürler. Farklı bir alternatif çalışma olmuş. Excel'i çok seviyorum. excel.web.tr bana çok şey kattı. Ama formüllerde biraz sıkıntı yaşıyorum. Allah sizden ve YUSUF44 den razı olsun. Hakkınız helal edin.
 

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
Sayın @Mahir64 Çok teşekkürler. Farklı bir alternatif çalışma olmuş. Excel'i çok seviyorum. excel.web.tr bana çok şey kattı. Ama formüllerde biraz sıkıntı yaşıyorum. Allah sizden ve @YUSUF44 den razı olsun. Hakkınız helal edin.
excel.web.tr bana da çok şey kattı. Destek Ekibinde olmayı hak ediyor muyum bilmiyorum ama öğrenmeye devam ediyorum.
İyi çalışmalar.
 
Üst