[Yardım]  Ortalama ve Rank Hesabı

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Cevap: Ortalama ve Rank Hesabı

İleti#21)  feraz » 20 Haz 2019 23:06

Bir deneyiniz hocam.Kodlarda Türkçe karakterler kullanmazsanız ileride sıkıntı yaşamazsınız.
Dosyaya formüllü sütunlarda ekledim karşılaştırmanız için.
Onları silebilirsiniz.

Kod: Tümünü seç
Option Base 1

Dim dic As Object, alan, sondan As Integer, ilk As Integer

Sub teksinif()

    Dim kriter As String
    Dim syf1 As Worksheet
    Set syf1 = Sheets("Sayfa1")
    Application.ScreenUpdating = False
    Set dic = CreateObject("Scripting.Dictionary")
   
    son = syf1.Cells(Rows.Count, 1).End(3).Row
    If son < 4 Then son = 4
    syf1.Range("N4:N" & Rows.Count).ClearContents
    alan = syf1.Range("B4:B" & son).Value
   
    With dic
        For i = 1 To UBound(alan)
            kriter = alan(i, 1)
            If Not .exists(kriter) Then
                .Add kriter, 1
                 ilk = syf1.Range("B:B").Find(kriter, , , 1).Row
                 sondan = syf1.Range("B:B").Find(What:=kriter, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, lookat:=xlWhole).Row
                Call SýnýfSýralamalarý
            End If
        Next
    End With
    Application.ScreenUpdating = True
    Set dic = Nothing: Erase alan: Set syf1 = Nothing: ilk = Empty: sondan = Empty


End Sub


Kod: Tümünü seç
Sub SýnýfSýralamalarý()
Application.ScreenUpdating = False
    Dim Ortalamalar() As Double
    Dim Notlar As Variant
    Dim NotSayýsý As Integer
    Dim Kaçýncý As Integer
    Dim syf1 As Worksheet
   
    Set syf1 = Sheets("Sayfa1")

    With syf1
       
       Notlar = .Range("G" & ilk & ":K" & sondan).Value
       
        ReDim Ortalamalar(1 To UBound(Notlar))
        ReDim Sýralamalar(1 To UBound(Notlar), 1 To 1)
       
            For i = 1 To UBound(Notlar)
                NotSayýsý = 0
                For k = 1 To 5
                    If Notlar(i, k) <> "" Then NotSayýsý = NotSayýsý + 1
                Next
                Ortalamalar(i) = (CDbl(Notlar(i, 1)) + CDbl(Notlar(i, 2)) + CDbl(Notlar(i, 3)) + CDbl(Notlar(i, 4)) + CDbl(Notlar(i, 5))) / NotSayýsý
            Next i
           
            For j = 1 To UBound(Notlar)
                Kaçýncý = 1
                For i = 1 To UBound(Notlar)
                    If Ortalamalar(i) < Ortalamalar(j) Then Kaçýncý = Kaçýncý + 1
                Next i
                    Sýralamalar(j, 1) = Kaçýncý
            Next j
           
           
            .Range("N" & ilk & ":N" & sondan).Value = Sýralamalar
    End With
Erase Sýralamalar: Erase Ortalamalar: Erase Notlar: Set syf1 = Nothing
Application.ScreenUpdating = True
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Ortalama ve Rank Hesabı

İleti#22)  Mesut Topal » 21 Haz 2019 08:50

Harika olmuş. Ellerinize, zihninize sağlık Hocam.
(Rahat anlamam için benim kullandığım kısaltmaları seçmişsiniz, onun için de ayrıca teşekkürler)

Buradan öğrenmek istediğim bir kaç şey var.

Öncelikle şu nesne; daha önce hiç kullanmamıştım.
Set dic = CreateObject("Scripting.Dictionary")
If Not .exists(kriter) Then
.Add kriter, 1
Bu üç yerde nasıl bir etkisi oluyor?

Sonra; "ilk" ve "sondan" tanımlamalarını "teksinif" isimli procedure içinde oluşturup, "SınıfSıralamaları" isimli procedure de kullanmışsınız. Public olarak tanımlamadan nasıl diğer procedure lerde kullanıldı? :?

Allah razı olsun.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 32
İleti: 399
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Ortalama ve Rank Hesabı

İleti#23)  feraz » 21 Haz 2019 09:34

Rica ederim hocam.
Dictionay kullanma amacım 11a,11b ... gibi trje düşürmekti.
Sonra bulunanların il satırını ilk değişkeninden son satırınıda sondan satır numarasını buldurarak işlem yaptırttım.

Bu diconary olayını tamamen bendr kavrayamadım :)

Punlic yapmanın amacı ilk ve sondan bulunan satır noları diğer dybta kod çalışırken hafızadan silinmemesiydi.

F8 ile teksinif subunu adım adım çalıştırırsanız tam anlarsınız.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Ortalama ve Rank Hesabı

İleti#24)  feraz » 21 Haz 2019 09:37

Bu arada B sütunundaki sınıf adları ardışık olmalu.Yani 11a...11bbb... gibi.Değilse kod yanlış sonuç verir.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Ortalama ve Rank Hesabı

İleti#25)  Mesut Topal » 21 Haz 2019 09:54

Benim için çok faydalı bir başlık oldu.
Kodlarınızdan bir çok şeyler öğrendim.

Hocam, ilk ve sondantanımları public değil. Ama başka procedure de kullanılabiliyor. "Çalışmaması gerekir" diye öğrenmiştim.

Evet; sınıf listesi konusunda kısıtlama olduğunu farkettim. Öğrenci listesi sınıf sınıf gruplu olmalı. Bi 11A dan bi 11C den peşine yine 11A dan olursa kod çalışmıyor.

Tamda bir sonraki sorum bu olacaktı :D [evet]

1.Soru: Öğrenci okulda kaçıncı? (Bu tamam)
2.Soru: Öğrenci kendi sınıfında kaçıncı? (Bu da tamam)
3.Soru: Öğrenci seçilen sınıflar içinde kaçıncı?

Şimdi; Üstadım,
Şöyle bir soru sorsam.
listedeki bir öğrenciyi seçelim.

SecilenOgrenciSiraNo = 15
SeçilenSınıflar = Array("11A", "11C", "11D")
cells(1,13).value = Öğrenci Seçilen sınıfların içinde kaçıncı?
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 32
İleti: 399
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Ortalama ve Rank Hesabı

İleti#26)  feraz » 21 Haz 2019 09:58

Sorunuza akşam bakabilirim hocam.
Evet acele yazdım publib diye.

O modül içinde public gibi bişey oluyor.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Cevap: Ortalama ve Rank Hesabı

İleti#27)  feraz » 21 Haz 2019 10:04

Mesut Topal yazdı:Harika olmuş. Ellerinize, zihninize sağlık Hocam.
(Rahat anlamam için benim kullandığım kısaltmaları seçmişsiniz, onun için de ayrıca teşekkürler)

Buradan öğrenmek istediğim bir kaç şey var.

Öncelikle şu nesne; daha önce hiç kullanmamıştım.
Set dic = CreateObject("Scripting.Dictionary")
If Not .exists(kriter) Then
.Add kriter, 1
Bu üç yerde nasıl bir etkisi oluyor?

Sonra; "ilk" ve "sondan" tanımlamalarını "teksinif" isimli procedure içinde oluşturup, "SınıfSıralamaları" isimli procedure de kullanmışsınız. Public olarak tanımlamadan nasıl diğer procedure lerde kullanıldı? :?

Allah razı olsun.


Public olarak tanımlamadan function(xx) gibi yada başka yoldanda olabilirdi.Akşam öyle örnekte yaparım.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Cevap: Ortalama ve Rank Hesabı

İleti#28)  feraz » 21 Haz 2019 10:25

Mesut Topal yazdı:Benim için çok faydalı bir başlık oldu.
Kodlarınızdan bir çok şeyler öğrendim.

Hocam, ilk ve sondantanımları public değil. Ama başka procedure de kullanılabiliyor. "Çalışmaması gerekir" diye öğrenmiştim.

Evet; sınıf listesi konusunda kısıtlama olduğunu farkettim. Öğrenci listesi sınıf sınıf gruplu olmalı. Bi 11A dan bi 11C den peşine yine 11A dan olursa kod çalışmıyor.

Tamda bir sonraki sorum bu olacaktı :D [evet]

1.Soru: Öğrenci okulda kaçıncı? (Bu tamam)
2.Soru: Öğrenci kendi sınıfında kaçıncı? (Bu da tamam)
3.Soru: Öğrenci seçilen sınıflar içinde kaçıncı?

Şimdi; Üstadım,
Şöyle bir soru sorsam.
listedeki bir öğrenciyi seçelim.

SecilenOgrenciSiraNo = 15
SeçilenSınıflar = Array("11A", "11C", "11D")
cells(1,13).value = Öğrenci Seçilen sınıfların içinde kaçıncı?

Listedeki öğrenci nasıl seçilecek.
Belli bir satırdan veri doğrulama ile mi?
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Cevap: Ortalama ve Rank Hesabı

İleti#29)  feraz » 21 Haz 2019 10:53

Mesut Topal yazdı:Benim için çok faydalı bir başlık oldu.
Kodlarınızdan bir çok şeyler öğrendim.

Hocam, ilk ve sondantanımları public değil. Ama başka procedure de kullanılabiliyor. "Çalışmaması gerekir" diye öğrenmiştim.

Evet; sınıf listesi konusunda kısıtlama olduğunu farkettim. Öğrenci listesi sınıf sınıf gruplu olmalı. Bi 11A dan bi 11C den peşine yine 11A dan olursa kod çalışmıyor.

Tamda bir sonraki sorum bu olacaktı :D [evet]

1.Soru: Öğrenci okulda kaçıncı? (Bu tamam)
2.Soru: Öğrenci kendi sınıfında kaçıncı? (Bu da tamam)
3.Soru: Öğrenci seçilen sınıflar içinde kaçıncı?

Şimdi; Üstadım,
Şöyle bir soru sorsam.
listedeki bir öğrenciyi seçelim.

SecilenOgrenciSiraNo = 15
SeçilenSınıflar = Array("11A", "11C", "11D")
cells(1,13).value = Öğrenci Seçilen sınıfların içinde kaçıncı?

Array sorusu için şöyle mantık olabilir.

For i 4 to sonsatır
For j = lbound(seçilensiniflar) to ubound(seçilen siniflar)
Buraya şartlı if arama kodları yazılır
Next
Next
Kodu mobilden yazdım yanlış olabilir.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Ortalama ve Rank Hesabı

İleti#30)  Mesut Topal » 21 Haz 2019 15:13

Hocam, son sorumu da çözüme kavuşturdum.
Öğrencilere karne hazırlıyorum.
Deneme sınav sonuçlarını,
Yazılı, ödev,...vs sonuçlarını içerecek.

1.png

2.png


buraya kadar tamam :)

Kodları da şu oldu:

Kod: Tümünü seç
Sub ÖğrenciAnalizleri()
Application.ScreenUpdating = False
On Error Resume Next

If UserFormYükleSET.Cells(2, 1) = "Takip1" Then
    Set Takip = Takip1SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip2" Then
    Set Takip = Takip2SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip3" Then
    Set Takip = Takip3SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip4" Then
    Set Takip = Takip4SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip5" Then
    Set Takip = Takip5SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip6" Then
    Set Takip = Takip6SET
End If

Call PublicSeçilenSınıflar '*************************************************

On Error Resume Next
Dim i, t, n, SeçilenÖğrenci, KayıtSayısı As Integer
Dersler = Array(7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 44, 45, 46, 47, 48)
DerslerNet = Array(9, 13, 17, 21, 25, 29, 33, 37, 41, 43, 44, 45, 46, 47, 48)
DersBaşlıkları = Array("MATEMATİK", "FİZİK", "KİMYA", "BİYOLOJİ", "TÜRKÇE", "TARİH", "COĞRAFYA", "FELSEFE", "DİN KÜLTÜRÜ", "SAYISAL", "EŞİT AĞIRLIK", "SÖZEL", "FEN", "SOSYAL", "TOPLAM")
KaçıncıDers = UserFormYükleSET.Cells(5, 1).value
KayıtSayısı = Int(Takip.Cells(1, Columns.Count).End(1).Column / 43)

'ÖĞRENCİ İSTATİSTİKLERİ e-OKul SIRALI DEĞİL İSE, YENİDEN SIRALA
If Optik.ÖğrenciAnaliziFiltre0 = False Then
    Optik.ÖğrenciAnaliziFiltre0 = True 'ÖĞRENCİ BOŞLUKSUZ NET DEĞİŞİMİ, ÖNCE ÖĞRENCİ İSTATİSTİKLERİNİ e-OKUL SIRALI YAP
    Call Öğrenciİstatistikleri
End If

'ARANAN ÖĞRENCİ KAÇINCI SATIRDA
With ÖğrenciListesiSET
For i = 4 To son
    If Optik.ArananÖğrenci = .Cells(i, 2) & " " & .Cells(i, 3) & " " & .Cells(i, 4) & " " & .Cells(i, 5) Then
        SeçilenÖğrenci = i
        Exit For
    End If
Next i
End With

With GrafikListeleriSET
    'ÖĞRENCİ GELİŞİM TABLOSU
    BaşlangıçSatırı = 46
    .Cells(4 + BaşlangıçSatırı, 3).Resize(7, 300).ClearContents 'TEMİZLİK
    .Cells(3 + BaşlangıçSatırı, 2).value = DersBaşlıkları(KaçıncıDers) 'GELİŞİM TABLOSU BAŞLIĞI
   
    'ÖĞRENCİ GELİŞİM SATIRLARINI DOLDUR
    t = KaçıncıDers 'SEÇİLİ OLAN DERS
    For i = 1 To KayıtSayısı
        .Cells(3 + BaşlangıçSatırı, i + 2).value = i 'SORU SAYILARI
        If Takip.Cells(son + 2, i * 43 - 43 + Dersler(t)) <> "" Then   'SORU SAYISI 0 DEĞİLSE DEVAM ET
            .Cells(4 + BaşlangıçSatırı, i + 2).value = Takip.Cells(son + 2, i * 43 - 43 + Dersler(t)).value 'SORU SAYILARI
            .Cells(5 + BaşlangıçSatırı, i + 2).value = Takip.Cells(son + 3, i * 43 - 43 + Dersler(t)).value 'DENEME NET ORTALAMALARI
            .Cells(6 + BaşlangıçSatırı, i + 2).value = Application.WorksheetFunction.RoundUp(100 * Takip.Cells(son + 3, i * 43 - 43 + Dersler(t)).value / Takip.Cells(son + 2, i * 43 - 43 + Dersler(t)).value, 0)   'DENEME BAŞARI YÜZDESİ
            If Takip.Cells(SeçilenÖğrenci, i * 43 - 43 + DerslerNet(t)) <> "" Then 'ÖĞRENCİ DENEMEYE GİRMİŞSE DEVAM ET
                .Cells(7 + BaşlangıçSatırı, i + 2).value = Takip.Cells(SeçilenÖğrenci, i * 43 - 43 + DerslerNet(t)).value   'ÖĞRENCİ NETİ
                .Cells(8 + BaşlangıçSatırı, i + 2).value = Application.WorksheetFunction.RoundUp(100 * Takip.Cells(SeçilenÖğrenci, i * 43 - 43 + DerslerNet(t)).value / Takip.Cells(son + 2, i * 43 - 43 + Dersler(t)).value, 0) 'ÖĞRENCİ BAŞARI YÜZDESİ
                    Takip.AutoFilterMode = False
                    Takip.Range("B3:BBB" & son).AutoFilter Field:=1, Criteria1:=Takip.Cells(SeçilenÖğrenci, 2).value 'ÖĞRENCİNİN SINIF SIRALAMASI
                .Cells(9 + BaşlangıçSatırı, i + 2).value = Application.WorksheetFunction.Rank(Takip.Cells(SeçilenÖğrenci, i * 43 - 43 + DerslerNet(t)).value, Takip.Cells(4, i * 43 - 43 + DerslerNet(t)).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
                    Takip.AutoFilterMode = False
                    Takip.Range("B3:BBB" & son).AutoFilter Field:=1, Criteria1:=Array(SeçilenSınıflarınListesi), Operator:=xlFilterValues 'ÖĞRENCİNİN OKUL SIRALAMASI
                .Cells(10 + BaşlangıçSatırı, i + 2).value = Application.WorksheetFunction.Rank(Takip.Cells(SeçilenÖğrenci, i * 43 - 43 + DerslerNet(t)).value, Takip.Cells(4, i * 43 - 43 + DerslerNet(t)).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
                    Takip.AutoFilterMode = False
            End If
        End If
    Next i
   
    'GRAFİKLERİ SEÇİLEN SINIFLARA VE DENEME SAYISINA GÖRE DİNAMİK HALE GETİR
    ÖğrenciAnaliziSET.Activate
        sonSütunÖİ = ÖğrenciİstatistikleriSET.Cells(SeçilenÖğrenci, Columns.Count).End(1).Column
    ActiveSheet.ChartObjects("Öğrenci Boşluksuz Net Değişim Grafiği").Activate
    ActiveChart.SetSourceData Source:=ÖğrenciİstatistikleriSET.Cells(SeçilenÖğrenci, 11).Resize(1, sonSütunÖİ - 10)
    ActiveChart.ChartTitle.Text = "ÖĞRENCİNİN " & .Cells(3 + BaşlangıçSatırı, 2) & " NETLERİNİN DEĞİŞİM GRAFİĞİ (Sadece girdiği denemeler.)"
         ActiveSheet.ChartObjects("Deneme Sınavı Net Değişim Grafiği").Activate  'DENEME SINAVI NET DEĞİŞİMİ
    ActiveChart.SetSourceData Source:=.Cells(5 + BaşlangıçSatırı, 2).Resize(1, KayıtSayısı + 1)
    ActiveChart.ChartTitle.Text = "DENEMELERİN " & .Cells(3 + BaşlangıçSatırı, 2) & " NET ORTALAMASI DEĞİŞİM GRAFİĞİ"
        ActiveSheet.ChartObjects("Öğrenci Net Değişim Grafiği").Activate    'ÖĞRENCİ NET DEĞİŞİMİ
    ActiveChart.SetSourceData Source:=.Cells(7 + BaşlangıçSatırı, 2).Resize(1, KayıtSayısı + 1)
    ActiveChart.ChartTitle.Text = "ÖĞRENCİNİN " & .Cells(3 + BaşlangıçSatırı, 2) & " DENEMELERİNDEKİ NETLERİ"
        ActiveSheet.ChartObjects("Öğrencinin Sınıf Sıralaması").Activate    'SINIF SIRALAMASI
    ActiveChart.SetSourceData Source:=.Cells(9 + BaşlangıçSatırı, 2).Resize(1, KayıtSayısı + 1)
    ActiveChart.ChartTitle.Text = "ÖĞRENCİNİN " & .Cells(3 + BaşlangıçSatırı, 2) & " NETİNE GÖRE SINIF SIRALAMASI DEĞİŞİM GRAFİĞİ"
        ActiveSheet.ChartObjects("Öğrencinin Okul Sıralaması").Activate 'OKUL SIRALAMASI
    ActiveChart.SetSourceData Source:=.Cells(10 + BaşlangıçSatırı, 2).Resize(1, KayıtSayısı + 1)
    ActiveChart.ChartTitle.Text = "ÖĞRENCİNİN " & .Cells(3 + BaşlangıçSatırı, 2) & " NETİNE GÖRE OKUL SIRALAMASI DEĞİŞİM GRAFİĞİ"
End With

With ÖğrenciAnaliziŞablonuSET
    .Rows("30:57").Copy Destination:=.Rows(1) 'TEMİZLİK
    .Cells(21, 6).Resize(, 15).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 7).Resize(, 15).value '1.DÖNEM ARA SINAVLAR
    .Cells(17, 6).Resize(, 15).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 23).Resize(, 15).value '1.DÖNEM ÖDEVLER
    .Cells(26, 6).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 39).value '1.DÖNEM DERSE KATKI
    .Cells(11, 6).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 41).value '1.DÖNEM 1.YAZILI
    .Cells(11, 9).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 42).value '1.DÖNEM 2.YAZILI
    .Cells(11, 12).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 43).value '1.DÖNEM 3.YAZILI
    .Cells(11, 15).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 45).value '1.DÖNEM 1.SÖZLÜ
    .Cells(11, 17).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 46).value '1.DÖNEM 2.SÖZLÜ
    .Cells(11, 19).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 47).value '1.DÖNEM 3.SÖZLÜ
    .Cells(21, 21).Resize(, 15).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 49).Resize(, 15).value '2.DÖNEM ARA SINAVLAR
    .Cells(17, 21).Resize(, 15).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 65).Resize(, 15).value '2.DÖNEM ÖDEVLER
    .Cells(26, 9).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 81).value '2.DÖNEM DERSE KATKI
    .Cells(11, 21).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 83).value '2.DÖNEM 1.YAZILI
    .Cells(11, 24).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 84).value '2.DÖNEM 2.YAZILI
    .Cells(11, 27).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 85).value '2.DÖNEM 3.YAZILI
    .Cells(11, 30).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 87).value '2.DÖNEM 1.SÖZLÜ
    .Cells(11, 32).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 88).value '2.DÖNEM 2.SÖZLÜ
    .Cells(11, 34).value = SınıfTakipSET.Cells(SeçilenÖğrenci, 89).value '2.DÖNEM 3.SÖZLÜ
    .Cells(6, 6).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(SeçilenÖğrenci, 7).Resize(, 15)), 2) '1.DÖNEM ARA SINAV ORTALAMALARI
    .Cells(6, 9).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(SeçilenÖğrenci, 23).Resize(, 15)), 2) '1.DÖNEM ÖDEV ORTALAMALARI
    .Cells(6, 12).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(SeçilenÖğrenci, 41).Resize(, 3)), 2) '1.DÖNEM YAZILI ORTALAMALARI
    .Cells(6, 21).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(SeçilenÖğrenci, 49).Resize(, 15)), 2) '2.DÖNEM ARA SINAV ORTALAMALARI
    .Cells(6, 24).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(SeçilenÖğrenci, 65).Resize(, 15)), 2) '2.DÖNEM ÖDEV ORTALAMALARI
    .Cells(6, 27).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(SeçilenÖğrenci, 83).Resize(, 15)), 2) '2.DÖNEM YAZILI ORTALAMALARI
    .Cells(6, 18).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(11, 6).Resize(, 15)), 2) '1.DÖNEM SONU ORTALAMASI
    .Cells(6, 33).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(11, 21).Resize(, 15)), 2) '2.DÖNEM SONU ORTALAMASI
    .Cells(26, 12).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(26, 6), .Cells(26, 9)), 2) 'YIL SONU DERSE KATKI ORTALAMASI
    .Cells(26, 27).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(21, 6).Resize(, 30)), 2) 'YIL SONU ARA SINAV ORTALAMASI
    .Cells(26, 30).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(17, 6).Resize(, 30)), 2) 'YIL SONU ÖDEV ORTALAMASI
    .Cells(26, 33).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(6, 12).value, .Cells(6, 27).value), 2) 'YIL SONU YAZILI ORTALAMASI
    .Cells(26, 36).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(11, 15).Resize(, 6), .Cells(11, 30).Resize(, 6)), 2) 'YIL SONU SÖZLÜ ORTALAMASI
    .Cells(26, 43).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(6, 18).value, .Cells(6, 33).value), 2) 'YIL SONU ORTALAMASI
    .Cells(6, 15).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(6, 6).Resize(, 9), .Cells(13, 19).value), 2) '1.DÖNEM TAVSİYE NOTU
    .Cells(6, 30).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(6, 21).Resize(, 9), .Cells(13, 34).value), 2) '2.DÖNEM TAVSİYE NOTU
    .Cells(26, 39).value = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(.Cells(6, 15).value, .Cells(6, 30).value), 2) 'YIL SONU TAVSİYE NOTU
    .Cells(26, 24) = KursYoklamaSET.Cells(SeçilenÖğrenci, 7).value
   
    'SIRALAMALAR """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    For i = 1 To 15
        If .Cells(21, i + 5).value > 0 Then
                SınıfTakipSET.AutoFilterMode = False '1.DÖNEM ARA SINAVLAR SINIF SIRALAMASI
                SınıfTakipSET.Range("B3:FH" & son).AutoFilter Field:=1, Criteria1:=SınıfTakipSET.Cells(SeçilenÖğrenci, 2)
            .Cells(22, i + 5) = Application.WorksheetFunction.Rank(.Cells(21, i + 5).value, SınıfTakipSET.Cells(4, i + 6).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
                SınıfTakipSET.AutoFilterMode = False '1.DÖNEM ARA SINAVLAR OKUL SIRALAMASI
                SınıfTakipSET.Range("B3:FH" & son).AutoFilter Field:=1, Criteria1:=Array(SeçilenSınıflarınListesi), Operator:=xlFilterValues
            .Cells(23, i + 5) = Application.WorksheetFunction.Rank(.Cells(21, i + 5).value, SınıfTakipSET.Cells(4, i + 6).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
                SınıfTakipSET.AutoFilterMode = False
        End If
        If .Cells(21, i + 20).value > 0 Then
                SınıfTakipSET.AutoFilterMode = False '2.DÖNEM ARA SINAVLAR SINIF SIRALAMASI
                SınıfTakipSET.Range("B3:FH" & son).AutoFilter Field:=1, Criteria1:=SınıfTakipSET.Cells(SeçilenÖğrenci, 2)
            .Cells(22, i + 20) = Application.WorksheetFunction.Rank(.Cells(21, i + 20).value, SınıfTakipSET.Cells(4, i + 48).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
                SınıfTakipSET.AutoFilterMode = False '2.DÖNEM ARA SINAVLAR OKUL SIRALAMASI
                SınıfTakipSET.Range("B3:FH" & son).AutoFilter Field:=1, Criteria1:=Array(SeçilenSınıflarınListesi), Operator:=xlFilterValues
            .Cells(23, i + 20) = Application.WorksheetFunction.Rank(.Cells(21, i + 20).value, SınıfTakipSET.Cells(4, i + 48).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
                SınıfTakipSET.AutoFilterMode = False
        End If
    Next i

        SınıfTakipSET.AutoFilterMode = False 'SINIF SIRALAMALARI
        SınıfTakipSET.Range("B3:FH" & son).AutoFilter Field:=1, Criteria1:=SınıfTakipSET.Cells(SeçilenÖğrenci, 2)
    For i = 1 To 3
        If .Cells(11, 3 * i + 3).value > 0 Then '1.DÖNEM YAZILILARI
            .Cells(12, 3 * i + 3) = Application.WorksheetFunction.Rank(.Cells(11, 3 * i + 3).value, SınıfTakipSET.Cells(4, i + 40).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
        If .Cells(11, 3 * i + 18).value > 0 Then '2.DÖNEM YAZILILARI
            .Cells(12, 3 * i + 18) = Application.WorksheetFunction.Rank(.Cells(11, 3 * i + 18).value, SınıfTakipSET.Cells(4, i + 82).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
        If .Cells(11, 2 * i + 13).value > 0 Then '1.DÖNEM SÖZLÜLER
            .Cells(12, 2 * i + 13) = Application.WorksheetFunction.Rank(.Cells(11, 2 * i + 13).value, SınıfTakipSET.Cells(4, i + 44).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
        If .Cells(11, 2 * i + 28).value > 0 Then '2.DÖNEM SÖZLÜLER
            .Cells(12, 2 * i + 28) = Application.WorksheetFunction.Rank(.Cells(11, 2 * i + 28).value, SınıfTakipSET.Cells(4, i + 86).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
    Next i
    If .Cells(26, 6).value > 0 Then '1.DÖNEM DERSE KATKI
        .Cells(27, 6) = Application.WorksheetFunction.Rank(.Cells(26, 6).value, SınıfTakipSET.Cells(4, 39).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
    End If
    If .Cells(26, 9).value > 0 Then '2.DÖNEM DERSE KATKI
        .Cells(27, 9) = Application.WorksheetFunction.Rank(.Cells(26, 9).value, SınıfTakipSET.Cells(4, 81).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
    End If
    '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        ReDim OrtAraSınavlar1(1 To son)
        ReDim OrtAraSınavlar2(1 To son)
        ReDim OrtÖdevler1(1 To son)
        ReDim OrtÖdevler2(1 To son)
        ReDim OrtDerseKatkı1(1 To son)
        ReDim OrtDerseKatkı2(1 To son)
        ReDim OrtYazılılar1(1 To son)
        ReDim OrtYazılılar2(1 To son)
        ReDim OrtDönemSonu1(1 To son)
        ReDim OrtDönemSonu2(1 To son)
        ReDim OrtAraSınavlarYılSonu(1 To son)
        ReDim OrtÖdevlerYılSonu(1 To son)
        ReDim OrtYazılılarYılSonu(1 To son)
        ReDim OrtSözlülerYılSonu(1 To son)
        ReDim OrtDerseKatkıYılSonu(1 To son)
        ReDim OrtYılSonu(1 To son)
        ÖğrenciSayısı = 0
    For i = 4 To son
        If SınıfTakipSET.Rows(i).Height > 0 Then
            ÖğrenciSayısı = ÖğrenciSayısı + 1
            OrtAraSınavlar1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 7).Resize(, 15)), 2) '1.dönem ara sınav
            OrtAraSınavlar2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 49).Resize(, 15)), 2) '2.dönem ara sınav
            OrtÖdevler1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 23).Resize(, 15)), 2) '1.dönem ödev
            OrtÖdevler2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 65).Resize(, 15)), 2) '2.dönem ödev
            OrtDerseKatkı1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 39).Resize(, 7)), 2) '1.dönem derse katkı
            OrtDerseKatkı2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 81).Resize(, 7)), 2) '2.dönem derse katkı
            OrtYazılılar1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 15)), 2) '1.dönem yazılı
            OrtYazılılar2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 83).Resize(, 15)), 2) '2.dönem yazılı
            OrtDönemSonu1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 7)), 2) '1.dönem sonu
            OrtDönemSonu2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 83).Resize(, 7)), 2) '2.dönem sonu
            OrtAraSınavlarYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 7).Resize(, 15), SınıfTakipSET.Cells(i, 49).Resize(, 15)), 2)
            OrtÖdevlerYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 23).Resize(, 15), SınıfTakipSET.Cells(i, 65).Resize(, 15)), 2)
            OrtYazılılarYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 15), SınıfTakipSET.Cells(i, 83).Resize(, 15)), 2)
            OrtSözlülerYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 45).Resize(, 15), SınıfTakipSET.Cells(i, 87).Resize(, 15)), 2)
            OrtDerseKatkıYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 39).Resize(, 7), SınıfTakipSET.Cells(i, 81).Resize(, 7)), 2)
        End If
    Next i
        ReDim Preserve OrtAraSınavlar1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtAraSınavlar2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevler1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevler2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkı1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkı2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılar1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılar2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDönemSonu1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDönemSonu2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtAraSınavlarYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevlerYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılarYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtSözlülerYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkıYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYılSonu(1 To ÖğrenciSayısı)
           
        OrtAraSınavlar1Kaçıncı = 1
        OrtAraSınavlar2Kaçıncı = 1
        OrtÖdevler1Kaçıncı = 1
        OrtÖdevler2Kaçıncı = 1
        OrtDerseKatkı1Kaçıncı = 1
        OrtDerseKatkı2Kaçıncı = 1
        OrtYazılılar1Kaçıncı = 1
        OrtYazılılar2Kaçıncı = 1
        OrtDönemSonu1Kaçıncı = 1
        OrtDönemSonu2Kaçıncı = 1
        OrtAraSınavlarYılSonuKaçıncı = 1
        OrtÖdevlerYılSonuKaçıncı = 1
        OrtYazılılarYılSonuKaçıncı = 1
        OrtSözlülerYılSonuKaçıncı = 1
        OrtDerseKatkıYılSonuKaçıncı = 1
        OrtYılSonuKaçıncı = 1
        Kaçıncı = 1
    For i = 1 To ÖğrenciSayısı
        If OrtAraSınavlar1(i) > .Cells(6, 6) Then OrtAraSınavlar1Kaçıncı = OrtAraSınavlar1Kaçıncı + 1
        If OrtAraSınavlar2(i) > .Cells(6, 21) Then OrtAraSınavlar2Kaçıncı = OrtAraSınavlar2Kaçıncı + 1
        If OrtÖdevler1(i) > .Cells(6, 9) Then OrtÖdevler1Kaçıncı = OrtÖdevler1Kaçıncı + 1
        If OrtÖdevler2(i) > .Cells(6, 24) Then OrtÖdevler2Kaçıncı = OrtÖdevler2Kaçıncı + 1
        If OrtDerseKatkı1(i) > .Cells(26, 6) Then OrtDerseKatkı1Kaçıncı = OrtDerseKatkı1Kaçıncı + 1
        If OrtDerseKatkı2(i) > .Cells(26, 9) Then OrtDerseKatkı2Kaçıncı = OrtDerseKatkı2Kaçıncı + 1
        If OrtYazılılar1(i) > .Cells(6, 12) Then OrtYazılılar1Kaçıncı = OrtYazılılar1Kaçıncı + 1
        If OrtYazılılar2(i) > .Cells(6, 27) Then OrtYazılılar2Kaçıncı = OrtYazılılar2Kaçıncı + 1
        If OrtDönemSonu1(i) > .Cells(6, 18) Then OrtDönemSonu1Kaçıncı = OrtDönemSonu1Kaçıncı + 1
        If OrtDönemSonu2(i) > .Cells(6, 33) Then OrtDönemSonu2Kaçıncı = OrtDönemSonu2Kaçıncı + 1
        If OrtAraSınavlarYılSonu(i) > .Cells(26, 27) Then OrtAraSınavlarYılSonuKaçıncı = OrtAraSınavlarYılSonuKaçıncı + 1
        If OrtÖdevlerYılSonu(i) > .Cells(26, 30) Then OrtÖdevlerYılSonuKaçıncı = OrtÖdevlerYılSonuKaçıncı + 1
        If OrtYazılılarYılSonu(i) > .Cells(26, 33) Then OrtYazılılarYılSonuKaçıncı = OrtYazılılarYılSonuKaçıncı + 1
        If OrtSözlülerYılSonu(i) > .Cells(26, 36) Then OrtSözlülerYılSonuKaçıncı = OrtSözlülerYılSonuKaçıncı + 1
        If OrtDerseKatkıYılSonu(i) > .Cells(26, 12) Then OrtDerseKatkıYılSonuKaçıncı = OrtDerseKatkıYılSonuKaçıncı + 1
        If OrtYılSonu(i) > .Cells(26, 43) Then OrtYılSonuKaçıncı = OrtYılSonuKaçıncı + 1
    Next i
        .Cells(7, 6).value = OrtAraSınavlar1Kaçıncı
        .Cells(7, 21).value = OrtAraSınavlar2Kaçıncı
        .Cells(7, 9).value = OrtÖdevler1Kaçıncı
        .Cells(7, 24).value = OrtÖdevler2Kaçıncı
        .Cells(27, 6).value = OrtDerseKatkı1Kaçıncı
        .Cells(27, 9).value = OrtDerseKatkı2Kaçıncı
        .Cells(7, 12).value = OrtYazılılar1Kaçıncı
        .Cells(7, 27).value = OrtYazılılar2Kaçıncı
        .Cells(7, 18).value = OrtDönemSonu1Kaçıncı
        .Cells(7, 33).value = OrtDönemSonu2Kaçıncı
        .Cells(27, 27).value = OrtAraSınavlarYılSonuKaçıncı
        .Cells(27, 30).value = OrtÖdevlerYılSonuKaçıncı
        .Cells(27, 33).value = OrtYazılılarYılSonuKaçıncı
        .Cells(27, 36).value = OrtSözlülerYılSonuKaçıncı
        .Cells(27, 12).value = OrtDerseKatkıYılSonuKaçıncı
        .Cells(27, 43).value = OrtYılSonuKaçıncı
    '"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
   
   
        SınıfTakipSET.AutoFilterMode = False 'OKUL SIRALAMALARI
        SınıfTakipSET.Range("B3:FH" & son).AutoFilter Field:=1, Criteria1:=Array(SeçilenSınıflarınListesi), Operator:=xlFilterValues
    For i = 1 To 3
        If .Cells(11, 3 * i + 3).value > 0 Then '1.DÖNEM YAZILILARI
            .Cells(13, 3 * i + 3) = Application.WorksheetFunction.Rank(.Cells(11, 3 * i + 3).value, SınıfTakipSET.Cells(4, i + 40).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
        If .Cells(11, 3 * i + 18).value > 0 Then '2.DÖNEM YAZILILARI
            .Cells(13, 3 * i + 18) = Application.WorksheetFunction.Rank(.Cells(11, 3 * i + 18).value, SınıfTakipSET.Cells(4, i + 82).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
        If .Cells(11, 2 * i + 13).value > 0 Then '1.DÖNEM SÖZLÜLER
            .Cells(13, 2 * i + 13) = Application.WorksheetFunction.Rank(.Cells(11, 2 * i + 13).value, SınıfTakipSET.Cells(4, i + 44).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
        If .Cells(11, 2 * i + 28).value > 0 Then '2.DÖNEM SÖZLÜLER
            .Cells(13, 2 * i + 28) = Application.WorksheetFunction.Rank(.Cells(11, 2 * i + 28).value, SınıfTakipSET.Cells(4, i + 86).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
        End If
    Next i
    If .Cells(26, 6).value > 0 Then '1.DÖNEM DERSE KATKI
        .Cells(28, 6) = Application.WorksheetFunction.Rank(.Cells(26, 6).value, SınıfTakipSET.Cells(4, 39).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
    End If
    If .Cells(26, 9).value > 0 Then '2.DÖNEM DERSE KATKI
        .Cells(28, 9) = Application.WorksheetFunction.Rank(.Cells(26, 9).value, SınıfTakipSET.Cells(4, 81).Resize(son - 3, 1).SpecialCells(xlCellTypeVisible))
    End If
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        ReDim OrtAraSınavlar1(1 To son)
        ReDim OrtAraSınavlar2(1 To son)
        ReDim OrtÖdevler1(1 To son)
        ReDim OrtÖdevler2(1 To son)
        ReDim OrtDerseKatkı1(1 To son)
        ReDim OrtDerseKatkı2(1 To son)
        ReDim OrtYazılılar1(1 To son)
        ReDim OrtYazılılar2(1 To son)
        ReDim OrtDönemSonu1(1 To son)
        ReDim OrtDönemSonu2(1 To son)
        ReDim OrtAraSınavlarYılSonu(1 To son)
        ReDim OrtÖdevlerYılSonu(1 To son)
        ReDim OrtYazılılarYılSonu(1 To son)
        ReDim OrtSözlülerYılSonu(1 To son)
        ReDim OrtDerseKatkıYılSonu(1 To son)
        ReDim OrtYılSonu(1 To son)
        ÖğrenciSayısı = 0
    For i = 4 To son
        If SınıfTakipSET.Rows(i).Height > 0 Then
            ÖğrenciSayısı = ÖğrenciSayısı + 1
            OrtAraSınavlar1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 7).Resize(, 15)), 2) '1.dönem ara sınav
            OrtAraSınavlar2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 49).Resize(, 15)), 2) '2.dönem ara sınav
            OrtÖdevler1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 23).Resize(, 15)), 2) '1.dönem ödev
            OrtÖdevler2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 65).Resize(, 15)), 2) '2.dönem ödev
            OrtDerseKatkı1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 39).Resize(, 7)), 2) '1.dönem derse katkı
            OrtDerseKatkı2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 81).Resize(, 7)), 2) '2.dönem derse katkı
            OrtYazılılar1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 15)), 2) '1.dönem yazılı
            OrtYazılılar2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 83).Resize(, 15)), 2) '2.dönem yazılı
            OrtDönemSonu1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 7)), 2) '1.dönem sonu
            OrtDönemSonu2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 83).Resize(, 7)), 2) '2.dönem sonu
            OrtAraSınavlarYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 7).Resize(, 15), SınıfTakipSET.Cells(i, 49).Resize(, 15)), 2)
            OrtÖdevlerYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 23).Resize(, 15), SınıfTakipSET.Cells(i, 65).Resize(, 15)), 2)
            OrtYazılılarYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 15), SınıfTakipSET.Cells(i, 83).Resize(, 15)), 2)
            OrtSözlülerYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 45).Resize(, 15), SınıfTakipSET.Cells(i, 87).Resize(, 15)), 2)
            OrtDerseKatkıYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 39).Resize(, 7), SınıfTakipSET.Cells(i, 81).Resize(, 7)), 2)
            OrtYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 7), SınıfTakipSET.Cells(i, 83).Resize(, 7)), 2)
        End If
    Next i
        ReDim Preserve OrtAraSınavlar1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtAraSınavlar2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevler1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevler2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkı1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkı2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılar1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılar2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDönemSonu1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDönemSonu2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtAraSınavlarYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevlerYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılarYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtSözlülerYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkıYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYılSonu(1 To ÖğrenciSayısı)
           
        OrtAraSınavlar1Kaçıncı = 1
        OrtAraSınavlar2Kaçıncı = 1
        OrtÖdevler1Kaçıncı = 1
        OrtÖdevler2Kaçıncı = 1
        OrtDerseKatkı1Kaçıncı = 1
        OrtDerseKatkı2Kaçıncı = 1
        OrtYazılılar1Kaçıncı = 1
        OrtYazılılar2Kaçıncı = 1
        OrtDönemSonu1Kaçıncı = 1
        OrtDönemSonu2Kaçıncı = 1
        OrtAraSınavlarYılSonuKaçıncı = 1
        OrtÖdevlerYılSonuKaçıncı = 1
        OrtYazılılarYılSonuKaçıncı = 1
        OrtSözlülerYılSonuKaçıncı = 1
        OrtDerseKatkıYılSonuKaçıncı = 1
        OrtYılSonuKaçıncı = 1
        Kaçıncı = 1
    For i = 1 To ÖğrenciSayısı
        If OrtAraSınavlar1(i) > .Cells(6, 6) Then OrtAraSınavlar1Kaçıncı = OrtAraSınavlar1Kaçıncı + 1
        If OrtAraSınavlar2(i) > .Cells(6, 21) Then OrtAraSınavlar2Kaçıncı = OrtAraSınavlar2Kaçıncı + 1
        If OrtÖdevler1(i) > .Cells(6, 9) Then OrtÖdevler1Kaçıncı = OrtÖdevler1Kaçıncı + 1
        If OrtÖdevler2(i) > .Cells(6, 24) Then OrtÖdevler2Kaçıncı = OrtÖdevler2Kaçıncı + 1
        If OrtDerseKatkı1(i) > .Cells(26, 6) Then OrtDerseKatkı1Kaçıncı = OrtDerseKatkı1Kaçıncı + 1
        If OrtDerseKatkı2(i) > .Cells(26, 9) Then OrtDerseKatkı2Kaçıncı = OrtDerseKatkı2Kaçıncı + 1
        If OrtYazılılar1(i) > .Cells(6, 12) Then OrtYazılılar1Kaçıncı = OrtYazılılar1Kaçıncı + 1
        If OrtYazılılar2(i) > .Cells(6, 27) Then OrtYazılılar2Kaçıncı = OrtYazılılar2Kaçıncı + 1
        If OrtDönemSonu1(i) > .Cells(6, 18) Then OrtDönemSonu1Kaçıncı = OrtDönemSonu1Kaçıncı + 1
        If OrtDönemSonu2(i) > .Cells(6, 33) Then OrtDönemSonu2Kaçıncı = OrtDönemSonu2Kaçıncı + 1
        If OrtAraSınavlarYılSonu(i) > .Cells(26, 27) Then OrtAraSınavlarYılSonuKaçıncı = OrtAraSınavlarYılSonuKaçıncı + 1
        If OrtÖdevlerYılSonu(i) > .Cells(26, 30) Then OrtÖdevlerYılSonuKaçıncı = OrtÖdevlerYılSonuKaçıncı + 1
        If OrtYazılılarYılSonu(i) > .Cells(26, 33) Then OrtYazılılarYılSonuKaçıncı = OrtYazılılarYılSonuKaçıncı + 1
        If OrtSözlülerYılSonu(i) > .Cells(26, 36) Then OrtSözlülerYılSonuKaçıncı = OrtSözlülerYılSonuKaçıncı + 1
        If OrtDerseKatkıYılSonu(i) > .Cells(26, 12) Then OrtDerseKatkıYılSonuKaçıncı = OrtDerseKatkıYılSonuKaçıncı + 1
        If OrtYılSonu(i) > .Cells(26, 43) Then OrtYılSonuKaçıncı = OrtYılSonuKaçıncı + 1
    Next i
        .Cells(8, 6).value = OrtAraSınavlar1Kaçıncı
        .Cells(8, 21).value = OrtAraSınavlar2Kaçıncı
        .Cells(8, 9).value = OrtÖdevler1Kaçıncı
        .Cells(8, 24).value = OrtÖdevler2Kaçıncı
        .Cells(28, 6).value = OrtDerseKatkı1Kaçıncı
        .Cells(28, 9).value = OrtDerseKatkı2Kaçıncı
        .Cells(8, 12).value = OrtYazılılar1Kaçıncı
        .Cells(8, 27).value = OrtYazılılar2Kaçıncı
        .Cells(8, 18).value = OrtDönemSonu1Kaçıncı
        .Cells(8, 33).value = OrtDönemSonu2Kaçıncı
        .Cells(28, 27).value = OrtAraSınavlarYılSonuKaçıncı
        .Cells(28, 30).value = OrtÖdevlerYılSonuKaçıncı
        .Cells(28, 33).value = OrtYazılılarYılSonuKaçıncı
        .Cells(28, 36).value = OrtSözlülerYılSonuKaçıncı
        .Cells(28, 12).value = OrtDerseKatkıYılSonuKaçıncı
        .Cells(28, 43).value = OrtYılSonuKaçıncı
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    SınıfTakipSET.AutoFilterMode = False
   

    YıldızSayısı1 = SınıfTakipSET.Cells(SeçilenÖğrenci, 39).value
    YıldızSayısı2 = SınıfTakipSET.Cells(SeçilenÖğrenci, 81).value
    For i = 1 To 15
        If .Cells(23, i + 5).value > 0 And .Cells(23, i + 5).value <= 80 Then
            YıldızSayısı1 = YıldızSayısı1 + 4 - Int(.Cells(23, i + 5).value / 20)
        End If
        a = .Cells(23, i + 5).value
        If .Cells(23, i + 20).value > 0 And .Cells(23, i + 20).value <= 80 Then
            YıldızSayısı2 = YıldızSayısı2 + 4 - Int(.Cells(23, i + 20).value / 20)
        End If
    Next i
    For i = 1 To 3
        If .Cells(13, 3 * i + 3).value > 0 And .Cells(13, 3 * i + 3).value <= 80 Then
            YıldızSayısı1 = YıldızSayısı1 + 4 - Int(.Cells(13, 3 * i + 3).value / 20)
        End If
        If .Cells(13, 3 * i + 18).value > 0 And .Cells(13, 3 * i + 18).value <= 80 Then
            YıldızSayısı2 = YıldızSayısı2 + 4 - Int(.Cells(13, 3 * i + 18).value / 20)
        End If
    Next i
    .Cells(26, 15).value = YıldızSayısı1
    .Cells(26, 18).value = YıldızSayısı2
    .Cells(26, 21).value = YıldızSayısı1 + YıldızSayısı2

    .Cells(1, 2) = Optik.ArananÖğrenci.Text 'ANA BAŞLIK
    .Rows(1).Copy Destination:=ÖğrenciAnaliziSET.Rows(1) 'BAŞLIK KOPYALA
    .Rows("1:28").Copy Destination:=ÖğrenciAnaliziSET.Rows(60) 'BAŞLIK KOPYALA
