Kolondaki sayı ve rakamları ayırıp sonucu rakam olarak yazmak

Katılım
7 Ağustos 2007
Mesajlar
3
Excel Vers. ve Dili
VBA
Merhaba arkadaşlar,

Benim şöyle bir sorunum var, bir bankada çalışıyorum ve sürekli raporlamalar yapmak durumundayım.

Şu an üzerinde çalıştığım ve uzun vadeli bir çözüm yolu bulmaya çalıştığım konu; belli başlı kredi kullandırımlarının ortalama vadesini hesaplamak. Fakat sistemden çektiğim rapor ekteki dosyadan da görülebileceği üzere "3 yıl" , "5 ay gibi" ifadeler ile yazıyor vadeleri. Halbuki benim bunları hesaplamam için bu kolonda hepsinin ya yıl olarak, veya ay veyahutta gün olarak ve rakamla yazmasını sağlayabilmek. O yüzden, yapmak istediğim şey Vade kolonunda yer alan ve yazı halinde olan yazıyı rasyonel sonuç alabilmek için rakamsal hale çevirmem gerek. Yani mesela; hepsi aynı türden ve rakam olsun istiyorum. "3 years" yazan yere 3 yılda olan gün sayısını yani; 1095 yazsın, gene "18 months yerin yanındaki kolona" 340 gün yazdırmak. Sık sık hazırladığım raporlardan biri de bu olduğu için uzun vadeli bir çözüm arıyorum. Yardımcı olabilirseniz çok memnun olurum.

Teşekkürler.

Ek'teki dosyada da anlatım mevcuttur.
 

Ömer

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

Örnek dosyayı incelermisiniz..
 
Katılım
7 Ağustos 2007
Mesajlar
3
Excel Vers. ve Dili
VBA
Ellerinize sağlık, 2 saatir kafa patlatıyorum hiç bir şey yapamadım... Yardımlarınız için çok teşekkür ederim.
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
Merhaba arkadaşlar,

Benim şöyle bir sorunum var, bir bankada çalışıyorum ve sürekli raporlamalar yapmak durumundayım.

Şu an üzerinde çalıştığım ve uzun vadeli bir çözüm yolu bulmaya çalıştığım konu; belli başlı kredi kullandırımlarının ortalama vadesini hesaplamak. Fakat sistemden çektiğim rapor ekteki dosyadan da görülebileceği üzere "3 yıl" , "5 ay gibi" ifadeler ile yazıyor vadeleri. Halbuki benim bunları hesaplamam için bu kolonda hepsinin ya yıl olarak, veya ay veyahutta gün olarak ve rakamla yazmasını sağlayabilmek. O yüzden, yapmak istediğim şey Vade kolonunda yer alan ve yazı halinde olan yazıyı rasyonel sonuç alabilmek için rakamsal hale çevirmem gerek. Yani mesela; hepsi aynı türden ve rakam olsun istiyorum. "3 years" yazan yere 3 yılda olan gün sayısını yani; 1095 yazsın, gene "18 months yerin yanındaki kolona" 340 gün yazdırmak. Sık sık hazırladığım raporlardan biri de bu olduğu için uzun vadeli bir çözüm arıyorum. Yardımcı olabilirseniz çok memnun olurum.

Teşekkürler.

Ek'teki dosyada da anlatım mevcuttur.
Dosyanız ekte.

.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,259
Excel Vers. ve Dili
Ofis 365 Türkçe
Örnek örnektir.

Ben Sayın espiyonajl ve Sayın yurttaş gibi yetenekli olmadığım için, en basit yolu seçtim.

A Sütununu seçip metni sütunlara böl dedim.
years, months ve day ler B sütununda rakamlar A sütununda kaldı.

Daha basit bir EĞER(IF) ile işi bitirdim :)

Kod:
=EĞER(B2="";0;EĞER(B2="YEARS";A2*365;EĞER(B2="months";A2*30;A2)))
=IF(B2="";0;IF(B2="YEARS";A2*365;IF(B2="months";A2*30;A2)))
 

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
Örnek örnektir.

Ben Sayın espiyonajl ve Sayın yurttaş gibi yetenekli olmadığım için, en basit yolu seçtim.

A Sütununu seçip metni sütunlara böl dedim.
years, months ve day ler B sütununda rakamlar A sütununda kaldı.

Daha basit bir EĞER(IF) ile işi bitirdim :)

Kod:
=EĞER(B2="";0;EĞER(B2="YEARS";A2*365;EĞER(B2="months";A2*30;A2)))
=IF(B2="";0;IF(B2="YEARS";A2*365;IF(B2="months";A2*30;A2)))
Necdet bey,

