Soru Hücrede arama yapıp PARÇAAL

Katılım
16 Eylül 2020
Mesajlar
17
Excel Vers. ve Dili
Türkçe
Merhaba,

Bir hücrede x harfi var mı diye aratıp,
Varsa x harfinden üç önce ve üç sonraki birden fazla değeri çekip virgülle nasıl yazdırabilirim?
Örn.:
Hücre: Size: 200x300cm 7'x10'<br />Origin: Turkish</p>
Formül Sonucu: 200x300, boşluk7'x10'
(3 karakter deyince haliyle 80x150 veya 7'x10' gibi verilerde boşluları da alacak, bu kabul edilebilir ama veri 12'4"x10'x6" gibi bir şey olduğunda ne yapacağım bilmiyorum)

Mesela hücrede Color kelimesi geçiyor mu?
Geçiyorsa bu Blue, Grey verisini nasıl çekebilirim?
Örn.:
Hücre: Color: Blue, Grey<br />Made of Polypropylene<br />Size: 200x300cm 7'x10'<br />Origin: Turkish</p>
Formül Sonucu: Blue, Grey

800'e yakın satır var ve ürün tanımlamalarından ürün etiketi, tag çıkarmam gerekiyor :(

Yardımlarınız için çok teşekkürler.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,675
Excel Vers. ve Dili
Microsoft 365 Tr-64
Her türlü durum için verilerinizi içeren örnek bir dosya hazırlayın.
Bir sütunda verinin ham hali
Diğer sütunda almak istediğiniz sonucu belirtin.
Bunu hem sorunuzdaki her iki veri türü için tüm değişik veri ve sonuçlarını içerecek ve her türden 2-3 örnek olacak yapın lütfen.

Dosyanızı foruma ekleyin.
Ya da Altın üye değilseniz dosyanızı harici paylaşım sitelerine ekleyerek link paylaşabilirsiniz.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Bu fonksiyonu kullanın.
Kendinize göre uyarlayın.
'=GetEveryThingBetween(A1;":";"<")'
Kod:
Function GetEveryThingBetween(ByVal Str As String, ByVal strStart As String, ByVal strEnd As String, Optional ByVal st As Long = 0) As String()
    Dim foundstr As String
    Dim s1, s2 As String
    Dim xStart As Integer
    Dim xEnd As Integer
    Dim bolKeepGoing As Boolean
    Dim RetStr() As String
    Dim StrCount As Integer
    
    bolKeepGoing = True
    s1 = InStr(st + 1, Str, strStart, vbTextCompare)
    If s1 > 0 Then
        Do Until bolKeepGoing = False
        xStart = s1 + Len(strStart) + 1
        xEnd = InStr(xStart, Str, strEnd, vbTextCompare)
        If xEnd > 0 And xEnd > xStart Then
            'We have found an item
            foundstr = Mid(Str, xStart, xEnd - xStart)
            ReDim Preserve RetStr(StrCount)
          
            RetStr(StrCount) = foundstr
            StrCount = StrCount + 1
                s1 = InStr(xEnd + Len(strEnd), Str, strStart, vbTextCompare)
            If s1 < xStart Then
                bolKeepGoing = False
            End If
        Else
            'No more Items
            bolKeepGoing = False
        End If
    Loop
    End If
    GetEveryThingBetween = RetStr
    
End Function
 
Üst