[Yardım]  Şarta Bağlı Ortalama Alma

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

Şarta Bağlı Ortalama Alma

İleti#1)  semos » 19 May 2019 10:49

Sütunların ortalamasını alırken "G" yani girmedi yazan sütunları sıfır olarak almasını istiyorum. Sütün birden fazla olduğu için bir türlü mantığını kuramadım. Bu konuda yardımcı olacak olan var mı?
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

Cevap: Şarta Bağlı Ortalama Alma

İleti#2)  askmadige34 » 19 May 2019 16:39

Örnek dosyanız olursa formül yazılabilir. Hangi sütunların ortalaması alınacak belli olmuyor.
askmadige34
Forum Moderatörü
 
Kayıt: 20 Kas 2015 11:04
Meslek: memur
Yaş: 38
İleti: 1697
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Şarta Bağlı Ortalama Alma

İleti#3)  Mesut Topal » 19 May 2019 17:15

Hocam, şu kodları deneyin.
Tablonuza göre SütunSayısı, BaşlangıçSütunu, BaşlangıçSatırı,OrtalamaSütunu sayılarını giriniz.

Kod: Tümünü seç
Sub Ortalama()

SütunSayısı = 5
BaşlangıçSütunu = 2
BaşlangıçSatırı = 3
OrtalamaSütunu = 8

Set s = Sheets("Sayfa1")
SonSatır = s.Cells(Rows.Count, BaşlangıçSütunu).End(3).Row
s.Cells(BaşlangıçSatırı, OrtalamaSütunu).Resize(SonSatır - BaşlangıçSatırı + 1, 1).ClearContents

For j = 1 To SonSatır - BaşlangıçSatırı + 1
    Puan = 0
    For i = 1 To SütunSayısı
        If s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu + i - 1) = "G" Then
            Puan = 0
        Else
            Puan = s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu + i - 1).Value
        End If
        s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value = s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value + Puan
    Next i
       s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value = Application.WorksheetFunction.RoundUp(s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value / SütunSayısı, 2)
Next j

End Sub



1.png
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: 318
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Şarta Bağlı Ortalama Alma

İleti#4)  semos » 26 May 2019 15:10

Mesut bey ilginize teşekkür ederim. Ama bu kod G girilmeyen ortalamaları da bozuyor. Benim istediğim sadece G girilen hücreyi sıfır olarak alıp ortalayacak.
Örneğin
s:No Ö. No Adı Soyadı 1. y. 2. y. 1. p. 2. p proje ortalama
1 222 İsmet ÖZEL 100 80 90 95 G 91,25
şeklinde değil G sıfır olarak hesaplayınca 73 olarak çıkması gerekir. Sütunlar yukarıdaki gibi olacak.
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

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

Cevap: Şarta Bağlı Ortalama Alma

İleti#5)  Mesut Topal » 26 May 2019 20:00

Hocam, kodlar gayet güzel çalışıyor.
Bende öğretmenim, G yazıldığında e-Okul sistemindeki gibi "0" kabul etmesi gerektiğini biliyorum.
Kodları buna göre düzenledim.
Resme bakınız.
ort.png
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: 318
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Şarta Bağlı Ortalama Alma

İleti#6)  semos » 28 May 2019 07:38

Mehmet bey G yazanları sıfır olarak hesaplamasında bir sıkıntı yok. Problem diğer ortalamaları bozuyor olması. Örneğin resmi incelerseniz çalıştırdığım zaman ortalamaların bozulduğunu göreceksiniz.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Şarta Bağlı Ortalama Alma

İleti#7)  Mesut Topal » 28 May 2019 10:42

semos yazdı:"G" yani girmedi yazan sütunları sıfır olarak almasını istiyorum.

Daha önce böyle yazdığınız için, girilmeyen notlar için "G" yazacağınız anlaşılıyordu.
Bazende boş bırakacağınızı söylemeniz gerekirdi.

semos yazdı:Problem diğer ortalamaları bozuyor olması.

Eklediğiniz resmi görene kadar bununla neyi kastettiğinizi anlayamamıştım.

Şu kodları kullanınız.

Kod: Tümünü seç
Sub Ortalama()

SütunSayısı = 5
BaşlangıçSütunu = 1
BaşlangıçSatırı = 1
OrtalamaSütunu = 6

Set s = Sheets("Sayfa1")
SonSatır = s.Cells(Rows.Count, BaşlangıçSütunu).End(3).Row
s.Cells(BaşlangıçSatırı, OrtalamaSütunu).Resize(SonSatır - BaşlangıçSatırı + 1, 1).ClearContents

