Soru 7
7. sorumuzla devam edelim. Aşağıdaki resimde gördüğünüz şekilde bir tablo var.
Bu tabloda 365 güne ait rakamlar var. Buradan ay bazında toplam değerleri bulmak istiyoruz.
Sarı renkli hücreye ay numarasını yazınca, o ay’a ait toplam rakam alttaki hücreye gelecek.
Formül ya da makro kabüldür. Ancak ek sütun yapmadan bu işlemi yapmalısınız.
Dosyayı buradan indirebilir, cevaplarınız yorum olarak yazabilirsiniz.
CEVAP
{=TOPLA(EĞER(AY($A$2:$A$366)=D1;$B$2:$B$366;0))}
Burada en iyi yöntem dizi formülüdür. Formülü yazdıktan sonra ctrl+shift+enter tuşlarına aynı anda basmalısınız.
=TOPLA(EĞER(AY($A$2:$A$366)=$D$1;$B$2:$B$366;””))
=TOPLA(EĞER(AY(A2:A366)=D1;(B2:B366)))
ctrl+shift+enter
Merhabalar;
Formül ile =TOPLA.ÇARPIM((AY(A2:A366)>=D1)*(AY(A2:A366)= Range(“D1”) And Month(dizi(x, 1)) <= Range("D1") Then
topla = topla + dizi(x, 2)
End If
Next x
Range("D2") = topla
Set dizi = Nothing: sonA = Empty: x = Empty: topla = Empty
End Sub
=ÇOKETOPLA($B:$B;$A:$A;”>=”&TARİH(2019;$D$1;1);$A:$A;”<"&TARİH(2019;$D$1+1;1))
Sub odev()
sonuc = 0
For i = 2 To 366
If Cells(i, 1) >= DateValue(“1.” & Cells(1, 4) & “.2019”) And Cells(i, 1) < DateValue("1." & Cells(1, 4) + 1 & ".2019") Then
sonuc = sonuc + Cells(i, 2)
End If
Next i
Cells(5, 4) = sonuc
End Sub
=TOPLA(EĞER(AY(B2:B366)=E1;C2:C366))
{=TOPLA(EĞER(AY(A2:A366)=D1;B2:B366;0))}
Buyrun hocam. Belki daha kısadır ama ben böyle yaptım 😀
=TOPLA(FİLTRE(B2:B366;METNEÇEVİR(A2:A366;”A”)=METNEÇEVİR(D1;”0″)))
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = “$D$1” Then Exit Sub
Dim ilk As Long
Dim son As Long
Dim satir As Long
Dim toplam As Double
ilk = 2
son = Cells(Rows.Count, 1).End(xlUp).Row
toplam = 0
Cells(4, 4) = toplam
For satir = ilk To son
If Month(Cells(satir, 1)) = Cells(1, 4) Then _
toplam = toplam + Cells(satir, 2)
Next satir
Cells(4, 4) = toplam
End Sub
Sub aylarasari()
sonsatir = Cells(Rows.Count, “a”).End(xlUp).Row
For i = 2 To sonsatir
Cells(i, 3) = Month(Cells(i, 1))
Next i
Range(“d2”) = WorksheetFunction.SumIf(Range(“c:c”), Range(“d1”), Range(“b:b”))
Range(“c2”, “c” & sonsatir).ClearContents
End Sub
Hocam şöyle bişey yaptım oldu gibi 🙂
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
Dim kacinci As Byte
Dim toplam As Double
toplam = 0
For i = 2 To 366
kacinci = Month(Cells(i, 1))
If kacinci = Range(“D1”) Then toplam = Cells(i, 2) + toplam
Range(“D2”) = toplam
Next i
End Sub
Dim ocak As Date
Dim subat As Date
Dim mart As Date
Dim nisan As Date
Dim mayis As Date
Dim haziran As Date
Dim temmuz As Date
Dim agustos As Date
Dim eylul As Date
Dim ekim As Date
Dim kasim As Date
Dim aralik As Date
ocak = “31.01.2019”
subat = “28.02.2019”
mart = “31.03.2019”
nisan = “30.04.2019”
mayis = “31.05.2019”
haziran = “30.06.2019”
temmuz = “31.07.2019”
agustos = “31.08.2019”
eylul = “30.09.2019”
ekim = “31.10.2019”
kasim = “30.11.2019”
aralik = “31.12.2019”
satir = Cells(Rows.Count, “A”).End(xlUp).Row
toplam = 0
For i = 2 To satir
If Range(“d1”) = 1 And Cells(i, 1) ocak And Cells(i, 1) subat And Cells(i, 1) mart And Cells(i, 1) nisan And Cells(i, 1) mayis And Cells(i, 1) haziran And Cells(i, 1) temmuz And Cells(i, 1) agustos And Cells(i, 1) eylul And Cells(i, 1) ekim And Cells(i, 1) kasim And Cells(i, 1) <= aralik Then
toplam = toplam + Cells(i, 2)
End If
Next i
Range("d2") = toplam