NumFormat Fonksiyonu

Tanım


Verilen nümerik bilgiyi, belirli bir uzunlukta binlik ve ondalık ayıraçları da kullanarak yeniden biçimlendirir. Eğer biçimlendirilecek sayı 0 (sıfır) ise boş bilgi geri dönülür. Binlik ayıraç olarak virgül (,), ondalık ayıraç olarak da nokta (.) işareti kullanılır.


Veritabanlarına belirli formatta nümerik veri yazarken, kağıt baskılarında veya bir alana belirli bir formatta nümerik veriyi yazarken kullanılır.

Kullanım Şekli


Değişken = Document.NumFormat(NümerikBilgi, ToplamHaneSayısı, OndalıkHaneSayısı)

Ana Nesne


Document (Doc) nesnesinin elemanıdır. Bir doküman nesnesi ile kullanılmak zorundadır.

Parametreler


Parametre

Açıklama

NümerikBilgi

Yeniden biçimlendirilecek sayısal veya metinsel olabilen nümerik bilgi. Metinsel bilgiden kasıt, text formatındaki nümerik karakterlerden oluşan bilgidir. Fonksiyon için; 1200.30, “1200.30” ve “1,200.30” aynı bilgidir.

ToplamHaneSayısı

Yeniden biçimlendirilme sonucu oluşacak sayının, toplam karakter sayısı. Tam sayı cinsinden değerdir. Sıfır (0) veya sıfırdan büyük değer girilmelidir. Eğer sayının sahip olduğu toplam karakter sayısından küçük bir rakam girilirse, fonksiyon minimum toplam hane sayısını nümerik bilgiyi tamsayı gösterecek şekilde kendisi hesaplar.

OndalıkHaneSayısı

Yeniden biçimlendirme sonucu oluşacak sayının, ondalık kısmının hane sayısı. Tamsayı cinsinden değerdir. Sıfır (0) veya sıfırdan büyük değer girilmelidir. Negatif sayılar, pozitif sayıya çevrilerek fonksiyona kabul edilir. Eğer sayının sahip olduğu ondalık kısmın hane sayısından daha büyük bir değer girilirse, çevrim esnasında ondalık sayının sonuna, fark kadar 0 (sıfır) ilave edilir.

Geri Dönen Değerler


Verilen sayının, istenilen şekilde biçimlendirilmiş halini, ondalık sayı olarak geri döner. Bir değişkene atanarak kullanılmalıdır.

Hatırlatmalar


Metinsel olarak girilen sayılardaki, tırnak ve binlik ayıraç olan virgüller dikkate alınmadan yeniden hesaplanan sayı biçimlendirilir.

Fonksiyon ondalıklı sayılarda, ondalık kısmın hane sayısına göre yuvarlama yapar.

Sayı olarak 0 (Sıfır) değerinde, boş bilgi geri dönülür. NumFormat0 fonksiyonundan tek farkı budur.

Sayının ondalık kısmında en sonda yer alan anlamsız sıfırlarda (0) gösterilir. NumFormat_NLZ fonksiyonundan tek farkı budur.

Örnek


Sub Makro1()

       Sayi = 23845.587

       Mesaj = "NumFormat(" & Sayi & ",4,1) fonksiyonun sonucu : " & Doc.NumFormat(Sayi,4,0)

       Mesaj = Mesaj & chr(13) & "NumFormat(" & Sayi & ",12,2) fonksiyonun sonucu : " & Doc.NumFormat(Sayi,12,2)

       Mesaj = Mesaj & chr(13) & "NumFormat(" & Sayi & ",12,5) fonksiyonun sonucu : " & Doc.NumFormat(Sayi,12,5)

       Mesaj = Mesaj & chr(13) & "NumFormat(0,12,5) fonksiyonun sonucu : " & Doc.NumFormat(0,12,5)

       Doc.MsgBox Mesaj

End Sub




Yukarıdaki örnekte, aynı nümerik bilginin 3 (üç) farklı şekilde biçimlendirilmiş şeklinin gösterilmesi istenmiştir. Aşağıdaki mesaj kutusunda ise örneğin sonucu gösterilmiştir. İlk iki satırda, fonksiyon yuvarlama işlemi yapmıştır.


Birinci fonksiyon satırında toplam hane sayısı; mevcut rakamın hane sayısından bile az girilmiştir. Buna rağmen fonksiyon mininmum uzunluğu kendisi tamsayı değerini gösterecek şekilde hesaplayıp, sayıyı yeniden biçimlendirmiştir.


Üçüncü satırda ise, mevcut sayının ondalık hane sayısı 3 (üç) iken, 5 (beş) hane olarak gösterilmesi istenmiştir. Bu durumda fonksiyon ondalık kısmın sonuna iki adet 0 (sıfır) ilave etmiştir.


Dördüncü satırda ise, 0 (sıfır) sayısının biçimlendirme sonucunun boş olarak döndüğü görülmektedir.




Paylaşım Makrosu