End With


Call SayfaSeç
Application.ScreenUpdating = True
End Sub

Sub Öğrenciİstatistikleri()
Application.ScreenUpdating = False
On Error Resume Next

If UserFormYükleSET.Cells(2, 1) = "Takip1" Then
    Set Takip = Takip1SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip2" Then
    Set Takip = Takip2SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip3" Then
    Set Takip = Takip3SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip4" Then
    Set Takip = Takip4SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip5" Then
    Set Takip = Takip5SET
ElseIf UserFormYükleSET.Cells(2, 1) = "Takip6" Then
    Set Takip = Takip6SET
End If

son = ÖğrenciListesiSET.Cells(Rows.Count, 3).End(3).Row
KayıtSayısı = Int(Takip.Cells(1, Columns.Count).End(1).Column / 43)
DersBaşlıkları = Array("MATEMATİK", "FİZİK", "KİMYA", "BİYOLOJİ", "TÜRKÇE", "TARİH", "COĞRAFYA", "FELSEFE", "DİN KÜLTÜRÜ", "SAYISAL", "EŞİT AĞIRLIK", "SÖZEL", "FEN", "SOSYAL", "TOPLAM")
DerslerNet = Array(9, 13, 17, 21, 25, 29, 33, 37, 41, 43, 44, 45, 46, 47, 48)

