• DİKKAT

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

Karışık Metni Yan Hücreye Bölme

Katılım
3 Aralık 2012
Mesajlar
13
Excel Vers. ve Dili
2010 Eng.
Arkadaşlar merhaba,

Bir hücredeki rakam+yazı'yı yan hücreye bölebilir miyim. Yani bir sütundaki uzunluğu aynı olmayan sayılardan sonraki kısmı yan hücreye atmam gerekiyor.

Text to columns seçeneği ile yapamadım çünkü sayı ve yazı uzunlukları stabil değil.

Örn :

123456xxxxxx
12345yyyyy
111oooooooo
222ssss

İsteğim :

A Sütunu ...... B Sütunu
123456 ......... xxxxxx
12345 ........... yyyyy
111 .............. oooooooo
222 .............. sss

Teşekkürler,
 
. . .

Metinler arasında boşluk gibi kullanılabilecek sabit bir koşul olsa formüller ile yapılabilirdi.
Ancak metinler bu şekilde birleşik ise KTF ile yapılmış bir örnek ektedir.

Sayılar için formül:
Kod:
=ayır(A1;"S")

Metinler için formül:
Kod:
=ayır(A1;"M")

Kod:
Function ayır(Hucre As Range, Seçim As String)
   sayı = Empty
   metin = Empty
    
    For i = 1 To Len(Hucre)
    If IsNumeric(Mid(Hucre, i, 1)) Then
    sayı = sayı & Mid(Hucre, i, 1)
    
    ElseIf Not IsNumeric(Mid(Hucre, i, 1)) Then
    metin = metin & Mid(Hucre, i, 1)
    End If
    
    Next i
    
    If Seçim = "S" Then
    ayır = sayı
    ElseIf Seçim = "M" Then
    ayır = metin
    End If
    
End Function

. . .
 

Ekli dosyalar

Merhaba,
Verilerinizin kalıbı bozulmayacaksa (sayılar solda metinler sağda) verinizi A1 hücresine girerek deneyiniz.
Sayıları almak için;
Kod:
=SOLDAN(A1;KAÇINCI(0;--ESAYIYSA(--PARÇAAL(A1;SATIR($1:$10);1));)-1)
[COLOR="Blue"]Formül dizi formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]

Metinleri almak için;
Kod:
=SAĞDAN(A1;KAÇINCI(0;--ESAYIYSA(--PARÇAAL(A1;SATIR($1:$10);1));))
[COLOR="Blue"]Formül dizi formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]

Açıklama: Verileriniz metinsel değerler solda sayısal değerler sağda olduğu zaman formülde ilgili alanı şu şekilde değiştriniz.
KAÇINCI(0; kısmını KAÇINCI(1; şeklinde.

Not: Hüseyin bey'in mesajı görülmeden yazılmıştır.
 
Vermiş olduğunuz formülü uyguladım;

=RIGHT(M2;MATCH(1;--ISNUMBER(--MID(M2;ROW($1:$10);1));))

M2 hücresinde 7049SerkanAŞCIOĞLU vardı.

Formülü M3 hücresine yazdım, sadece soyadının U harfini verdi.

=RIGHT(M2;MATCH(0;--ISNUMBER(--MID(M2;ROW($1:$10);1));)) formülünü kullandığımda ise,

Soyadının son beş harfini veri.
 
Kod:
=LEFT(M2;MATCH(0;--ISNUMBER(--MID(M2;ROW($1:$10);2));))

Formülde ufak değişiklikle hallettim.

Teşekkür ederim.
 
Makro ile alternatif çözüm;
Kod:
[FONT="Trebuchet MS"]Sub Emre()
    Dim i%
    For i = 1 To Range("A65536").End(3).Row
        Cells(i, 2) = [COLOR="red"]Val[/COLOR](Cells(i, 1))
        Cells(i, 3) = Replace(Cells(i, 1), [COLOR="red"]Val[/COLOR](Cells(i, 1)), "")
    Next i
    i = Empty
End Sub[/FONT]
 
Geri
Üst