Soru Metnin içindeki sayıları ayırma ve yapıştırma

Katılım
24 Şubat 2020
Mesajlar
4
Excel Vers. ve Dili
Excel 2007 Türkçe
Bir metnin içindeki belli bir kelimeden sonra gelen sayıları ayırıp (veya kopyalayıp farketmez) farklı bir sütuna aktarmak istiyorum, nasıl yapabilirim?

Örneğin
ÖdenenPara:108.000AktarılanPara:77.000

buradaki ödenen paradan sonra gelen miktarı başka bir sütuna, aktarılan paradan sonra gelen miktarı ayrı bir sütuna yazdırmak istiyorum mümkün müdür?

Dipnot: Metin tek parça (text) halinde değil, arada boş hücreler var, ancak hepsi A sütunundan aşağı doğru sıralanmış halde, B sütununda durumla ilgili bir veri yok.

Dipnot2: Foruma bugün kaydoldum ve henüz altın üye değilim, yaptığınız çalışmaları/kodları mail adresime gönderebilirseniz (mail adresim: ahmetkurubek@gmail.com) veya başka bir yolla iletebilirseniz sevinirim..
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Dosya yapınızı bilmemekle birlikte, Excelin hızlı doldur özelliğini kullanabilirsiniz.
214632
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,272
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

Veriniz A1 hücresinde ise;

B1 Hücresine;
C++:
=SOLDAN(YERİNEKOY(YERİNEKOY(A1;"ÖdenenPara:";"");"AktarılanPara:";" ");MBUL(" ";YERİNEKOY(YERİNEKOY(A1;"ÖdenenPara:";"");"AktarılanPara:";" "))-1)
C1 Hücresine;
C++:
=PARÇAAL(YERİNEKOY(YERİNEKOY(A1;"ÖdenenPara:";"");"AktarılanPara:";" ");MBUL(" ";YERİNEKOY(YERİNEKOY(A1;"ÖdenenPara:";"");"AktarılanPara:";" "))+1;15)
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
+ Alternatif;

108.000 değeri için
Kod:
=PARÇAAL(A1;BUL(":";A1;1)+1;BUL("Aktarılan";A1)-BUL(":";A1;1)-1)
77.000 değeri için
Kod:
=PARÇAAL(A1;BUL("AktarılanPara:";A1)+14;UZUNLUK(A1)-BUL("AktarılanPara:";A1))
formülleri kullanılabilir.
 
Katılım
24 Şubat 2020
Mesajlar
4
Excel Vers. ve Dili
Excel 2007 Türkçe
Cevaplarınız için teşekkür ederim arkadaşlar, konuda benim yazdığım örneğe göre formül vermişsiniz ancak ben örneğimi istediğim veriye göre uyumlu olarak yazamamışım özür dilerim benim hatam. Tam olarak neye ihtiyacım olduğunu örnek dosya olarak ekledim.

İçerisinde açıklama metni mevcut: https://www.dosyaupload.com/75pi
 

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
İlk mesajdaki soru ile eklediğiniz dosya arasında ortak bir nokta yok. Soru sorarken daha dikkatli olmak gerekiyor.
Eklediğiniz dosyadaki verileri internet üzerinden alıyorsanız datayı oradan almak daha rahat ve hızlı olabilir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,272
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Son eklediğiniz dosyaya göre makro kullanılması daha uygun görünüyor.

Deneyiniz.

C++:
Option Explicit

Sub Listele()
    Dim S1 As Worksheet, Veri As Variant, X As Byte, Y As Long, Z As Integer
    Dim Son As Long, Aranan As Variant, Bul As Integer, Sayi As String, Zaman As Double
    
    Zaman = Timer
    
    Set S1 = Sheets("Sayfa3")
    
    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    
    S1.Range("D2:F" & S1.Rows.Count).ClearContents
    
    Veri = S1.Range("A1:A" & Son).Value2
    Aranan = Array("Ressources:", "Flottes:", "Défense:")
    
    For X = LBound(Aranan) To UBound(Aranan)
        For Y = LBound(Veri) To UBound(Veri)
            Bul = InStr(1, Veri(Y, 1), Aranan(X))
            If Bul > 0 Then
                For Z = Bul + Len(Aranan(X)) + 1 To Bul + Len(Aranan(X)) + 1 + 30
                    If IsNumeric(Mid(Veri(Y, 1), Z, 1)) Or Mid(Veri(Y, 1), Z, 1) = "," Or Mid(Veri(Y, 1), Z, 1) = "." Then
                        Sayi = Sayi & Mid(Veri(Y, 1), Z, 1)
                    Else
                        Exit For
                    End If
                Next
                S1.Cells(S1.Rows.Count, X + 4).End(3)(2) = Replace(Replace(Sayi, ",", "."), ".", "")
                Sayi = Empty
            End If
        Next
    Next
    
    Son = S1.Cells(S1.Rows.Count, "D").End(3).Row
    S1.Range("D2:F" & Son).NumberFormat = "General"
    
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Üst