besen
Altın Üye
- Katılım
- 23 Mart 2007
- Mesajlar
- 669
- Excel Vers. ve Dili
-
excel 2019
İngilizce
- Altın Üyelik Bitiş Tarihi
- 03-12-2024
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
=TOPLA.ÇARPIM(($A$2:$A$1000>=TARİH(YIL($E$5);AY($E$5)-24+1;1))*($A$2:$A$1000<=TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1))*($B$2:$B$1000))/TOPLA.ÇARPIM(($A$2:$A$1000>=TARİH(YIL($E$5);AY($E$5)-24+1;1))*($A$2:$A$1000<=TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1)))
=TOPLA.ÇARPIM(($A$2:$A$1000>TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1))*($A$2:$A$1000<=$E$5)*($B$2:$B$1000))/TOPLA.ÇARPIM(($A$2:$A$1000>TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1))*($A$2:$A$1000<=$E$5))
=ORTALAMA(DOLAYLI(("b"&KAÇINCI(TARİH(YIL($E$5);AY($E$5)-24+1;1);$A:$A;0))&":b"&KAÇINCI(TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1);$A:$A;0)))
=ORTALAMA(DOLAYLI("b"&KAÇINCI(TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1);$A:$A;0)+1&":B"&KAÇINCI($E$5;$A:$A;0)))
=ÇOKEĞERORTALAMA(B2:B222;A2:A222;">="&SERİAY(E5;-24)+1;A2:A222;"<="&SERİAY(SERİAY(E5;-24)+1;11))
=ÇOKEĞERORTALAMA(B2:B222;A2:A222;">="&SERİAY(SERİAY(E5;-24)+1;11)+1;A2:A222;"<="&SERİAY(SERİAY(SERİAY(E5;-24)+1;11)+1;11))
Sub ortalama_hesapla()
sayi_son = Range("B" & Rows.Count).End(3).Row
tarih_son = Range("A" & Rows.Count).End(3).Row
ilk_donem_baslangic = WorksheetFunction.EoMonth(CDate([E5]), -24) + 1
ilk_donem_bitis = WorksheetFunction.EoMonth(CDate(ilk_donem_baslangic), 11)
ilk_donem_ortalama = WorksheetFunction.AverageIfs(Range("B2:B" & sayi_son), Range("A2:A" & tarih_son), ">=" & ilk_donem_baslangic, Range("A2:A" & tarih_son), "<=" & ilk_donem_bitis)
ikinci_donem_baslangic = WorksheetFunction.EoMonth(CDate(ilk_donem_baslangic), 11) + 1
ikinci_donem_bitis = WorksheetFunction.EoMonth(CDate(ikinci_donem_baslangic), 11)
ikinci_donem_ortalama = WorksheetFunction.AverageIfs(Range("B2:B" & sayi_son), Range("A2:A" & tarih_son), ">=" & ikinci_donem_baslangic, Range("A2:A" & tarih_son), "<=" & ikinci_donem_bitis)
sonuc = ((ikinci_donem_ortalama / ilk_donem_ortalama) * 100) - 100
[G5] = ilk_donem_ortalama
[G5].NumberFormat = "#,##0.00"
[G6] = ikinci_donem_ortalama
[G6].NumberFormat = "#,##0.00"
[G7] = sonuc
[G7].NumberFormat = "#,##0.00"
End Sub
Her iki cevap için de teşekkür ederim.Merhaba,
Deneyiniz.
Bu benim bulabildiğim çözüm kesinlikle kısa ve anlaşılır bir çözümü vardır.
Size önerim: tüm tarihleri bir hücreye yazın ve ona göre sorgulama yapın.
G5,
G6,Kod:=TOPLA.ÇARPIM(($A$2:$A$1000>=TARİH(YIL($E$5);AY($E$5)-24+1;1))*($A$2:$A$1000<=TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1))*($B$2:$B$1000))/TOPLA.ÇARPIM(($A$2:$A$1000>=TARİH(YIL($E$5);AY($E$5)-24+1;1))*($A$2:$A$1000<=TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1)))
Farklı bir öneri,Kod:=TOPLA.ÇARPIM(($A$2:$A$1000>TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1))*($A$2:$A$1000<=$E$5)*($B$2:$B$1000))/TOPLA.ÇARPIM(($A$2:$A$1000>TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1))*($A$2:$A$1000<=$E$5))
G5,
G6,Kod:=ORTALAMA(DOLAYLI(("b"&KAÇINCI(TARİH(YIL($E$5);AY($E$5)-24+1;1);$A:$A;0))&":b"&KAÇINCI(TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1);$A:$A;0)))
Kod:=ORTALAMA(DOLAYLI("b"&KAÇINCI(TARİH(YIL(TARİH(YIL($E$5);AY($E$5)-24+1;1));AY(TARİH(YIL($E$5);AY($E$5)-24+1;1))+12-1;1);$A:$A;0)+1&":B"&KAÇINCI($E$5;$A:$A;0)))
Çözümler için teşekkür ederim.G5 Hücresi
G6 HücresiKod:=ÇOKEĞERORTALAMA(B2:B222;A2:A222;">="&SERİAY(E5;-24)+1;A2:A222;"<="&SERİAY(SERİAY(E5;-24)+1;11))
Kod:=ÇOKEĞERORTALAMA(B2:B222;A2:A222;">="&SERİAY(SERİAY(E5;-24)+1;11)+1;A2:A222;"<="&SERİAY(SERİAY(SERİAY(E5;-24)+1;11)+1;11))
Tercihim makro
Adım adım hesaplama işlemi
Kod:Sub ortalama_hesapla() sayi_son = Range("B" & Rows.Count).End(3).Row tarih_son = Range("A" & Rows.Count).End(3).Row ilk_donem_baslangic = WorksheetFunction.EoMonth(CDate([E5]), -24) + 1 ilk_donem_bitis = WorksheetFunction.EoMonth(CDate(ilk_donem_baslangic), 11) ilk_donem_ortalama = WorksheetFunction.AverageIfs(Range("B2:B" & sayi_son), Range("A2:A" & tarih_son), ">=" & ilk_donem_baslangic, Range("A2:A" & tarih_son), "<=" & ilk_donem_bitis) ikinci_donem_baslangic = WorksheetFunction.EoMonth(CDate(ilk_donem_baslangic), 11) + 1 ikinci_donem_bitis = WorksheetFunction.EoMonth(CDate(ikinci_donem_baslangic), 11) ikinci_donem_ortalama = WorksheetFunction.AverageIfs(Range("B2:B" & sayi_son), Range("A2:A" & tarih_son), ">=" & ikinci_donem_baslangic, Range("A2:A" & tarih_son), "<=" & ikinci_donem_bitis) sonuc = ((ikinci_donem_ortalama / ilk_donem_ortalama) * 100) - 100 [G5] = ilk_donem_ortalama [G5].NumberFormat = "#,##0.00" [G6] = ikinci_donem_ortalama [G6].NumberFormat = "#,##0.00" [G7] = sonuc [G7].NumberFormat = "#,##0.00" End Sub
=ÇOKEĞERORTALAMA(B2:B222;A2:A222;">="&SERİTARİH(E5;-24+1);A2:A222;"<="&SERİTARİH(SERİTARİH(E5;-24);12))
=ÇOKEĞERORTALAMA(B2:B222;A2:A222;">"&SERİTARİH(SERİTARİH(E5;-24+1);11);A2:A222;"<="&E5)
=ORTALAMA(KAYDIR(DOLAYLI("A"&KAÇINCI($E$9;$A$1:$A$300;0));-23+(SATIR(A1)-1)*12;1;12;))
Güle güle kullanın.Teşekkür ederim. tamamdır.
Bazen bu Excel'e ayar oluyorum.Merhaba,
2 sonuç için aşağıdaki formülü ,tek olarak kullanabilirsiniz. Aşağıya doğru kopyalayınız.
Kod:=ORTALAMA(KAYDIR(DOLAYLI("A"&KAÇINCI($E$9;$A$1:$A$300;0));-23+(SATIR(A1)-1)*12;1;12;))