'SEÇİLİ OLAN DERSİ TESPİT ET
For KaçıncıDers = 1 To 15
    If Optik.Controls("OptionButton" & KaçıncıDers).value = True Then
        Exit For
    End If
Next KaçıncıDers

With ÖğrenciİstatistikleriSET
    .Cells.Clear
    ÖğrenciListesiSET.Columns("A:E").Copy Destination:=.Columns("A:E") 'ÖĞRENCİ LİSTESİ
    ÖğrenciİstatistikleriŞablonuSET.Cells(1, 2).Resize(4, KayıtSayısı + 4).Copy Destination:=.Cells(1, 7) 'NETLER ŞABLONU
    ÖğrenciİstatistikleriŞablonuSET.Cells(1, 6).Resize(, 8).Copy Destination:=.Cells(1, 11) 'BAŞLIK
    .Cells(4, 7).Resize(1, KayıtSayısı + 4).Copy 'TABLOYU KOPYALA
    .Cells(4, 7).Resize(son - 3, KayıtSayısı + 4).PasteSpecial Paste:=xlPasteFormats
    .Columns(11).Resize(, KayıtSayısı).ColumnWidth = 6
   
    For i = 4 To son
        For j = 1 To KayıtSayısı
            If Takip.Cells(i, DerslerNet(KaçıncıDers) + 43 * j - 43) <> "" Then
                If .Cells(i, 11) = "" Then
                    .Cells(i, 11).value = Takip.Cells(i, DerslerNet(KaçıncıDers) + 43 * j - 43).value
                Else
                    sıradaki = .Cells(i, Columns.Count).End(1).Column + 1
                    .Cells(i, sıradaki).value = Takip.Cells(i, DerslerNet(KaçıncıDers) + 43 * j - 43).value
                End If
            End If
        Next j
        .Cells(i, 7).value = Application.WorksheetFunction.CountA(.Cells(i, 11).Resize(, KayıtSayısı))
        .Cells(i, 9).value = Application.WorksheetFunction.Max(.Cells(i, 11).Resize(, KayıtSayısı))
        If Optik.KaçTaneDenemeninOrtalaması.Text = "" Then
            .Cells(i, 8).value = Application.WorksheetFunction.Round(Application.WorksheetFunction.Average(.Cells(i, 11).Resize(, KayıtSayısı)), 2)
        Else
            .Cells(i, 8).value = ""
            For j = 1 To Optik.KaçTaneDenemeninOrtalaması.value
                .Cells(i, 8).value = .Cells(i, 8).value + Application.WorksheetFunction.Large(.Cells(i, 11).Resize(, KayıtSayısı), j)
            Next j
            .Cells(i, 8).value = Application.WorksheetFunction.Round(Application.WorksheetFunction.Average(.Cells(i, 8).value / (j - 1)), 2)
        End If
    Next i

    'ÖĞRENCİ İSTATİSTİKLERİNİ SIRALA
        .AutoFilterMode = False
    If Optik.ÖğrenciAnaliziFiltre0 = True Then
        .Cells(4, 2).Resize(son, KayıtSayısı + 9).Sort Key1:=.Cells(4, 3), Order1:=xlAscending, Header:=xlNo
        .Cells(4, 2).Resize(son, KayıtSayısı + 9).Sort Key1:=.Cells(4, 2), Order1:=xlAscending, Header:=xlNo
    ElseIf Optik.ÖğrenciAnaliziFiltre1 = True Then
        .Cells(4, 2).Resize(son, KayıtSayısı + 9).Sort Key1:=.Cells(4, 7), Order1:=xlDescending, Header:=xlNo
    ElseIf Optik.ÖğrenciAnaliziFiltre2 = True Then
        .Cells(4, 2).Resize(son, KayıtSayısı + 9).Sort Key1:=.Cells(4, 8), Order1:=xlDescending, Header:=xlNo
    ElseIf Optik.ÖğrenciAnaliziFiltre3 = True Then
        .Cells(4, 2).Resize(son, KayıtSayısı + 9).Sort Key1:=.Cells(4, 9), Order1:=xlDescending, Header:=xlNo
    End If
        .AutoFilterMode = False

    .Cells(1, 11).value = "ÖĞRENCİLERİN " & DersBaşlıkları(KaçıncıDers) & " NETLERİ"
    .Cells(1, 1).Select
