• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Extre Bilgisindeki İsimleri ve Miktarları Almak

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,435
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Örnek dosyamda da açıklama yapmaya çalıştım. Bankadan aldığımız extre de standart bilgiler içeren ve içinde örnek dosyada anlatmaya çalıştığım ad soyadları ve para miktarları yan sütuna almak istiyorum. Teşekkür ederim
 

Ekli dosyalar

İlk aklıma geleni yaptım, daha iyisi yapılabilir..
B1 hücresine:
Kod:
=PARÇAAL(A1;MBUL(":";A1;100)+1;MBUL(" ";A1;11))
C1 hücresine:
Kod:
=PARÇAAL(A1;MBUL("TL";A1;100)+3;5)
 
RegExp kullanarak VBA ile alternatif;

C++:
Function getAmount(str As String)
    With CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "TL\s\d+(\,\d+)?"
        str = Replace(WorksheetFunction.Trim(str), ".", "")
        If .Test(str) Then
            getAmount = Replace(.Execute(str)(0), "TL ", "") + 0
        Else
            getAmount = vbNullString
        End If
    End With
End Function
'
Function getName(str As String)
    With CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "(Gönderen:|Borçlu Hesap Sahibi)(.+)(\sBankası:|\sHesap Şubesi:)"
        str = WorksheetFunction.Trim(str)
        If .Test(str) Then
            getName = Replace(Replace(.Execute(str)(0), "Gönderen:", ""), " Bankası:", "")
            getName = Replace(Replace(getName, "Borçlu Hesap Sahibi:", ""), " Hesap Şubesi:", "")
        Else
            getName = vbNullString
        End If
    End With
End Function
 
Moderatör tarafında düzenlendi:
İlk aklıma geleni yaptım, daha iyisi yapılabilir..
B1 hücresine:
Kod:
=PARÇAAL(A1;MBUL(":";A1;100)+1;MBUL(" ";A1;11))
C1 hücresine:
Kod:
=PARÇAAL(A1;MBUL("TL";A1;100)+3;5)

Sayın Greenblacksea53. Emeğinize sağlık. İsmi alıyor ancak para miktarı değişince yeni miktarı almıyor sadece 1050 olarak alıyor.
 
Aşağıdaki fonksiyonları deneyiniz.

C++:
Function getAmount(str As String)
    With CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "TL\s\d+(\,\d+)?"
        str = Replace(WorksheetFunction.Trim(str), ".", "")
        If .Test(str) Then
            getAmount = Replace(.Execute(str)(0), "TL ", "") + 0
        Else
            getAmount = vbNullString
        End If
    End With
End Function
'
Function getName(str As String)
    With CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "(Gönderen:|Borçlu Hesap Sahibi:)(.+)(\sBankası:|\sHesap Şubesi:|Bankası/Şubesi:)"
        str = WorksheetFunction.Trim(str)
        If .Test(str) Then
            getName = Replace(Replace(.Execute(str)(0), "Gönderen:", ""), " Bankası:", "")
            getName = Replace(Replace(getName, "Borçlu Hesap Sahibi:", ""), " Hesap Şubesi:", "")
            getName = Replace(getName, "Bankası/Şubesi:", "")
            
            
        Else
            getName = vbNullString
        End If
    End With
End Function
 
Moderatör tarafında düzenlendi:
Hocam çok teşekkür ederim. Elinize sağlık.Harikasınız
 
Biraz formül antrenmanı yaptım. Alternatif olsun..

Not: Dosyanızdaki kişisel bilgiler gerçekse forumdan kaldırırsanız iyi olur.

B2;
C++:
=EĞER(C2=0;"";EĞERHATA(KIRP(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(PARÇAAL(KIRP(A2);İNDİS(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));""));0));İNDİS(EĞERHATA(MBUL({"Alacaklı Hesap:";"Bankası:";"Hesap Şubesi:";"No:";"hesabına"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"Alacaklı Hesap:";"Bankası:";"Hesap Şubesi:";"No:";"hesabına"};KIRP(A2));""));0))-İNDİS(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));""));0)));"Hesap Sahibi:";"");"Gönderen:";"");"Alacaklı Adı:";"");"Kurum Adı:";"");"-";""));""))

C2;
C++:
=EĞERHATA(SAYIYAÇEVİR(PARÇAAL(KIRP(A2);MBUL("TL ";KIRP(A2))+3;İNDİS(EĞERHATA(MBUL({"- H";"+ H";"- V"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"- H";"+ H";"- V"};KIRP(A2));""));0))-MBUL("TL ";KIRP(A2))-3));0)
 
Biraz formül antrenmanı yaptım. Alternatif olsun..

Not: Dosyanızdaki kişisel bilgiler gerçekse forumdan kaldırırsanız iyi olur.

B2;
C++:
=EĞER(C2=0;"";EĞERHATA(KIRP(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(PARÇAAL(KIRP(A2);İNDİS(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));""));0));İNDİS(EĞERHATA(MBUL({"Alacaklı Hesap:";"Bankası:";"Hesap Şubesi:";"No:";"hesabına"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"Alacaklı Hesap:";"Bankası:";"Hesap Şubesi:";"No:";"hesabına"};KIRP(A2));""));0))-İNDİS(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"Hesap Sahibi:";"Gönderen:";"Alacaklı Adı:";"Kurum Adı:";"-"};KIRP(A2));""));0)));"Hesap Sahibi:";"");"Gönderen:";"");"Alacaklı Adı:";"");"Kurum Adı:";"");"-";""));""))

C2;
C++:
=EĞERHATA(SAYIYAÇEVİR(PARÇAAL(KIRP(A2);MBUL("TL ";KIRP(A2))+3;İNDİS(EĞERHATA(MBUL({"- H";"+ H";"- V"};KIRP(A2));"");KAÇINCI(DOĞRU;ESAYIYSA(EĞERHATA(MBUL({"- H";"+ H";"- V"};KIRP(A2));""));0))-MBUL("TL ";KIRP(A2))-3));0)


Teşekkür ederim Korhan Hocam . Çok başarılı olmuş. Harika çalışıyor
 
Geri
Üst