Pratik, kolay ve anlaşılır çözümler; her zaman tercihim olmuştur.

Bu nedenle, sizin çözümünüz bana göre daha güzel...

.
 

aliakgul

Altın Üye
Katılım
9 Mayıs 2005
Mesajlar
402
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
Merhaba arkadaşlar,
Benzer bir sorun;
A sütununda yer alan verinin B ve C sütununa almak istediğim kısmını ek çalışmada belirttim.Ancak, renk veya kalınla yazılmış olması bizim için bir ayraç değil yani verilerimizin tamamı aynı renk ve kalınlıkta...Makro ile yapmaya çalışıyorum.Teşekkür ederim...
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,259
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları dener misiniz?

Kod:
Sub RenkAyir()
Application.ScreenUpdating = False
Range("B2:C65536").ClearContents
For i = 2 To [A65536].End(3).Row
    For j = 1 To Len(Cells(i, "A"))
        With Cells(i, "A").Characters(j, 1).Font
            If .ColorIndex = 3 Then Cells(i, "B") = Cells(i, "B") & Mid(Cells(i, "A"), j, 1)
            If .ColorIndex = 5 Then Cells(i, "C") = Cells(i, "C") & Mid(Cells(i, "A"), j, 1)
        End With
    Next j
Next i
Application.ScreenUpdating = True
End Sub
 

aliakgul

Altın Üye
Katılım
9 Mayıs 2005
Mesajlar
402
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
...renk veya kalınla yazılmış olması bizim için bir ayraç değil yani verilerimizin tamamı aynı renk ve kalınlıkta...
Üstad, sanırım dikkatinizden kaçtı; renk bizim için bir ayraç değil, yani verilerimizin tamamı aynı renk.Ben anlatımı kolaylaştırmak için o kısımları renklendirmiştim...
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,259
Excel Vers. ve Dili
Ofis 365 Türkçe
Hmmm.

Tüh o kadar da uğraşmıştım :)

Peki, o zaman neyin alınacağı nasıl belli olacak?
 
Katılım
7 Ağustos 2007
Mesajlar
3
Excel Vers. ve Dili
VBA
Sevgili Yurttas ve Necdet, yardımlarınızı için sizlere de çok teşekkür ederim. Sayenizde aynı soru için elimde 3 farklı alternatif çözüm oldu :)
 

Ömer

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

Örnek dosyayı incelermisiniz. İstediğiniz bu mu?
 

aliakgul

Altın Üye
Katılım
9 Mayıs 2005
Mesajlar
402
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
İlk denemelerime göre sanırım sorunumu çözecek.Teşekkür ederim...

Aynı işlemi makro ile yapabilir miyiz?
Not:Sadece sayısal değerleri alan formül yeterli geliyor.İsmi almasak da olur...
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,259
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Uzman olmak zor işmiş :) Önce problemi çözeceksiniz, anlayacaksınız, sonra çözüm önerisinde bulunacaksınız :)


Kod:
Sub Bul_Cek_Al()
Application.ScreenUpdating = False
[B2:C650].ClearContents
Dim i, Bul, Aranan, Sat, Uzunluk As Integer
Sat = 1
For i = 2 To [a65536].End(3).Row
    Bul = Application.WorksheetFunction.Find(" ", Cells(i, "A"))
    Aranan = Left(Cells(i, "a"), Bul - 1)
    Bas = Application.WorksheetFunction.Find(Aranan, Cells(i, "A"), Bul + 1)
    Sat = Sat + 1
    Cells(Sat, "B") = Mid(Cells(i, "A"), Bul + 1, Bas - Bul - 2)
    Baslama = Bas + Bul - 1
    Bit = Application.WorksheetFunction.Find(" ", Cells(i, "A"), Baslama) - 1
    Uzunluk = Bit - Baslama + 1
    Cells(Sat, "C") = Mid(Cells(i, "A"), Baslama, Uzunluk)
Next i
Application.ScreenUpdating = True
End Sub
 

aliakgul

Altın Üye
Katılım
9 Mayıs 2005
Mesajlar
402
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
Necdet Yeşertener;290774' Alıntı:
Uzman olmak zor işmiş :)
Dedik ya üstad; kolay olsa biz de uzman idik...:):):)Zaman ve emeğin için çok teşekkür ederim.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,259
Excel Vers. ve Dili
Ofis 365 Türkçe
Güle güle kullanınız Sayın Ali Akgül :)
 
Üst