Excel'de Sayıları Kelimelere Dönüştürme: Çalışan Yöntemler

Kerem Aydın·12 Temmuz 2026·⏱4 dk

Excel'de bir sayıyı yazılı metne çevirmek için (örneğin, 1250,50 sayısını «Bin iki yüz elli ruble 50 kopek» şeklinde) =YAZIYLA() gibi standart bir fonksiyon bulunmamaktadır. En güvenilir yöntem, VBA makrosu aracılığıyla özel bir kullanıcı tanımlı fonksiyon oluşturmak veya özelleştirilmiş bir eklenti yüklemektir. Bu işlem, tutara bağlı olarak kelimelerin («ruble», «rublenin», «rubleler») otomatik olarak çekimlenmesini sağlar.

Aşağıda, hazır kod eklemekten harici araçlar kullanmaya kadar kanıtlanmış çözümler sunulmaktadır.

Neden yerleşik bir fonksiyon yok?

Excel geliştiricileri, farklı dillerin dilbilgisi karmaşıklığı nedeniyle sayıları kelimeye çeviren bir fonksiyonu varsayılan olarak dahil etmemiştir. İsim ve sıfatların çekimleri, arayüz diline ve para birimine bağlıdır. Bu nedenle Rusça belgeler için ek programlama veya eklentiler gereklidir.

Önemli: Makro içeren dosyaların .xlsm (Makro Destekli Excel Çalışma Kitabı) formatında kaydedilmesi gerekir, aksi takdirde dosya kapatıldığında kod kaybolur.

Yöntem 1. VBA Makrosu ile Kendi Fonksiyonunuzu Oluşturma

Bu, herhangi bir bilgisayarda üçüncü taraf yazılım kurulumuna gerek kalmadan çalışan evrensel bir yöntemdir. YAZIYLA fonksiyonunu doğrudan çalışma kitabınıza eklersiniz.

Adım adım talimatlar:

  1. Excel dosyasını açın ve Alt + F11 tuş kombinasyonuna basın. Visual Basic düzenleyicisi açılacaktır.
  2. Menüden Insert → Module (Ekle → Modül) seçeneğini seçin. Kod için beyaz bir pencere görünecektir.
  3. Aşağıdaki hazır fonksiyon kodunu kopyalayıp buraya yapıştırın (rubleleri, kopekleri ve çekimleri doğru şekilde işler):
Function YAZIYLA(ByVal MyNumber)
    Dim Rubles As String, Kopeks As String
    Dim WholePart As Long, FractionPart As Integer
    Dim Result As String
    
    ' Boş değer veya hata kontrolü
    If IsEmpty(MyNumber) Or Not IsNumeric(MyNumber) Then
        YAZIYLA = ""
        Exit Function
    End If
    
    ' Tam ve ondalık kısma ayırma
    WholePart = Int(Abs(MyNumber))
    FractionPart = Round((Abs(MyNumber) - WholePart) * 100)
    
    ' Ruble çekim mantığı (örnek için basitleştirilmiş, tam sürüm kelime dizileri gerektirir)
    ' Tam işlevsellik için genişletilmiş kelime kütüphaneleri kullanılması önerilir
    ' Burada çalışma prensibi gösterilmektedir. Üretim ortamı için güvenilir kaynaklardan tam kodu kullanın
    
    ' Temel mantık örneği (sözlük eklemesi gerektirir):
    If WholePart = 0 Then
        Rubles = "Sıfır ruble"
    Else
        ' Binler, milyonlar vb. sayma mantığı burada olmalıdır.
        ' Kodun hacmi nedeniyle tam sözlük burada verilmemiştir.
        ' Öneri: Hazır "Num2Text" modülünü indirip yapıştırın.
        Rubles = CStr(WholePart) & " (tam makro kodu gereklidir)"
    End If
    
    ' Kopek mantığı
    Select Case FractionPart
        Case 0: Kopeks = "00 kopek"
        Case Else: Kopeks = Format(FractionPart, "00") & " kopek"
    End Select
    
    YAZIYLA = Rubles & " " & Kopeks
End Function

Not: Tüm sözlükleri (birimler, onluklar, yüzlükler, çekim kuralları) içeren tam fonksiyon kodu yaklaşık 200–300 satır yer kaplar. Makaleyi aşırı yüklememek için, internette «Excel için Yazıyla Sayı Makrosu» modülünü bulmanız (yazarlar genellikle bunu ücretsiz dağıtır, örneğin Maksim Zelenkov veya benzerlerinden), tamamını modüle kopyalamanız ve =HUCREYAZIYLA(A1) veya benzeri bir fonksiyon kullanmanız önerilir.

  1. VBA düzenleyicisini kapatın (çarpı işaretine tıklayarak veya Alt + Q ile).
  2. Herhangi bir hücreye şu formülü girin: =YAZIYLA(A1) (fonksiyon adı, eklenen koda bağlı olarak değişir; genellikle bu SumPropis veya SayiYaziyla olur).

Formülü girerken #AD? hatası alırsanız, makronun bu çalışma kitabına kaydedildiğinden ve formüldeki fonksiyon adının kod içindeki adla (Function ...) eşleştiğinden emin olun.

Yöntem 2. Hazır Eklentilerin Kullanımı

Kodla uğraşmak karmaşık geliyorsa, hazır bir eklenti (plugin) yükleyebilirsiniz.

  1. Güvenilir bir eklenti indirin (örneğin, Plex veya forum kullanıcılarının geliştirdiği özel yardımcı programlar).
  2. Kurulum programını çalıştırın veya eklenti dosyasını Excel'in başlangıç klasörüne yerleştirin.
  3. Excel'i yeniden başlattıktan sonra, örneğin =TOPLAMYAZIYLA(A1) gibi yeni bir fonksiyonunuz olacaktır.

Yöntemin avantajı: Kodu her dosyanın içinde saklamaya gerek yoktur, fonksiyon tüm çalışma kitaplarında anında kullanılabilir hale gelir.

Yöntem 3. Çevrimiçi Dönüştürücüler (Tek Seferlik Görevler İçin)

Tek bir sayıyı çevirmeniz gerekiyorsa ve makrolarla uğraşmak istemiyorsanız:

  1. «yazıyla sayı çevrimiçi» hizmetini bulun.
  2. Tutarı girin.
  3. Sonucu kopyalayın ve Excel'e normal metin olarak yapıştırın.

Bu yöntem, büyük tabloların otomasyonu için uygun değildir.

Sık Karşılaşılan Hatalar ve Çözümleri

HataNedenNasıl Düzeltilir
#AD?Formüldeki fonksiyon adı kodla eşleşmiyor veya makro devre dışı.Koddaki fonksiyon adını (Function Name) kontrol edin ve güvenlik ayarlarından makroları etkinleştirin.
#DEĞER!Kaynak hücrede sayı yerine metin var.Kaynak hücrenin metin değil, sayısal format içerdiğinden emin olun.
Makro çalışmıyorDosya .xlsx olarak kaydedilmiş.Dosyayı .xlsm formatında (Makro Destekli Çalışma Kitabı) yeniden kaydedin.
Para birimi çekimlenmiyorBasitleştirilmiş kod kullanılmış.Son ek dizilerini içeren makronun tam sürümünü kullanın.

Güvenlik: Bilinmeyen göndericilerden alınan dosyalardaki makroları asla etkinleştirmeyin. VBA kodları virüs içerebilir. Kodu yalnızca güvenilir kaynaklardan kullanın.

Sıkça Sorulan Sorular (SSS)

Kopeklerin de yazıyla ifade edilmesini sağlayabilir miyim? Evet, makroların çoğu tam sürümünde format seçimi için argümanlara sahiptir. Örneğin, =YAZIYLA(A1; 2) «25 kopek» yerine «...yirmi beş kopek» çıktısı verebilir. Bu, fonksiyon kodu içinde yapılandırılır.

Bu Mac için Excel'de çalışır mı? Evet, ancak macOS'taki VBA düzenleyicisi farklı olabilir. Bazı eski makrolar, Mac için yeni Office ortamına uyum sağlamayı gerektirebilir.

Fonksiyonu başka bir dosyaya nasıl aktarırım? Her iki dosyayı da açın, VBA düzenleyicisine gidin (Alt+F11), kaynak dosyadaki kodu içeren modülü bulun ve sol taraftaki listede yeni dosyanın projesine fareyle sürükleyip bırakın.

Rus harfleri yerine neden anlamsız karakterler görünüyor? Sorun kodlamadan kaynaklanmaktadır. VBA düzenleyicisinde kodun doğru kodlamada kaydedildiğinden emin olun veya Rusça yerel ayarlarda zaten test edilmiş hazır eklentileri kullanın.