Metnin içinde yer alan iki karakterin arasındaki değeri alma

Katılım
11 Ağustos 2021
Mesajlar
3
Excel Vers. ve Dili
2013
Arkadaşlar merhaba,

PARÇAAL, YERİNEKOY gibi komutlarla yaklaşık 2 saat denedim fakat beceremedim. Sorum şu;

Aşağıdakine benzer satırlarım var:

0216 252 11 00 | Ad Soyad - email@mynet.com - 01.04.2021 | 60,19 EUR | Kalan: 23,57 EUR - Tahsil Edildi
0216 111 11 00 | Ad Soyad (firması)- emai2l@mynet2.com - 01.05.2021 | 10 EUR | Kalan: 2 EUR - Tahsil Edildi
0216 111 11 00 | Ad Soyad (Yedek ad soyad) - emai2l@mynet2.com - 01.10.2021 | 156,50 EUR | Kalan: 85,57 EUR - Tahsil Edilmedi

Bu satırlardan 100lerce var. Bu satırlarda yer alan EUR değerinin hemen yanındaki rakamı alıp başka bir sütuna atmak istiyorum. Farkettiyseniz iki tane EUR değer mevcut. Birinci EUR değeri başka sütuna, ikinci EUR alanını başka sütuna yazdırmak istiyorum. Elimdeki tek parametreyse göreceğiniz üzere dikey çizgi " | " karakterinin aralarında yer alıyor rakamlar. Rakamlar değişkenlik gösterdiği için "SAĞDAN-SOLDAN" fonksiyonları kullanamadım.

Veri > Metni Sütunlara Dönüştür kısmından denedim ancak işin içine (Yedek ad soyad) girince metni sütunlara dönüştüremiyorum.

Nasıl bir yol izlemeliyim sizce?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
" | " karakterini kullanarak metni sütunlara dönüştür ile ilk hamleden sonra, bu kez D sütununda "boşluk" karakterini kullanarak yine metni sütunlara dönüştür seçeneği ile yapılabiliyor.....

.
 
Katılım
11 Ağustos 2021
Mesajlar
3
Excel Vers. ve Dili
2013
" | " karakterini kullanarak metni sütunlara dönüştür ile ilk hamleden sonra, bu kez D sütununda "boşluk" karakterini kullanarak yine metni sütunlara dönüştür seçeneği ile yapılabiliyor.....

.
Haluk Bey cevabınız için teşekkürler. Bunu düzenli olarak yapmam biraz uzun sürecek. Liste aslında çok uzun. Bir formülize etmemim yolu var mı acaba? Metni sütunlara Dönüştür özelliği gibi parçalayabilecek bir formül arayışındayım
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Metinlerin A sütununda olduğunu var sayarsak birincisini B ikincisini C sütununa yazacak şekilde kodlar aşağıdadır.

Kod:
Sub Test()
    Dim i As Variant
    Dim Bak As Integer
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        i = Split(Cells(Bak, "A"), "|")
        Cells(Bak, "B") = CDbl(Replace(Replace(i(2), "EUR", ""), " ", ""))
        i = Split(i(3), "-")
        Cells(Bak, "C") = CDbl(Replace(Replace(Replace(i(0), "EUR", ""), "Kalan:", ""), " ", ""))
    Next
End Sub
 
Son düzenleme:

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatif olarak, RegExp metodonunun kullanıldığı KullanıcıTanımlıFonksiyon içeren ekli dosyayı inceleyebilirsiniz....



.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Hızlı Doldurma ile yapabilirsiniz.
Verileriniz A sütununda olduğu varsayımı ile;
B1 hücresine 60,19 yazın, Veri>Hızlı Doldurma tıklayın.
C1 hücresine 23,57 yazın, Veri>Hızlı Doldurma tıklayın.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    With CreateObject("Vbscript.Regexp")
        .Pattern = "([\d,]+ EUR)"
        .Global = True
        For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
            If .test(Cells(i, 1).Value) Then
                sut = 2
                For Each mtch In .Execute(Cells(i, 1).Value)
                    mtch = Replace(Replace(mtch, "EUR", ""), ",", ".")
                    Cells(i, sut).Value = CDbl(mtch)
                    sut = sut + 1
                Next
            End If
        Next i
    End With
End Sub
 
Katılım
11 Ağustos 2021
Mesajlar
3
Excel Vers. ve Dili
2013
@Haluk @Muzaffer Ali @muratboz06 @veyselemre

Sevgili arkadaşlar ne kadar teşekkür etsem sizlere az. Sorunumu hem harika yollarla çözmüş oldum, hem de her birinizin farklı bakış açısı, farklı sayısal yorumlarıyla kendimi geliştirme fırsatı buldum. Gerçekten içtenlikle teşekkür ederim.
 
Üst