• DİKKAT

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

Sağdan Kelime Alma

  • Konbuyu başlatan Konbuyu başlatan csagdan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Eylül 2004
Mesajlar
60
Arkadaşlar merhaba,

size bir sorum olacak.

Elimde karakter uzunlukları birbirinden tamamiyle farklı yüzelerde satır bir data var.

İhtiyacım olan bu datada örneğin sağdaki 2 kelimeyi ayır diyebilmem

bunun bir kısa yolu varmı acaba...

Ã?rn

"Bugün hava çok sıcak" cümlesindeki sıcak kelimesini başka sutüna al
 
VERİ-Metni Sütunlara Dönüştür 'den aralarında boşluk yada belirleyeceğiniz (,)-(;) gibi bir ayıraca göre sütunlara ayırabilirsiniz

İyi Çalışmalar
 
Kod:
Sub ayır()
For i = 1 To Cells(65536, 1).End(xlUp).Row
    a = Split(Cells(i, 1), " ")
    For j = 0 To UBound(a) - 1
        Cells(i, 4) = Cells(i, 4)
    Next j
    Cells(i, 3) = a(UBound(a))
Next i
End Sub
Kodu ile son kelimeleri ayırabilirsiniz.
Fonksiyon olarakta =parçaal fonksiyonunu kullanabilirsiniz.

Hangi sütuna almak istiyorsanız;
Kod:
Cells(i, 3) = a(UBound(a))
3 değerini değiştirmeniz gerek.3 C Sütuna karşılık gelmketedir.

Kod:
=parçaal
Fonksiyonunda,sabit olan Kelimelerde yukarıdaki işlemi yapabilirsiniz.
Ã?rnek:
A1 Hücresinde ..
"Excel Web Tr Sitesi"Kelimelerinden "Tr"Ayırmak isterseniz.
Karakter sayılarını sayarak yapabilirsiniz.Baştan itibaren boşluk dahil 10 satır dan sonra alacağın kelime kaç karakter ise (3) onu yazdığında "Tr" verecektir.
Kod:
=PARÇAAL(A1;10;3)
Sonuç:Tr
Dediğim gibi bu fonksiyonu sabit olan cümlelerde/kelimelerde kullanabilirsiniz..Yani Formülü aşağıya çektiğinde her cümlenin 10 karakterinden sonraki 2 karakteri alacaktır.

USER FORMDA:
A1 Hücresinde Yazılı Kelimeleri TextBoxa aktarıp İstenilen Hücreye Yazdırabilisiniz.
EK:Ataçlı Dosya
Kod:
Private Sub CommandButton1_Click()
a = Split([a1])
TextBox1 = a(0)
TextBox2 = a(1)
TextBox3 = a(2)
TextBox4 = a(3)
End Sub
 
Son rica

MErhaba

Birincisi bu iş metne sütunlara dönüştür ile olmuyor çünkü satırların karakter sayıları çok farklı ...

İkinci olarak sayın xxrt nin kodu aslında çok güzel.

ancak sanırım benim işimi görebilmesi için birkaç ekleme daha yapılması gerekiyor.

Yazdığınız makroda son kelimeleri çok güzel ayırıyor ancak bir önceki metinden ayırdığı kelimeyi silmiyor. Bunuda sağlayabilirmiyiz.
 
sıcak kelimesini başka sutüna al
Dediğiniz için ;
metinden ayırdığı kelimeyi silmiyor.
İsteminiz gerçekleşmedi.
ekleme daha yapılması gerekiyor.
Kod:
Sub ayır()
For i = 1 To Cells(65536, 1).End(xlUp).Row
    a = Split(Cells(i, 1), " ")
    For j = 0 To UBound(a) - 1
        Cells(i, 4) = Cells(i, 4)
    Next j
    Cells(i, 3) = a(UBound(a))
   Range("A1").Select
   Selection.ClearContents
Next i
End Sub

Ã?rneği Üst Mesjıma ek Ataç olarak eklendi.
 
