[ÇÖZÜLDÜ] İki karekter arasındaki cümleyi kesip almak

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Günaydın arkadaşlar,

Al.fat. : A-610699/SEM METAL VE PLASTİK SAN.TİC.LTD.ŞTİ\
şeklindeki kayıtlarda /..ve... \ arasındaki cümleyi nasıl alabiliriz.

Daha açık bir şekilde yazmam gerekirse;

Excel sayfasında "F" sütununda bir hücreye tıkladığımda; "K" sütununda bulunan üstteki örnekteki gibi bir bilgiden "/" ve "\" karekterlerinin arasında kalan alan "F" sütununda o hücreye kopyalansın istiyorum.

Saygılarımla....
 
Son düzenleme:
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Bilgi olsun diye ekleyeyim; F ve K sütunları aynı satır için söylemiştir. Yani aynı satırdaki K sütununda bulunan bir bilginin iki karekter arasında kalan kısmı, aynı satardaki F sütununa kopyalanacaktır.

Saygılarımla..
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
A1 hücresinde

Al.fat. : A-610699/SEM METAL VE PLASTİK SAN.TİC.LTD.ŞTİ\

olsun.

B1 hücresine

=PARÇAAL(A1;BUL("/";A1)+1;TOPLA(BUL({"/";"\"};A1)*{-1;1})-1)

yazıp denermisiniz.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Üstadım sağolun ama bir üst satırı alıyor sanırım.

Ve en üst satırda da hata veriyor
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Selamlar;

=SAĞDAN(K2;UZUNLUK(K2)+1-BUL("/";YERİNEKOY(K2;" ";" ";UZUNLUK(K2)-UZUNLUK(YERİNEKOY(K2;" ";""))))-1)
formülünde kesilen kısmın sonunda bir karekter fazla kalıyor...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,552
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ali beyin örnediği formülü test ettiğim ve doğru sonucu veriyor. Sanırım siz uygularken bir hata yaptınız. Formüldeki A1 yazan yerleri K2 yaparak denermisiniz.
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Ekli dosya isteklerinize uygun hazırlanmıştır.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Selamlar,

Ali beyin örnediği formülü test ettiğim ve doğru sonucu veriyor. Sanırım siz uygularken bir hata yaptınız. Formüldeki A1 yazan yerleri K2 yaparak denermisiniz.
Üstadım hata yapmadım zaten verdiğim örnekte de K2 yapılmış şekli var..

Al.fat. : A-18498/RAHMET AMBALAJ GIDA TEM.ÜR.SAN.TİC.LTD.ŞTİ\
örneğinde;

=SAĞDAN(K2;UZUNLUK(K2)+1-BUL("/";YERİNEKOY(K2;" ";" ";UZUNLUK(K2)-UZUNLUK(YERİNEKOY(K2;" ";""))))-1)
formülü;

RAHMET AMBALAJ GIDA TEM.ÜR.SAN.TİC.LTD.ŞTİ\
sonucunu veriyor. Yani sondaki "\" işaretini de alıyor.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Korhan Beyde denemiş bende denedim hata vermedi.

Dosya ektedir.
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Ben teşekkür ederim, faydalı olabildi isek ne mutlu bize :)
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Korhan Beyde denemiş bende denedim hata vermedi.

Dosya ektedir.
Evet üstadım, teşekkürler ben bu arada Sayın Uzmanamelenin verdiği link bakmıştım da... İlginize çok teşekkür ederim, sorunsuz çalışıyor formülünüz...
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Bir alternatif de benden olsun :)

Makrolu çözüm ve Regular Expression kullanımını ilginizi çekerse inceleyebilirsiniz.

K2:K8 aralığı; Firma isimlerinin bulunduğu alan, F2:F8 de çift tıklama yapılacak (verilerin ayrıştırılacağı) alan olarak belirlenmiştir. (Bu alanları istediğiniz gibi genişletebilirsiniz) Hal böyleyken; aşağıdaki kodları verilerin bulunduğu sheet'in kod sayfasına kopyalayınız.

Kod:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Cancel = True
    
    If Not Intersect(Target, Range("F2:F8")) Is Nothing Then
        Target = Deger(Cells(Target.Row, "K"))
    Else
        Cancel = False
    End If
End Sub
'-------------------------------------
Private Function Deger(rg As Range)
    Dim RegEx As Object
    Set RegEx = CreateObject("vbscript.regexp")
    
    With RegEx
        .MultiLine = False
        .Global = True
        .IgnoreCase = False
        .Pattern = "\/([\d\w\ \/\.\ç\Ç\ı\İ\ö\Ö\ş\Ş\ü\Ü]+)\\"
    End With
    
    On Error Resume Next
    
    If Err > 0 Then
        Deger = ""
    Else
        Deger = RegEx.Replace(RegEx.Execute(rg.Text).Item(0).Value, "$1")
    End If
    
    On Error GoTo 0
    
    Set RegEx = Nothing
End Function
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,158
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Bir seferde hepsi getirilemezmi?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Değer adlı function ile birlikte, aşağıdaki makroyu bir modüle kopyalayın ve makroyu çalıştırın.

Kod:
Sub Istenen_Kelimeyi_Ayir()
    Dim i As Integer
    For i = 2 To 6
        Cells(i, "F") = Deger(Cells(i, "K"))
    Next i
End Sub
Not : Function'ın .Pattern kısmını şu şekilde değiştirirseniz, kapsamı biraz daha genişler ...

Kod:
        .Pattern = "\/([\d\w\ \/\\\.\,\-\ç\Ç\ğ\Ğ\ı\İ\ö\Ö\ş\Ş\ü\Ü]+)\\"
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Ferhat hocam yine döktürmüşsünüz, ben işimi görmüş olmama ramen ilginize ve emeğinize kocaman bir teşekkür...
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Ferhat Hocam;

.Pattern = "\/([\d\w\ \/\\\.\,\-\ç\Ç\ğ\Ğ\ı\İ\ö\Ö\ş\Ş\ü\Ü]+)\\"
Paterndeki işaretlerin kodda işlevi ve kullanımı nasıl olur. Yani / yerine [ yi nasıl aratırız..
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ferhat Hocam;
Paterndeki işaretlerin kodda işlevi ve kullanımı nasıl olur. Yani / yerine [ yi nasıl aratırız..
Şöyle ki;

Pattern'de yazan bir sürü parametre var. Aslen ilk "/" işareti ile son "\" işaretinin arasında kalan kelimeleri bulmak için tasarlandı... Ama siz Pattern'de kırmızı ile gösterdiğim yerleri, değiştirirseniz "[" ve "]" işaretleri arasında kalan kelimeleri de bulabilirsiniz.

.Pattern = "\/([\d\w\ \/\\\.\,\-\ç\Ç\ğ\Ğ\ı\İ\ö\Ö\ş\Ş\ü\Ü]+)\\"

yani son şekli şöyle olacak ...

.Pattern = "\[([\d\w\ \[\].\,\-\ç\Ç\ğ\Ğ\ı\İ\ö\Ö\ş\Ş\ü\Ü]+)\]"
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
Üstadım geç kaldım çok teşekkürler, bu bilgi çok hora geçti sağolun.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst