Alternatif Karekök Fonksiyonu - Microsoft Excel


Bir sayının karekökünü standart (2) ve diğer derecelerden (3, 5, 8 vs.) bulmaya yarayan alternatif bir kullanıcı tanımlı fonksiyon (ktf) kodudur.

Kod


Option Explicit

'--------------------------------------------------
'Karekök Fonksiyonu (Kök Üssü = 2)
'--------------------------------------------------
Function Karekok(sayi As Single)  
  If (IsNumeric(sayi) And sayi >= 0) Then
    sayi = Math.Sqr(sayi)
    Karekok = sayi
  Else
    Karekok = CVErr(xlErrValue)
  End If
  
End Function

'--------------------------------------------------
'Karekök Fonksiyonu (Kök üssü değişebiliyor.)
'--------------------------------------------------
Function KarekokDereceli(sayi As Single, kok_ussu As Byte)
  If (IsNumeric(sayi) And sayi >= 0) Then
    sayi = sayi ^ (1 / kok_ussu)
    KarekokDereceli = sayi
  Else
    KarekokDereceli = CVErr(xlErrValue)
  End If
End Function

Kod (Açıklamalı)


Option Explicit

Function Karekok(sayi As Single)
    '--------------------------------------------------
    'Karekökü alınacak sayının
    'uygunluk kontrolü yapılıyor.
    '--------------------------------------------------
    If (IsNumeric(sayi) And sayi >= 0) Then
    
        '--------------------------------------------------
        'VBA'da bulunan standart karekök fonksiyonuyla
        'karekök alınıyor. Buradaki asıl amaç şu:
        'Zaten varolan bir karekök fonksiyonunu uzatarak
        'kendimizi kandırmak değil, fonksiyonu kendi
        'işimize yarar haline getirecek şekilde yeniden
        'yapılandırmaktır.
        '--------------------------------------------------
        sayi = Math.Sqr(sayi)
        
        '--------------------------------------------------
        'Formül sonucunu yazdır.
        '--------------------------------------------------
        Karekok = sayi
    Else
        
        '--------------------------------------------------
        'Eğer sayı istenilen biçimde değilse bunu
        'excel hataları aracılığıyla belirt.
        '--------------------------------------------------
        Karekok = CVErr(xlErrValue)
    End If
  
End Function

Function KarekokDereceli(sayi As Single, kok_ussu As Byte)
    '--------------------------------------------------
    'Karekökü alınacak sayının
    'uygunluk kontrolü yapılıyor.
    '--------------------------------------------------
    If (IsNumeric(sayi) And sayi >= 0) Then
        
        '--------------------------------------------------
        'Karekökü dereceli olarak almak için
        'üs alma işlemini kullandık, verilen kök
        'derecesini de 1/sayı şekline çevirerek
        'karekök almış gibi olduk.
        '--------------------------------------------------
        sayi = sayi ^ (1 / kok_ussu)
        
        '--------------------------------------------------
        'Formül sonucunu yazdır.
        '--------------------------------------------------
        KarekokDereceli = sayi
    Else
        
        '--------------------------------------------------
        'Eğer sayı istenilen biçimde değilse bunu
        'excel hataları aracılığıyla belirt.
        '--------------------------------------------------
        KarekokDereceli = CVErr(xlErrValue)
    End If
End Function

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba