• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

puantaj dağılımı

sahika51

Altın Üye
Katılım
28 Ekim 2006
Mesajlar
187
Excel Vers. ve Dili
2010-2019
İyi Günler, Eklediğim dosyaya gerekli açıklamaları yaptım. yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
 

Ekli dosyalar

Formülle yapmak isterseniz :

E5 hücresinde aşağıdaki formülü kullanın:

Kod:
=EĞER(E5="";"";TAVANAYUVARLA(MİN(TOPLA($E5:$I5);15)/BAĞ_DEĞ_SAY($E$5:$I$5);1))

F6 hücresinde aşağıdaki formülü kullanıp I6 hücresine kadar kopyalayın:

Kod:
=EĞER(F5="";"";MAK(0;MİN(15-TOPLA($E6:E6);TAVANAYUVARLA(15/BAĞ_DEĞ_SAY($E5:$I5);1))))

E7 hücresinde aşağıdaki formülü kullanın:

Kod:
=EĞER(YADA(E5="";TOPLA($E5:$I5)<15);"";TAVANAYUVARLA((TOPLA($E5:$I5)-TOPLA($E$6:$I$6))/BAĞ_DEĞ_SAY($E5:$I5);1))

F7 hücresinde aşağıdaki formülü kullanın ve I7'ye kadar kopyalayın:

Kod:
=EĞER(YADA(F5="";TOPLA($E5:$I5)<15);"";MAK(0;MİN(TOPLA($E5:$I5)-15-TOPLA($E7:E7);TAVANAYUVARLA((TOPLA($E5:$I5)-TOPLA($E6:$I6))/BAĞ_DEĞ_SAY($E5:$I5);1))))
 
Son düzenleme:
Teşekkür ederim. Ancak yeşil alana girdiğimiz değerler toplamı 15 in altında olduğu zaman sonuç hatalı çıkıyor.
Örneğin Pazartesi boş salı 3 çarşamba 4 perşembe 4 cuma 2 girelim sonuç hatalı oluyor. Çünkü yeşil alan toplamı 13 sarı alan toplamı 15 oluyor.
 
F6'da aşağıdaki formülü kullanıp sağa doğru kopyalayın:

Kod:
=EĞER(F5="";"";MAK(0;MİN(MİN(15;TOPLA($E5:$I5))-TOPLA($E6:E6);TAVANAYUVARLA(15/BAĞ_DEĞ_SAY($E5:$I5);1))))
 
Oluyor fakat, Burdaki S nin açılımı günlük çalıştığı saat. yeşil alana 3 5 2 7 2 = 19 gibi bir değer verdiğimizde; sarı alan yani (m) 3 3 3 3 3 oluyor,Mavi alanda 1 1 1 1 0 oluyor. Pratikte her şey doğru gibi görünüyor. Ancak;
PAZARTESİ SALI ÇARŞAMBA PERŞEMBE CUMA ....
S 3 5 2 7 2
M 3 3 3 3 3 ...
Ü 1 1 1 1 0
örnekteki dikkat edilmesi gerekn husus çarşamba çalıştığı saat 2 iken altta M kısmına 3 saat vermiş. Dolaysıyla g6 ve g7 toplamı g5 e eşit olmalı
 
Bunu daha önce belirtmemiştiniz. Hatta dosyanızda "3-KALAN 27 - 15= 12 Yİ E6-I6 MAVİ ALANA DAĞITILMASINI İSTİYORUM. TAM SAYI OLACAK" şeklinde belirtmiştiniz. Ben de sarı alandaki sistem kullanılacak diye düşünerek formülü yukardaki şekilde oluşturmuştum.

Son isteğinize göre E7 hücresinde aşağıdaki formülü kullanıp sağa doğru kopyalayın:

Kod:
=EĞER(E5="";"";MAK(0;E5-E6))

İçimden bir his sarı alandaki formülün de hatalı olduğunu söylüyor. Örneğin yeşil alana 1-3-4 yazdığımda sarı alana 3-5-0 yazıyor. Salı günü sarı yeşilden fazla oluyor.
 
Son düzenleme:
Program mantığı böyle bir şey demekki. Karşıdaki kişinin soracağı soruyu tahmin edebiliyorsunuz. Sarı alanın yeşilden büyük olmaması gerekiyor.
Eğer
S TOPLAMI 15 VEYA 15 TEN KÜÇÜK İSE YEŞİL ALAN YANİ (M) İLE SARI ALAN DEĞERLERİ AYNI OLACAK. ÖRNEĞİN YEŞİL 42-33 İSE SARIDA 42-33 OLACAK
ŞAYET BÜYÜK İSE ÖRNEĞİN DEĞERLER YEŞİL ALAN 7 2 6 2 5 SARI ALAN 3 2 4 2 4 =15 MAVİ ALAN DA 4 0 2 0 1 OLABİLİR. SARI VE MAVİ HÜCRELERİ TOPLADIĞIMIZDA ÜSTTEKİ YEŞİL ALAN OLUYOR O ZAMAN SORUN YOK
 
Tüm isteklerinizi aynı anda karşılayan formülü kuramadım maalesef. Sarı alanın tamsayı, toplamda 15 ve yeşil alandan küçük olma şartını beceremedim :(
 
teşekkür ederim uğraştınız hakkınızı helal edin.
 
Merhaba.

Konu Makro-VBA bölümünde açıldığına göre, makro ile çözüm önerisinde bulunayım.
Aşağıdaki kod'u ilgili sayfanın kod bölümüne yapıştırıp, ilgili satırlardaki sayılarda değişiklik yaparak sonucu gözlemleyin.
.
Kod:
[B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
If Target.Column < 5 Or Target.Column > 9 Then Exit Sub
If Int(Target.Row / 5) <> Target.Row / 5 Then Exit Sub
Range("E" & Target.Row + 1 & ":I" & Target.Row + 2).ClearContents

If WorksheetFunction.Sum(Range("E" & Target.Row & ":I" & Target.Row)) = 0 Then Exit Sub

If WorksheetFunction.Sum(Range("E" & Target.Row & ":I" & Target.Row)) < 15 Then
    For sut = 5 To 9
        Cells(Target.Row + 1, sut) = Cells(Target.Row, sut)
    Next
Else
20: For sut = 5 To 9
        If Cells(Target.Row, sut) > 0 And Cells(Target.Row + 1, sut) + 1 <= Cells(Target.Row, sut) _
            And WorksheetFunction.Sum(Range("E" & Target.Row + 1 & ":I" & Target.Row + 1)) + 1 <= 15 _
            Then Cells(Target.Row + 1, sut) = Cells(Target.Row + 1, sut) + 1
    Next
    If WorksheetFunction.Sum(Range("E" & Target.Row + 1 & ":I" & Target.Row + 1)) < 15 Then GoTo 20
    
    For sut = 5 To 9
        If Cells(Target.Row, sut) > 0 And _
            Cells(Target.Row, sut) - Cells(Target.Row + 1, sut) > 0 Then _
            Cells(Target.Row + 2, sut) = Cells(Target.Row, sut) - Cells(Target.Row + 1, sut)
    Next
End If
[B]End Sub[/B]
 
Ömer bey süpersiniz. Her şey tam istediğim gibi çalışıyor.
 
Bu dağılıma 10/1 lerde ilave edilirse mükemmel olur. (10 saate 1 saat, maksimum 30 saate 3 saat kadar )
 
Kartal aslında programa ugraşıyorum tamamlarsam burda paylaşacam
 
Geri
Üst