End With

Call SayfaSeç
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 32
İleti: 399
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Ortalama ve Rank Hesabı

İleti#31)  Mesut Topal » 21 Haz 2019 15:31

Şu kısmı yukarıdaki yardımlarınızla oluşturdum Sayın Hocam :)
16 çeşit ortalama var.


Kod: Tümünü seç
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        ReDim OrtAraSınavlar1(1 To son)
        ReDim OrtAraSınavlar2(1 To son)
        ReDim OrtÖdevler1(1 To son)
        ReDim OrtÖdevler2(1 To son)
        ReDim OrtDerseKatkı1(1 To son)
        ReDim OrtDerseKatkı2(1 To son)
        ReDim OrtYazılılar1(1 To son)
        ReDim OrtYazılılar2(1 To son)
        ReDim OrtDönemSonu1(1 To son)
        ReDim OrtDönemSonu2(1 To son)
        ReDim OrtAraSınavlarYılSonu(1 To son)
        ReDim OrtÖdevlerYılSonu(1 To son)
        ReDim OrtYazılılarYılSonu(1 To son)
        ReDim OrtSözlülerYılSonu(1 To son)
        ReDim OrtDerseKatkıYılSonu(1 To son)
        ReDim OrtYılSonu(1 To son)
        ÖğrenciSayısı = 0
    For i = 4 To son
        If SınıfTakipSET.Rows(i).Height > 0 Then
            ÖğrenciSayısı = ÖğrenciSayısı + 1
            OrtAraSınavlar1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 7).Resize(, 15)), 2) '1.dönem ara sınav
            OrtAraSınavlar2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 49).Resize(, 15)), 2) '2.dönem ara sınav
            OrtÖdevler1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 23).Resize(, 15)), 2) '1.dönem ödev
            OrtÖdevler2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 65).Resize(, 15)), 2) '2.dönem ödev
            OrtDerseKatkı1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 39).Resize(, 7)), 2) '1.dönem derse katkı
            OrtDerseKatkı2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 81).Resize(, 7)), 2) '2.dönem derse katkı
            OrtYazılılar1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 15)), 2) '1.dönem yazılı
            OrtYazılılar2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 83).Resize(, 15)), 2) '2.dönem yazılı
            OrtDönemSonu1(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 7)), 2) '1.dönem sonu
            OrtDönemSonu2(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 83).Resize(, 7)), 2) '2.dönem sonu
            OrtAraSınavlarYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 7).Resize(, 15), SınıfTakipSET.Cells(i, 49).Resize(, 15)), 2)
            OrtÖdevlerYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 23).Resize(, 15), SınıfTakipSET.Cells(i, 65).Resize(, 15)), 2)
            OrtYazılılarYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 41).Resize(, 15), SınıfTakipSET.Cells(i, 83).Resize(, 15)), 2)
            OrtSözlülerYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 45).Resize(, 15), SınıfTakipSET.Cells(i, 87).Resize(, 15)), 2)
            OrtDerseKatkıYılSonu(ÖğrenciSayısı) = Application.WorksheetFunction.RoundUp(Application.WorksheetFunction.Average(SınıfTakipSET.Cells(i, 39).Resize(, 7), SınıfTakipSET.Cells(i, 81).Resize(, 7)), 2)
        End If
    Next i
        ReDim Preserve OrtAraSınavlar1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtAraSınavlar2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevler1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevler2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkı1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkı2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılar1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılar2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDönemSonu1(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDönemSonu2(1 To ÖğrenciSayısı)
        ReDim Preserve OrtAraSınavlarYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtÖdevlerYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYazılılarYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtSözlülerYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtDerseKatkıYılSonu(1 To ÖğrenciSayısı)
        ReDim Preserve OrtYılSonu(1 To ÖğrenciSayısı)
           
        OrtAraSınavlar1Kaçıncı = 1
        OrtAraSınavlar2Kaçıncı = 1
        OrtÖdevler1Kaçıncı = 1
        OrtÖdevler2Kaçıncı = 1
        OrtDerseKatkı1Kaçıncı = 1
        OrtDerseKatkı2Kaçıncı = 1
        OrtYazılılar1Kaçıncı = 1
        OrtYazılılar2Kaçıncı = 1
        OrtDönemSonu1Kaçıncı = 1
        OrtDönemSonu2Kaçıncı = 1
        OrtAraSınavlarYılSonuKaçıncı = 1
        OrtÖdevlerYılSonuKaçıncı = 1
        OrtYazılılarYılSonuKaçıncı = 1
        OrtSözlülerYılSonuKaçıncı = 1
        OrtDerseKatkıYılSonuKaçıncı = 1
        OrtYılSonuKaçıncı = 1
        Kaçıncı = 1
    For i = 1 To ÖğrenciSayısı
        If OrtAraSınavlar1(i) > .Cells(6, 6) Then OrtAraSınavlar1Kaçıncı = OrtAraSınavlar1Kaçıncı + 1
        If OrtAraSınavlar2(i) > .Cells(6, 21) Then OrtAraSınavlar2Kaçıncı = OrtAraSınavlar2Kaçıncı + 1
        If OrtÖdevler1(i) > .Cells(6, 9) Then OrtÖdevler1Kaçıncı = OrtÖdevler1Kaçıncı + 1
        If OrtÖdevler2(i) > .Cells(6, 24) Then OrtÖdevler2Kaçıncı = OrtÖdevler2Kaçıncı + 1
        If OrtDerseKatkı1(i) > .Cells(26, 6) Then OrtDerseKatkı1Kaçıncı = OrtDerseKatkı1Kaçıncı + 1
        If OrtDerseKatkı2(i) > .Cells(26, 9) Then OrtDerseKatkı2Kaçıncı = OrtDerseKatkı2Kaçıncı + 1
        If OrtYazılılar1(i) > .Cells(6, 12) Then OrtYazılılar1Kaçıncı = OrtYazılılar1Kaçıncı + 1
        If OrtYazılılar2(i) > .Cells(6, 27) Then OrtYazılılar2Kaçıncı = OrtYazılılar2Kaçıncı + 1
        If OrtDönemSonu1(i) > .Cells(6, 18) Then OrtDönemSonu1Kaçıncı = OrtDönemSonu1Kaçıncı + 1
        If OrtDönemSonu2(i) > .Cells(6, 33) Then OrtDönemSonu2Kaçıncı = OrtDönemSonu2Kaçıncı + 1
        If OrtAraSınavlarYılSonu(i) > .Cells(26, 27) Then OrtAraSınavlarYılSonuKaçıncı = OrtAraSınavlarYılSonuKaçıncı + 1
        If OrtÖdevlerYılSonu(i) > .Cells(26, 30) Then OrtÖdevlerYılSonuKaçıncı = OrtÖdevlerYılSonuKaçıncı + 1
        If OrtYazılılarYılSonu(i) > .Cells(26, 33) Then OrtYazılılarYılSonuKaçıncı = OrtYazılılarYılSonuKaçıncı + 1
        If OrtSözlülerYılSonu(i) > .Cells(26, 36) Then OrtSözlülerYılSonuKaçıncı = OrtSözlülerYılSonuKaçıncı + 1
        If OrtDerseKatkıYılSonu(i) > .Cells(26, 12) Then OrtDerseKatkıYılSonuKaçıncı = OrtDerseKatkıYılSonuKaçıncı + 1
        If OrtYılSonu(i) > .Cells(26, 43) Then OrtYılSonuKaçıncı = OrtYılSonuKaçıncı + 1
    Next i
        .Cells(7, 6).value = OrtAraSınavlar1Kaçıncı
        .Cells(7, 21).value = OrtAraSınavlar2Kaçıncı
        .Cells(7, 9).value = OrtÖdevler1Kaçıncı
        .Cells(7, 24).value = OrtÖdevler2Kaçıncı
        .Cells(27, 6).value = OrtDerseKatkı1Kaçıncı
        .Cells(27, 9).value = OrtDerseKatkı2Kaçıncı
        .Cells(7, 12).value = OrtYazılılar1Kaçıncı
        .Cells(7, 27).value = OrtYazılılar2Kaçıncı
        .Cells(7, 18).value = OrtDönemSonu1Kaçıncı
        .Cells(7, 33).value = OrtDönemSonu2Kaçıncı
        .Cells(27, 27).value = OrtAraSınavlarYılSonuKaçıncı
        .Cells(27, 30).value = OrtÖdevlerYılSonuKaçıncı
        .Cells(27, 33).value = OrtYazılılarYılSonuKaçıncı
        .Cells(27, 36).value = OrtSözlülerYılSonuKaçıncı
        .Cells(27, 12).value = OrtDerseKatkıYılSonuKaçıncı
        .Cells(27, 43).value = OrtYılSonuKaçıncı
    '"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 32
İleti: 399
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Ortalama ve Rank Hesabı

İleti#32)  feraz » 21 Haz 2019 15:44

--)(
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 40
İleti: 5952
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Ortalama ve Rank Hesabı

İleti#33)  Mesut Topal » 21 Haz 2019 16:36

[TESEKKÜR]
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 32
İleti: 399
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Önceki

Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot, Yandex[Bot] ve 0 misafir

Bumerang - Yazarkafe