:(

Arkadaşlar olmadı ya...

ben mi yapamadım bilemiyorum eklediğiniz makroyu kopyaladım ama yine eski metindeki aldığı kelimeyi silmiyor
 
eski metindeki aldığı kelimeyi silmiyor
Aldığı kelimeyi silmekmi istiyorsunuz?
sıcak kelimesini başka sutüna al
Ayırdığınız Kelimeyi Silmek istiyorsanız..Yani
"Ahmet Eve Geldi Yemek değil"Kelimesinden "değil"kelimesini çıkarıp silmek istorsanız.
Kod:
Sub ayır()
For i = 1 To Cells(65536, 1).End(xlUp).Row
    a = Split(Cells(i, 1), " ")
    For j = 0 To UBound(a) - 1
        Cells(i, 4) = Cells(i, 4)
    Next j
    Cells(i, 3) = a(UBound(a))
   Range("c1").Select
   Selection.ClearContents
Next i
End Sub
Kodları iyi incelerseniz C1'yazılan yer
Kod:
Cells(i, 3) = a(UBound(a))
3rakamına denk gelmektedir..
 
:) sanırım ben anlatamadım. kusura bakmayın bakın sizin verdiğiniz örnekle açıklamaya çalışayım.

orjinal cümle

Ahmet Eve Geldi Yemek değil ise

makrodan sonra

a hücresinde Ahmet Eve Geldi Yemek
b hücresinde Değil

yazmalı

Yani kelimeyi yeni hücreye ayırması gerekiyor.
 
Sorunuzun her iki cevabı yukarıda verilmiştir.Lütfen uygulayarak inceleyin.Saygılarımla
 
Merhabalar;

[a1]="ab cd ef gh"

olsun

a = Split([a1])

Text1 = a(0)
Text2 = a(1)
Text3 = a(2)
Text4 = a(3)


şeklinde degerlere atamak istiyorum hata veriyor, nasıl çözebilirim.

İyi Çalışmalar.
 
Arkadaşlar tamam çözdüm,
kusura bakmayın....
 
Merhaba,

Yeni konu açmadan bu konu üzerinden devam etmek istedim. Yaklaşık 70 bin satırlık bir adres datasından il ilçeyi ayırmam gerekiyor. Bu İl İlçe verinin en son iki kelimesinde yazmakta. Yani sağdan son iki kelimeyi alıp o hücrenin sağ tarafına yazdırmam gerekmekte. Metni sütunlara dönüştür ile alamıyorum çünkü bir satırda 5 kelime varsa diğerinde 7, bir diğerinde 12 vs. olabiliyor.

Bu konuda anlatılanlar ile çözemedim durumu, yardımcı olabilirseniz sevinirim. Örnek olarak iki satırlık bir data ekte iletiyorum.
 

Ekli dosyalar

Merhaba,

Yeni konu açmadan bu konu üzerinden devam etmek istedim. Yaklaşık 70 bin satırlık bir adres datasından il ilçeyi ayırmam gerekiyor. Bu İl İlçe verinin en son iki kelimesinde yazmakta. Yani sağdan son iki kelimeyi alıp o hücrenin sağ tarafına yazdırmam gerekmekte. Metni sütunlara dönüştür ile alamıyorum çünkü bir satırda 5 kelime varsa diğerinde 7, bir diğerinde 12 vs. olabiliyor.

Bu konuda anlatılanlar ile çözemedim durumu, yardımcı olabilirseniz sevinirim. Örnek olarak iki satırlık bir data ekte iletiyorum.

Merhaba..

Split ile birlikte StrReverse fonksiyonundan faydalanabilirsiniz..

Kod:
Function trz(adres As String) As String
aa = Split(StrReverse(adres))
trz = StrReverse(aa(1) & " " & aa(0))
End Function

Hücrede =trz(A2) şeklinde kullanabilirsiniz..
 
Teşekkür ederim. Biraz acelem olduğundan cevabı bekleyemeden, biraz acemice de olsa metini sütunlara ayırıp tersten "&" ile birleştirip öndeki boşlukları kırp ile götürdükten sonra ilk iki kelimeyi almak için parçaal kullandım.

Yukarıdaki fonksiyonları öğrendiğim de iyi oldu ama, bir dahakine böyle uzunca ve gereksiz formül yazmadan halledebilirim :)
 
Geri
Üst