Ondalık ayracı hatası

Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
Merhaba Üstatlarım; elimdeki dosyada 5217 satır bir veri var ve bu dosyanın üç sütununda rakamlar var. Ancak bu rakamların ondalık ayraçları da (.) örneğin 96.157,68 olması gereken rakam hücrede 96.157.68 olarak görünmekte. Bul değiştir ile yapamam çünkü ikiside nokta olduğundan yapamiyorum hücre biçimi seçerek de bul değiştir yapamıyorum. Tek tek yazsam 12-13 bin hücre arası bir işlem yapmam gerekmekte. Bunun kolayı bir yöntemi varmıdır değerli fikirlerinizi paylaşabilirmisiniz lütfen.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
VEriniz A1'de ise aşağıdaki formülü girdiğiniz hücrede istediğiniz dönüşüm gerçekleşir. Daha sonra çıkan verileri kopyala/Değerleri Yapıştır ile istediğiniz yere taşıyabilir ve son olarak da hücre biçimlendirme ile basamak ve ondalık simgelerini ekleyebilirsiniz:

Kod:
=YERİNEKOY(A1;".";"")/100
 
Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
Yusuf bey ilginize teşkkür ederim ancak 1.000 TL olan rakmalarda var 1 milyon olan rakamlarda var ve tek tek /100 /1 /10 gibi ayırırsam aynı zamanı harcamış olacağım hemen hemen. Aslında her hücrenin sağdan üçüncü değerini değiştirecek bir formül lazım. Yani 1.000.32 olan değere öyle bir formül yazmalıyımki hücrenin sağdan sola doğru 3 karakteri olan .32 değeri formül sonrası ,32 olmalı. Bunu nasıl yapabilirim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Örneğin 1.000 olan bir tutar sizde 1.000.00 olarak mı gözüküyor yoksa 1.000 olarak mı? Yani küsuratı olmayanlarda .00 var mı?

.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yusuf bey ilginize teşkkür ederim ancak 1.000 TL olan rakmalarda var 1 milyon olan rakamlarda var ve tek tek /100 /1 /10 gibi ayırırsam aynı zamanı harcamış olacağım hemen hemen. Aslında her hücrenin sağdan üçüncü değerini değiştirecek bir formül lazım. Yani 1.000.32 olan değere öyle bir formül yazmalıyımki hücrenin sağdan sola doğru 3 karakteri olan .32 değeri formül sonrası ,32 olmalı. Bunu nasıl yapabilirim.
Formülü denediniz mi?
 
Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
Ömer hocam
bendeki 1.000 olan bir tutar 1.000.00 olarak görünmekte.Küsüratı olsun olmasın sonu .00 veya (.) küsuratlı duruyor. Sayıları bildiğiniz metin şeklinde algılamış hücreler.

Yusuf hocam verdiğiniz kodu yazdım onda sıkıntım yok sıkıntım diğer hücrelere koyaladığımda hücrenin içine f2 ile girip enter yapmadan değişmemesi.

Eğer bir makro kod ile bunu yapabilirsem durumu kurtaracağım. İstediğim a sütunundaki hücrelerin en sağından sola doğru olan üçüncü karakterini "." yerine "," yapmaktır. İlginize çok teşekkür ederim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Yusuf bey'in önerdiği yöntemi bul değiştir uygulayarak yapabilirsiniz. Bu şekilde daha hızlı sonuç alırsınız. Aşağıdaki yolu izleyin.

Veri aralığını fare ile seçin / ctrl h(bul değiştir) / Aranan bölüme nokta işaretini koyun ve tümünü değiştire basın.

Bu işlemden sonra boş bir hücreye 100 yazın ve yazdığınız bu hücreyi kopyalayın, veri aralığını tekrar seçip fare ile seçili alanda sağ klik
yapın, özel yapıştır / seçeneğinde "böl" seçeneğini işaretleyin tamam ile işlemi bitirin.
 
Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
Hocam sizin ve Yusuf hocamın verdiği bilgiler doğru ve bunu zaman zaman kullanıyorum ve yönteminiz çok doğru ve pratik bir yöntem ancak benim bu 15 bin hücrenin içinde 999,99 tl ve aşağısı olan değerleri rakam olarak aldığı için bu yöntemleri uyguladığımda normal sayı olan değerler yüze bölünerek daha da küçülüyor. bu nedenle ben hücrede en sağdan sola doğru üçüncü değeri değiştirecek bir kod bulmak istedim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Eğer 1000 olan veri 1.000.00 olarak görünüyorsa verdiğim formül onu 1000'e dönüştürecektir zaten. 999,99 olan değerler nasıl görünüyor?
 
Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
Yusuf hocam aşağıda benim listemdeki değerlerden birkaçı var bunları boş bir sayafaya yapıştırıp sizin yönteminizi uyguladığınızda ne demek istediğimi daha iyi anlayacaksınız.

Ham Değerler
744,59
46,13
102.345.92
0,26


Uygulama Sonrası değerler

7,45
0,46
102.345,92
0,00
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şunu deneyin:

Kod:
=EĞER(ESAYIYSA(KIRP(A1)*1)=DOĞRU;KIRP(A1)*1;YERİNEKOY(KIRP(A1);".";"")/100)
 
Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
Yusuf hocam ilginize ve sabrınıza teşekkür ederim. Sorunu bu formül ile çözdüm. Hücreden diğerlerine formülü kopyalayınca güncellemiyor f2 ile hücreye girip çıktığınızda çalışıyordu formül ancak onu da farklı isimle kaydet ile kaydettiğimde dosya ismi değişince hücrelerin hepsini güncelleyip doğru rakamları verdi. Tekrar teşekkür ederim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Makro ile alternatif olsun.
Detaylı deneme yapmadım.

Kod:
Sub Degistir()
    
    Dim c As Range, alan As Range, sor As String, d, a
    
    Set alan = Range("A1:B5") 'değişim yapılacak alan
    
    sor = MsgBox("Daha Önce Kodu Çalıştırdığınız Alanda Tekrar" & Chr(10) _
        & "Kodu Çalıştırırsanız Veri Kaybına Uğrarsınız." & Chr(10) & Chr(10) _
            & "Devam Edeyim mi?", vbCritical + vbYesNo, "Dikkat !")
    
    If sor = vbNo Then Exit Sub

    For Each c In alan
        If c <> "" Then
            d = Split(c.Value, ".")
            a = d(UBound(d))
            If c <> Val(c) And Len(a) < 3 Then
                c.Value = (Left(c, Len(c) - 3) & "," & a) + 0
            Else
                c.Value = Round(c.Value / 100, 2)
            End If
        End If
    Next c

End Sub
.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Güncellememesinin sebebi dosyanızda hesaplamayı manuel yapmış olabilirsiniz. Otomatiğe çevirince düzelebilir.
 
Üst