bir alan içindeki rastgele verilere göre toplam alma

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
Merhabalar Sayın hocalarım
bir alan içindeki verilere göre toplam ile ilgili bi formül yapmak istiyorum.
Fakat toplatacağım veriler kriter alınacak verilerin hemen sağ tarafındaki hücrede olucak.
ekli çizelgemdede anlatmaya çalıştım.

düzeltme tablodaki olması gerekn sonuç ta 0<>5 in yanındaki değer 110 değil 204 olcak arada bi 94 değerini manule yaparken unutmuşum
 

Ekli dosyalar

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Makrolu çözüm işinize yarar ise kodu sayfa kod bölümüne uygulayınız.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [c5:ı239]) Is Nothing Then Exit Sub
Dim alan As Range
[l7:l11] = Empty
    For Each alan In Range("c5:ı23")
        If alan.Value = [k7] Then [l7] = [l7] + alan.Offset(0, 1).Value
        If alan.Value = [k8] Then [l8] = [l8] + alan.Offset(0, 1).Value
        If alan.Value = [k9] Then [l9] = [l9] + alan.Offset(0, 1).Value
        If alan.Value = [k10] Then [l10] = [l10] + alan.Offset(0, 1).Value
        If alan.Value = [k11] Then [l11] = [l11] + alan.Offset(0, 1).Value
    Next
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
öncelikle ilginize teşekkür ederim
sorucağım şey ise benim çizelgeme göre sadece makro yaptınız ve bir seferlik herhalde
düşünün ben o seçilmiş aralıkta verilerin yerlerini değiştirebilirim yine aralık içinde kalıcak ama yerlerini değiştiricemç makronun içeriğini tam anlayamadığımdan
makrolu çözümü uygulayacam şimdi ama diğer çözüm yani formüllü çözüm beklemekteyim
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
işleri zorlaştırmak için sormuyorum ama kriter değerlerin 1 değilde 2 yan sütununa verileri yazcaksam kod içindeki alan.Offset(0, 1) kısmını Offser(0, 2) mi yapmam gerekecek
yada verilen 1 alt hücresine yazacaksam (-1, 0) gibi anlamlar mı çıkıyo sayın N.Ziya Hiçdurmaz Hocam
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
hocam ben yine bu makro uygulamasını sonuçlandırmadım dosyam açıkken alt+f11 ile açılan sayfada insert/module diyorum sizin yazdığınız ifadeleri kopyala yapıştır diyorum ama sonuç çıkmıyo yardımcı olurmusunuz
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Kod:
[a1].Offset(0, 1) = "1" 'a1 hücresinin bir sağı
[a1].Offset(0, 2) = "1" 'a1 hücresinin iki sağı
[c5].Offset(1, 0) = "1" 'c5 hücresinin bir altı
[c5].Offset(-1, 0) = "1" 'c5 hücresinin bir üstü
 

Ekli dosyalar

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
sizin yazdığınız makroyu tam olarak uygulamak için
dosya açıkken
ALT+F11 yapılır
açılan pencerede INSERT/MODULE yapılı
açılan pencereye ifade kopyalanır.
............. sonrası ne hocam?
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yazdığım kod sayfa kod bölümünde çalışır.Sayfa sekmesi üzerinde sağ kilik yapıp kod görüntüleye tıklayınız.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
hocam siz şimdi benim çalışma sayfamda sayfa 1 e mi bu makroyu uyguladınız dimi tümünemi
ben az önce sayfa 2 yi tıkladım sekmeyi sağ tıkladım makro görüntüle kısmı boştu
sayfa 1 deki makro ekranını açtım kopyaladım yapıştırdım sayfa 2 ye
ve sayfa 1 deki tabloyu aynen kopyaladım ve sonuçlar doğru çıktı