For j = 1 To SonSatır - BaşlangıçSatırı + 1
    Puan = 0
    For i = 1 To SütunSayısı
        If s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu + i - 1) = "G" Then
            Puan = 0
        Else
            Puan = s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu + i - 1).Value
        End If
        s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value = s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value + Puan
    Next i
    NotAdedi = Application.WorksheetFunction.CountA(s.Cells(j, BaşlangıçSütunu).Resize(, SütunSayısı))
       s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value = Application.WorksheetFunction.RoundUp(s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value / NotAdedi, 2)
Next j

End Sub


Ekran Görüntüsü
ort.png
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: 318
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Şarta Bağlı Ortalama Alma

İleti#8)  semos » 28 May 2019 17:34

Mehmet bey bu kodlarla G yazılan yerleri sıfır olarak hesaplıyor ancak diğer öğrencilerin ortalamalarını hala yanlış hesaplıyor. Dosyayı ekliyorum. bir göz atar mısınız?
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

Cevap: Şarta Bağlı Ortalama Alma

İleti#9)  Mesut Topal » 28 May 2019 19:01

Kodları dosyanıza göre düzenlememişsiniz.
Sonra, bu kodlar modül için, sayfaya direkt yapıştırmışsınız. Çalışması mümkün değil.

İstediğiniz resimdeki gibi değil mi?

Adsız.png
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: 318
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Şarta Bağlı Ortalama Alma

İleti#10)  semos » 29 May 2019 10:20

Evet Mehmet Bey. Tam olarak istediğim bu sayfaya göre. Sütün ve satır numaralarını ayarlamaya çalıştım ama ortalama da hata aldım. Başka bir değiştirmem gereken yer var mı?
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

Cevap: Şarta Bağlı Ortalama Alma

İleti#11)  semos » 29 May 2019 10:56

Öncelikle isminizi yanlış telaffuz ettiğim için özür dilerim Mesut bey. Sütun ve satır sayıları ile oynayınca doğru hesapladı. Ancak henüz not verilmemiş boş sütunları da hesaba katarak böldüğü için =ortalama(e2:ı2) formülündeki gibi sonuç vermiyor. Bunu nasıl çözebiliriz?
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

Cevap: Şarta Bağlı Ortalama Alma

İleti#12)  Mesut Topal » 29 May 2019 16:22

Dosyanıza göre düzenledim.
Bu kodları direkt modüle yapıştırın.

Kod: Tümünü seç
Sub Ortalama()

SütunSayısı = 5
BaşlangıçSütunu = 5
BaşlangıçSatırı = 2
OrtalamaSütunu = 10

Set s = Sheets("Sayfa1")
SonSatır = s.Cells(Rows.Count, 1).End(3).Row
s.Cells(BaşlangıçSatırı, OrtalamaSütunu).Resize(SonSatır - BaşlangıçSatırı + 1, 1).ClearContents

For j = 1 To SonSatır - BaşlangıçSatırı + 1
    Puan = 0
    For i = 1 To SütunSayısı
        If s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu + i - 1) = "G" Then
            Puan = 0
        Else
            Puan = s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu + i - 1).Value
        End If
        s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value = s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value + Puan
    Next i
    NotAdedi = Application.WorksheetFunction.CountA(s.Cells(BaşlangıçSatırı + j - 1, BaşlangıçSütunu).Resize(, SütunSayısı))
       s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value = Application.WorksheetFunction.RoundUp(s.Cells(BaşlangıçSatırı + j - 1, OrtalamaSütunu).Value / NotAdedi, 2)
Next j

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

Cevap: Şarta Bağlı Ortalama Alma

İleti#13)  semos » 11 Haz 2019 00:03

Mesut Bey teşekkür ederim. Şimdi ortalamaları doğru hesaplıyor. İlginizden dolayı çok teşekkür ederim.
Kullanıcı avatarı
semos
Siteye Alışmış
 
Adı Soyadı:sema güven
Kayıt: 29 May 2012 21:49
Konum: Kocaeli
Meslek: Öğretmen
Yaş: 32
İleti: 139
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: kocaeli

Cevap: Şarta Bağlı Ortalama Alma

İleti#14)  Mesut Topal » 11 Haz 2019 05:55

Kolay gelsin Hocam
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 32
İleti: 318
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Google [Bot], Google Adsense [Bot] ve 2 misafir

Bumerang - Yazarkafe