Excel kullanımının pratik alanları ve önemini öğrenin. Verimliliğinizi artı..
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
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
Adım 4: Excel'de Kodu Kullanma
Nasıl Çalışır?
Ö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
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:
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.