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

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
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 !!
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki formülü deneyin.:cool:

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

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
Kod:
=EĞER(EHATALIYSA(SAYIYAÇEVİR(A1));A1;SAYIYAÇEVİR(A1))
Merhaba,fonksiyonu böyle kullanabilirsiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,266
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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)))
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Teşekkürler Sayın Evren Gizlen, işte budur. Sağlıcakla kalın.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayın üstatlar, çok teşekkür ederim. Hepsi çok mükemmel. İlginize çok çok teşekkür ederim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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)
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Çok teşekkürler, bayağı zengin alternatif oldu.
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
ü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...
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,634
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Alternatif olarak kullanabilirsiniz.

Kod:
=EĞERHATA(--A2;A2)
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
üstad teşekkür ederim ilginize. formül olarak mükemmel çalışıyor. ancak makrolu çözüme ihtiyacım var.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,634
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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.
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
ü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

  • 53 KB Görüntüleme: 3

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,634
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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:

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,634
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Bende muhasebeciyim. Mizan'dan raporlama konusunda çok dosya hazırladım.
Sizin yapmak istediğiniz tam olarak nedir.
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
ü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.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,634
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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:
Üst