Formülü Diğer Satırlara Uygulayamıyorum.

Katılım
20 Aralık 2020
Mesajlar
4
Excel Vers. ve Dili
2019
Arkadaşlar belki çözüm çok basit olabilir ancak excel bilgim maalesef sorunu çözmeme yetmedi.

Fotoğraftan görüleceği üzere hisse senetlerine ait yıllık veriler var. Verilerin açıklamaları ve kullandığım formüller aşağıda. Buradaki yaşadığım sorun, her hissenin verisi farklı yıldan başlıyor olması. Kimisi 2014 den itibaren, kimisi 2008 den. Bu formülleri en kısa yoldan hata almadan nasıl diğer hisselere uygulayabilirim. Direk kopyala yapıştır yaptığımda ya hata veriyor yada yanlış hesaplıyor. Yardımcı olursanız sevinirim.

Değer: Hisse senetlerinin değeri
Yıllık artış: bir önceki yıla oranla yüzde kaç arttığı =(D2-C2)/C2,
Kümüle artış: verideki ilk yılı baz alarak yüzde kaç arttığı =(D2-$C$2)/$C$2
Volalite: Yıllık artışların ortalaması alınıp, o yılın artışından ne kadar saptığını hesaplıyor. =MUTLAK(D3-ORTALAMA($C$3:$AH$3))



 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,256
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Görselden yardım almanız biraz zor görünüyor.

Örnek dosya paylaşırsanız yardımcı olmak isteyenler deneme yapabilirler.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Örnek dosya paylaşırsanız çözüm üretilebilir.
Dosyanızı yedekledikten sonra aşağıdaki makroyu çalıştırınız.
Kod:
Sub Hesapla()
    Dim ilkSütun As Integer
    Dim sonSütun As Integer
    Dim Satır As Integer
    Dim sonSatır As Integer
    Dim i As Integer
    Dim j As Integer
    
    sonSütun = Range("AH1").Column
    sonSatır = ActiveCell.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
    
    For i = 2 To sonSatır Step 4
        If IsEmpty(Cells(i, 3)) = False Then
            ilkSütun = 4
        Else
            Cells(i, 3).Select
            Cells.Find(What:="*", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
                                  xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False _
                                  , SearchFormat:=False).Activate
            ilkSütun = ActiveCell.Column
            
        End If
        For j = ilkSütun + 1 To sonSütun
            Cells(i + 1, j) = (Cells(i, j) - Cells(i, j - 1)) / Cells(i, j - 1)
            Cells(i + 2, j) = (Cells(i, j) - Cells(i, ilkSütun)) / Cells(i, ilkSütun)
            Cells(i + 3, j) = Cells(i + 1, j) - Application.WorksheetFunction.Average(Range(Cells(i, 3), Cells(i, sonSütun)))
            Range(Cells(i + 1, j), Cells(i + 3, j)).Select
            With Selection
                .Style = "Percent"
                .NumberFormat = "0.00%"
            End With
        Next j
    Next i
End Sub
 
Üst