anlatımımda bi hata yok dimi hocam
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Evet dediğiniz gibi.Kodların tüm sayfalarda çalışması için ThisWorkbook'a uygulanması gerekir. alttaki örnekteki gibi

Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, [c5:ı239]) Is Nothing Then Exit Sub
Dim alan As Range
[l7:l11] = Empty
    For Each alan In Range("c5:ı23")
        If alan.Value = [k7] Then [l7] = [l7] + alan.Offset(0, 1).Value
        If alan.Value = [k8] Then [l8] = [l8] + alan.Offset(0, 1).Value
        If alan.Value = [k9] Then [l9] = [l9] + alan.Offset(0, 1).Value
        If alan.Value = [k10] Then [l10] = [l10] + alan.Offset(0, 1).Value
        If alan.Value = [k11] Then [l11] = [l11] + alan.Offset(0, 1).Value
    Next
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
hocam ben şimdi tablo düzenliyorum çalışma alanım değişicek geneişleyecek bayağı
kendim modu da anlamay çalışıp yapmaya çalışacağım ama beceremezsem yine yazacağım size
ayrıca formülasyonlu çözümü halen merak ediyorum
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Yeni tablonuzdaki hücre adreslerini örneğe bakarak değiştirebilirsiniz

Kod:
[l7:l11] = Empty [COLOR="Red"]'ı7 ı11 aralığını temizler[/COLOR]
    For Each alan In Range("c5:ı23")[COLOR="red"] 'c5:ı23 aralığını dögü içerisine alır[/COLOR]
        If alan.Value = [k7] Then [l7] = [l7] + alan.Offset(0, 1).Value [COLOR="red"]'döngü içerisine alınan hücrelerin bir sağındakilerinin toplamlarını ı7 hücresine alır[/COLOR]
        If alan.Value = [k8] Then [l8] = [l8] + alan.Offset(0, 1).Value
        If alan.Value = [k9] Then [l9] = [l9] + alan.Offset(0, 1).Value
        If alan.Value = [k10] Then [l10] = [l10] + alan.Offset(0, 1).Value
        If alan.Value = [k11] Then [l11] = [l11] + alan.Offset(0, 1).Value
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
esas çizelgeye dönüştüremedim.

hocam asıl çizelgemi uyarlamaya çalıştım ama sonuç alamıyorum
sonuçlar N2:N7 arasına yazılcak ama bi türlü yapamadım dosyayı gönderiyorum
ekleyeceğim notlar ilk sizden gelen çalışmada 5 sonuç çıkıyodu şimdikinde 6 sonuç
 

Ekli dosyalar

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
sayın hocam makrolu çözümleri tam anlayamadığımdan kaynaklanıyo herhalde ama tuhaf bi durum var

hatalı dediğim yani sonuçları göremediğim açık halde duran excel dosyam (sadece sayfa1 var)
satır ve sütun yükseklileri gibi değerlerle oynarken birden doğru yanıtlar gri renkli hanelere döndü

bu nasıl bi durum
ben ne yaptığımı anlatayım boş dosya açtım sayfa 2 ve sayfa 3 ü sildim kalan sayfa 1 e sağ tıkladım mod görüntüle ve açılan pencereye sizden gelen ilk kodu yazım üzerinde verileri sildim ekledim vs en sonda End Sub yani bitiş kısmının yanına mouseyi getirdim ve enter dedim ve kod yazdığım pencereyi kapadım. o anda sonuçlar gelmedi.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Size kullanacı tanımlı bir fonksiyon yaptım.
formül şöyle,C5:I23 aralık,K7 ise kriter.Kodlarda aşağıda.Kullanacağınız doysyaya bir modüle o kodların olması lazım.Kopyalayın yani.Ama bu dosya için gerek yok.
=uyanlari_topla($C$5:$I$23;K7)
KTF:
Kod:
Function uyanlari_topla(alan As Range, olcut As String) As Double
Dim tpl As Double, hcr As Range
For Each hcr In alan
    If hcr.Value = olcut Then
        tpl = tpl + hcr.Offset(0, 1).Value
    End If
Next
uyanlari_topla = tpl
End Function
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,264
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki formülü L7 hücresine uygulayıp denermisiniz.
Dizi formüldür. CTRL+SHIFT+ENTER ile tamamlayın.

Kod:
=TOPLA(EĞER($C$5:$H$23=$K7;$D$5:$I$23))
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
Sayın Korhan Hocam çözümünüz için teşekkür ettim. formül çok tuhaf geldi bana ama br o kadarda kolaymış
peki hocam eğer verileri kriterin bi soluna
bir alt yada
bir üst hücreye yazmama göre olması gereken formülleri da yazabilirmisiniz
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,645
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
Sayın Korhan hocam formülü irdeledim ve sorduğum diğer seçenekleri kendim dönüşütürdüm.
güzel bi mantık var formülde
teşekkür ettim.
 
Üst