• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayıysa Sayıya Çevir, Değilse Olduğu Gibi Kalsın

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar. Tahmin ediyorum hepimizin sıkça karşılaştığı bir durum var. Forumda yaptığım araştırmada net bir çözüm fark edemedim. Var da bulamadıysam şimdiden özür dilerim.

Bazen metin formatında olup ta bazı hücreleri metinsel karakterler başlayan bazı hücreleri de sayısal karakterle başlayan metin dizisi olan dosyalarda şöyle bir sorun oluyor. Sayı olanları sayıya çevir fonksiyonu uygulayınca sayısal karakterli olanlar sayıya çevriliyor ama metinsel karakterli olanlar DEĞER# olarak gözüküyor. Benim bazı uzun yollardan giden ayırma yöntemlerim var ama, bunun sade bir çözü mü yok mudur ?

Örneğin;
A1 : '0123456
B1 : 'A654789

A1 in başındaki 0 gitsin ve sayı olsun ama B1'de A ile başlayan olduğu gibi kalsın !!
 
Aşağıdaki formülü deneyin.:cool:

=EĞER(ESAYIYSA(YERİNEKOY(A1;"'";"")*1);SAYIYAÇEVİR(YERİNEKOY(A1;"'";""));A1)
 
Kod:
=EĞER(EHATALIYSA(SAYIYAÇEVİR(A1));A1;SAYIYAÇEVİR(A1))

Merhaba,fonksiyonu böyle kullanabilirsiniz.
 
Selamlar,

Alternatif olarak aşağıdaki formülüde kullanabilirsiniz.

Kod:
=EĞER(A1="";"";EĞER(EHATALIYSA(SAYIYAÇEVİR(A1));A1;SAYIYAÇEVİR(A1)))
 
Teşekkürler Sayın Evren Gizlen, işte budur. Sağlıcakla kalın.
 
Sayın üstatlar, çok teşekkür ederim. Hepsi çok mükemmel. İlginize çok çok teşekkür ederim.
 
Bu dahada kestirme oldu.
Sayın yurttaşın bir çalışmasından esinlendim.
Yurttaş beye buradan bu vesile ile tekrar teşekkür ederim.

=EĞER(ESAYIYSA(--(A1));--(A1);A1)
 
üstadlarım merhaba. yukarıdaki formülleri a sutununa uygulanacak şekilde makroya çevirmek mümkün müdür. benzer makroları denedim aynı sonucu alamadım. şöyleki :
100
100.01
100.01.001 şeklinde bazıları metin olarak saklanan sayıları sayıya çevirince 100.01 i 100,01 olarak çeviriyor. bu formül tam istediğim gibi.
şimdiden teşekkürler...
 
Alternatif olarak kullanabilirsiniz.

Kod:
=EĞERHATA(--A2;A2)
 
üstad teşekkür ederim ilginize. formül olarak mükemmel çalışıyor. ancak makrolu çözüme ihtiyacım var.
 
Aşağıdaki kodu dener
Kod:
Sub denene()

Range("B:B").ClearContents
son = Cells(Rows.Count, "a").End(3).Row

For i = 1 To son
alan = Cells(i, "a").Address(0, 0)
On Error GoTo son:
deg = InStr(1, Cells(i, "d").Text, ".")
son:

If deg = 0 Then
Cells(i, "b").FormulaLocal = "=EĞERHATA(--" & alan & " ; " & alan & ")"
Cells(i, "b") = Cells(i, "b")
Else
Cells(i, "b") = Cells(i, "a")
End If

Next i
End Sub
misiniz.
 
üstad merhaba. istediğim gibi olmadı. aşağıdaki formüllerden herhangi biri tüm A sutununda olacak şekilde makroya çevrilirse sorunum istediğim gibi çözülüyor.

=EĞER(ESAYIYSA(YERİNEKOY(A2;"'";"")*1);SAYIYAÇEVİR(YERİNEKOY(A2;"'";""));A2)
=EĞER(EHATALIYSA(SAYIYAÇEVİR(A2));A2;SAYIYAÇEVİR(A2))
=EĞER(A2="";"";EĞER(EHATALIYSA(SAYIYAÇEVİR(A2));A2;SAYIYAÇEVİR(A2)))
=EĞER(ESAYIYSA(--(A2));--(A2);A2)
=EĞERHATA(--A2;A2)

dosyayı ekledim. uygulanacak sutun A sutunu. I J K L M sutunlarında formüllü çözümler var. ama bu formülleri makroya çevirmek gerekiyor. yardımcı olacaklara şimdiden teşekkür ederim.
 

Ekli dosyalar

  • A.xls
    A.xls
    53 KB · Görüntüleme: 3
Kod:
Sub denene()


son = Cells(Rows.Count, "a").End(3).Row
Range("I2:I" & son).ClearContents

For i = 2 To son
alan = Cells(i, "a").Address(0, 0)
Cells(i, "I").FormulaLocal = "=EĞERHATA(--" & alan & " ; " & alan & ")"
Next i

End Sub
 
Son düzenleme:
Merhaba,

Bende muhasebeciyim. Mizan'dan raporlama konusunda çok dosya hazırladım.
Sizin yapmak istediğiniz tam olarak nedir.
 
üstadım yapmak istediğim mizanı alırken özellikle ana hesaplarda metin olarak saklanan sayılar var bunu sayıya çevirebilmek. yalnız burada bir sorun var. forumda diğer başlıklardaki sayıyaçevir makrolarını kullandığım zaman; örneğin 100.01 i ya 100,01 yapıyor yada 10001 yapıyor. bu sayfadaki formüller (veya benim örnek dosyamdaki formüller) tam istediğim gibi yapıyor.100 ü 100 şeklinde sayıya çeviriyor. diğerlerine karışmıyor. bilmem anlatabildim mi. ilginize teşekkür ederim.
 
Bunun için 3 hane uzunluğundaki karakterleri al demek yeterli olurdu. Kebir hesapları bu şekilde olur. Alt hesaplar 3 haneli olmaz.Esas merak ettiğim bundan sonra çıkarmak istediğiniz rapor. Makro kullanmışken tekrar makro ile formül yazdırmak bana kullanışlı gelmedi.

Noktalama işareti excel'in ön yüzü ile vba tarafında farklı çalıştığı için kod yazarken bu durum sıkıntı oluşturabiliyor.
 
Son düzenleme:
Geri
Üst