Türkiye'nin en iyi Online Eğitim platformu

Excel'de Yazıyı Rakama Çevirmek

Excel'de Yazıyı Rakama Çevirmek
26 Şubat, 2024 Excel Eğitimi Ömer BAĞCI

Excel'de Yazıyı Rakama Çevirme: VBA ile Doğru Yöntem

Excel'de "Beş yüz elli" gibi metinle yazılmış bir sayıyı 550 rakamına veya "10.000 TL" gibi bir tutarı 10000 rakamına çevirmek için yerleşik bir formül yoktur. Bunun yerine, Excel'in programlama dili olan VBA ile özel bir kod yazmamız gerekir. Aşağıda, bu işlemi nasıl yapacağınızı baştan sona, hiç bilmeyen birine uygun şekilde anlatıyorum.


Adım 1: VBA Editor'ü Açma

  1. Excel dosyanızı açın.
  2. Klavyenizden Alt + F11 tuşlarına basın. Bu, VBA Editor penceresini açar.
  3. VBA Editor'de, sol üstteki menüden Insert (Ekle) > Module (Modül) seçeneğine tıklayın. Bu, kod yazacağımız yeni bir alan oluşturur.

Adım 2: VBA Kodu Yazma

Aşağıdaki kodu, açılan modül penceresine kopyalayıp yapıştırın. Bu kod, Türkçe metinle yazılmış sayıları rakama çevirebilen basit bir örnektir:

vba

DaraltMetni gizleKopyala

Function MetniRakamaCevir(metin As String) As Double

    Dim sonuc As Double

    Dim kelime As String

    Dim i As Integer

   

    ' Metni küçük harfe çevir ve gereksiz boşlukları kaldır

    metin = LCase(Trim(metin))

   

    ' Türkçe sayıları ve çarpanları tanımla

    Select Case metin

        Case "sıfır": sonuc = 0

        Case "bir": sonuc = 1

        Case "iki": sonuc = 2

        Case "üç": sonuc = 3

        Case "dört": sonuc = 4

        Case "beş": sonuc = 5

        Case "altı": sonuc = 6

        Case "yedi": sonuc = 7

        Case "sekiz": sonuc = 8

        Case "dokuz": sonuc = 9

        Case "on": sonuc = 10

        Case "yirmi": sonuc = 20

        Case "otuz": sonuc = 30

        Case "kırk": sonuc = 40

        Case "elli": sonuc = 50

        Case "altmış": sonuc = 60

        Case "yetmiş": sonuc = 70

        Case "seksen": sonuc = 80

        Case "doksan": sonuc = 90

        Case "yüz": sonuc = 100

        Case "bin": sonuc = 1000

        Case Else

            ' Birden fazla kelime varsa (örneğin "beş yüz")

            If InStr(metin, " ") > 0 Then

                Dim kelimeler() As String

                kelimeler = Split(metin, " ")

                sonuc = 0

               

                For i = 0 To UBound(kelimeler)

                    Select Case kelimeler(i)

                        Case "bir": sonuc = sonuc + 1

                        Case "iki": sonuc = sonuc + 2

                        Case "üç": sonuc = sonuc + 3

                        Case "dört": sonuc = sonuc + 4

                        Case "beş": sonuc = sonuc + 5

                        Case "altı": sonuc = sonuc + 6

                        Case "yedi": sonuc = sonuc + 7

                        Case "sekiz": sonuc = sonuc + 8

                        Case "dokuz": sonuc = sonuc + 9

                        Case "on": sonuc = sonuc + 10

                        Case "yirmi": sonuc = sonuc + 20

                        Case "otuz": sonuc = sonuc + 30

                        Case "kırk": sonuc = sonuc + 40

                        Case "elli": sonuc = sonuc + 50

                        Case "altmış": sonuc = sonuc + 60

                        Case "yetmiş": sonuc = sonuc + 70

                        Case "seksen": sonuc = sonuc + 80

                        Case "doksan": sonuc = sonuc + 90

                        Case "yüz": sonuc = sonuc * 100

                        Case "bin": sonuc = sonuc * 1000

                    End Select

                Next i

            Else

                sonuc = 0 ' Tanımlı değilse 0 döndür

            End If

    End Select

   

    MetniRakamaCevir = sonuc

End Function


Adım 3: Kodu Kaydetme

  1. Kodu yapıştırdıktan sonra, VBA Editor'de File (Dosya) > Save (Kaydet) seçeneğine tıklayın.
  2. Ardından Alt + F11 ile Excel'e geri dönün.

Adım 4: Excel'de Kodu Kullanma

  1. Excel'de bir hücreye metin yazın, örneğin A1 hücresine "beş yüz elli".
  2. Başka bir hücreye şu formülü yazın: =MetniRakamaCevir(A1)
  3. Enter'a basın. Hücrede 550 sonucunu göreceksiniz.

Nasıl Çalışır?

  • Bu kod, Türkçe'de yazılmış sayıları tanır (örneğin "beş", "yüz", "bin").
  • Birden fazla kelime içeren ifadeleri toplar (örneğin "beş yüz" = 500, "elli" = 50, toplam 550).
  • Büyük sayılar için "bin" gibi çarpanları da hesaba katar.

Örnekler

A Hücresi (Metin)

Formül

Sonuç (Rakam)

beş yüz elli

=MetniRakamaCevir(A1)

550

on bin

=MetniRakamaCevir(A2)

10000

üç

=MetniRakamaCevir(A3)

3


Sınırlamalar ve Notlar

  1. Basitlik: Bu kod, temel Türkçe sayıları çevirir. Daha karmaşık ifadeler (örneğin "on bir" veya "yüz otuz iki") için kodu genişletmek gerekir.
  2. Para Birimi: "10.000 TL" gibi formatları çevirmek için ek bir fonksiyon veya düzenleme gerekebilir.
  3. Hata Kontrolü: Eğer metin tanınmazsa, kod 0 döndürür. İsterseniz hata mesajı ekleyebilirsiniz.

Daha Gelişmiş Bir Çözüm İstiyorsanız

Eğer "On bin Türk Lirası" gibi ifadeleri veya "1.234,56 TL" gibi noktayla ayrılmış tutarları çevirmek istiyorsanız, kodu şu şekilde geliştirebiliriz:

vba

DaraltMetni gizleKopyala

Function ParaBirimiCevir(metin As String) As Double

    Dim sonuc As Double

    metin = Trim(metin) ' Boşlukları temizle

   

    ' "TL" veya para birimini kaldır

    metin = Replace(metin, "TL", "")

    metin = Replace(metin, "Türk Lirası", "")

   

    ' Noktaları ve virgülleri düzenle

    metin = Replace(metin, ".", "")

    metin = Replace(metin, ",", ".")

   

    ' Sayıya çevir

    If IsNumeric(metin) Then

        sonuc = CDbl(metin)

    Else

        sonuc = MetniRakamaCevir(metin) ' Metin sayıysa önceki fonksiyona yönlendir

    End If

   

    ParaBirimiCevir = sonuc

End Function

Bu fonksiyonu kullanarak:

  • =ParaBirimiCevir("10.000 TL") → 10000
  • =ParaBirimiCevir("beş yüz") → 500
 

Excel'de yazıyı rakama çevirmek için şu anda VBA dışında bir çözüm yok. Yukarıdaki adımları takip ederek kendi özel fonksiyonunuzu oluşturabilir ve Excel'de bu işlemi kolayca yapabilirsiniz.

 

En Başa Dön