Anlamını yitirmeden kelime ayırmak

Katılım
6 Mayıs 2014
Mesajlar
1
Excel Vers. ve Dili
2010
Kendimi excel biliyor sanıyordum, anlatacağım soruyla karşılaşıncaya denk.
Sorumun cevabını ararken buralara kadar geldim.sorum http://www.excel.web.tr/f48/kelime-ayyklama-kodu-aryyorum-t140253.html buradaki gibi benzerlik taşıyor ama aynısı değil yada ben uygulamada sıkıntı yaşadım.
Sorum şöyledir.
A1 hücresinde BUGÜN BISIKLET TURUNA KATILIMIN ÇOK FAZLA OLMASINI BEKLIYORUZ.KATILIMCILARIN KENDI BISIKLETLERINI GETIRMELERI RICA EDERIM.
bu şekilde bir cümle olsun, benim istediğim uzunlukları 10 karakter olacak şekilde hücrelere bölmek 10 karakterden fazlada olabilir,Örnek vermesi açısından 10 karakter dedim.

Hücrelere bölünecek kelimeler anlamını kaybetmeyecek şöyle ki
10 karakter alacağız
A2 hücresine BUGÜN BİS olmayacak anlamsız olduğu için
A2 BUGÜN
A3 BISIKLET
A4 TURUNA
A5 KATILIMIN
A6 ÇOK FAZLA ......
ayıracağımız kelimeler anlamlı olacak belirlediğimiz uzunlukta
Bu işlemin makro ile yapılabileceğini düşünüyorum, ama bu bahsettiğim olayı formül ile nasıl yapılacak çok merak ediyorum.Bugün tüm vaktimi ayırdım makro ve formülle sonuç alamadım.
Excel 2010 ingilizce kullanıyorum
 
Katılım
23 Eylül 2013
Mesajlar
1,348
Excel Vers. ve Dili
Excel 2007 İngilizce -
Excel 2010 Türkçe -
Excel 2013 Türkçe -
Merhaba,
Sorunuzun cevabınızı bulmak için çevremde danışmadığım kişi kalmamıştı biraz zor oldu ama cevabı bulduk.
Kod:
=PARÇAAL(PARÇAAL(A$1&" ";TOPLA(UZUNLUK(A$3:A3));A$2);1;
  MAK((PARÇAAL(PARÇAAL(A$1&" ";TOPLA(UZUNLUK(A$3:A3));A$2);
    SATIR($1:$100);1)=" ")*SATIR($1:$100)))
[COLOR="Blue"]Formül dizi formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]
Formülün çalışma şartları;
A1 hücresine verinizi,
A2 hücresine alınacak karakter sayısı (10),
A3 hücresine 1
A4 hücresine ilgili formülü girip,formülü aşağı doğru çoğaltınız.
Not: "BEKLIYORUZ.KATILIMCILARIN" uzunluğu 25 karakter olduğundan formül en son "OLMASINI" kelimesinden sonra sonuç üretmeyecektir.

Dip not: Sn. Mahir ÇÜMEN, eğer çözüm bulduğunuzda yada Ali bey den farklı bir cevap öğrendiğinizde sorunun cevabını bekliyor olacağım.

Hata giderilmiştir.
İlgili dosya:BURADAN
 
Son düzenleme:
Katılım
23 Eylül 2013
Mesajlar
1,348
Excel Vers. ve Dili
Excel 2007 İngilizce -
Excel 2010 Türkçe -
Excel 2013 Türkçe -
Mahir bey, şüpesiz tecrübe gereklidir.
Kendi adıma Siz'e ve Ali bey'e Teşekkür ederim.
 
Son düzenleme:
Katılım
23 Eylül 2013
Mesajlar
1,348
Excel Vers. ve Dili
Excel 2007 İngilizce -
Excel 2010 Türkçe -
Excel 2013 Türkçe -
Mahir bey,
Ali bey'in dosyasını şimdi inceleme fırsatım oldu.
Ahmet bey'in şartları tam anlamıyla sağlamıyor herhalde
ÇOK FAZLA 10 karakterden küçük olduğu için tek hücreye yazılması gerekmez mi ?

Bu hususu Ali bey ile paylaşabilir misiniz?
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,624
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
kelimenizin a1 hücresinde olduğunu varsayarsak aşağıdaki örnek işinizi görebilir.

Kod:
Sub parcala_bosluk()
cumledeki_degerler = Split(WorksheetFunction.Substitute(Cells(1, 1), ".", " "), " ")
For i = 0 To UBound(cumledeki_degerler)
Cells(i + 1, 2) = cumledeki_degerler(i)
Next
End Sub
 
Katılım
24 Nisan 2005
Mesajlar
3,670
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Farklı bir çözüm olarak aşağıdaki şekilde kodladım.

Kodlama noktayı gördüğü yerde kelimeyi bölmektedir.
Belirtilen uzunluk dikkate alınarak boşluklu yada boşluksuz kelimeleri bölmektedir.
Kelime belirtilen uzunluktan uzun ise ilk boşluğa kadar kelimeyi bölmeden almaktadır.

BUGÜN BISIKLET TURUNA KATILIMIN ÇOK FAZLA OLMASINI BEKLIYORUZ.KATILIMCILARIN KENDI BISIKLETLERINI GETIRMELERI RICA EDERIM.
BUGÜN
BISIKLET
TURUNA
KATILIMIN
ÇOK FAZLA
OLMASINI
BEKLIYORUZ
KATILIMCILARIN
KENDI
BISIKLETLERINI
GETIRMELERI
RICA
EDERIM


Kod:
Sub ozel_parcala()
    uzunluk = 10
    cumle = Cells(1, 1)
    say = 0
    cumleuzunlugu = Len(cumle)
    
    For j = 1 To cumleuzunlugu
      kelime = ""
      bosluk = 0
    
     For i = 1 To cumleuzunlugu
       harf = Mid(cumle, i, 1)
       If harf = " " Then
          If Len(kelime) > uzunluk And bosluk = 0 Then
              say = say + 1
              Cells(say, 2).Value = Mid(cumle, 1, i - 1)
              cumle = Mid(cumle, i + 1, Len(cumle))
              Exit For
          End If
          
          bosluk = i
       End If
      
       If harf = "." Then
          say = say + 1
          Cells(say, 2).Value = Mid(cumle, 1, i - 1)
          cumle = Mid(cumle, i + 1, Len(cumle))
          Exit For
       End If
      
       If i Mod uzunluk = 0 And bosluk > 0 Then
            If harf = " " Then
               say = say + 1
               Cells(say, 2).Value = Mid(cumle, 1, i - 1)
               cumle = Mid(cumle, i + 1, Len(cumle))
               Exit For
            End If
            
               say = say + 1
               Cells(say, 2).Value = Mid(cumle, 1, bosluk - 1)
               cumle = Mid(cumle, bosluk + 1, Len(cumle))
               Exit For
       Else
            kelime = kelime + harf
       End If
       
       
    Next
    Next
End Sub
 

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Her çözüm bir birinden güzel, tek sorun soruyu soran arkadaşın 10 karakter kriteri. Bunun aşılacağına inanıyorum.

---
 

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Merhaba,

Son çözüm. Ali Bey' teşekkürler.
 

Ekli dosyalar

Katılım
23 Eylül 2013
Mesajlar
1,348
Excel Vers. ve Dili
Excel 2007 İngilizce -
Excel 2010 Türkçe -
Excel 2013 Türkçe -
Kedi adıma,
Sn. Mahir ÇÜMEN
Sn. Ali KIRKSEKİZ
Sn. Kuvari
Sn. Asri

Farklı şeyler öğrendim, teşşekkür ederim.
Farklı bir uygulama, sonuca gitmek için kullanılan formüller,
Kod:
=PARÇAAL($A$1;1;B2-KAÇINCI(" *";SAĞDAN(PARÇAAL($A$1;1;B2);
  SATIR($A$2:$AB$20));))
[COLOR="Blue"]Formül dizi formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]
Kod:
=PARÇAAL($A$1;TOPLA(UZUNLUK($A$2:A2))+1;B3-KAÇINCI(" *";
  SAĞDAN(PARÇAAL($A$1;TOPLA(UZUNLUK($A$2:A2))+1;B3);
    SATIR($A$2:$A$20));))
[COLOR="blue"]Formül dizi formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]
Dosya konu hakkında fikrini danıştığım Abime (müşteri) aittir.

İlgili Dosya:BURADAN
 
Son düzenleme:

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Merhaba sayın bzace,

örnek dosyanıza gör KATILIMIN ÇOK bu kelime bölünmeli gerekmez mi?
KATILIMIN boşluk dahil 10 karakterdir.


Bu konu sayesinde bende çok şeyler öğrendim. katkısı olan herkese teşekkür ederim.


--
 
Katılım
23 Eylül 2013
Mesajlar
1,348
Excel Vers. ve Dili
Excel 2007 İngilizce -
Excel 2010 Türkçe -
Excel 2013 Türkçe -
Mahir bey,
Formülü tam anlamıyla ilcelemedim.
B sütununa göre işlem yapacak, şöyleki tüm kelimelere baktığınızda "ÇOK" 3 karakter bir boşluk eklersek 4 karakter B sütununa 4 yazdığımızda sonuç dönürmesi lazım, ama 5 yazdığımızda sonuç döndürecektir.

" "KATILIMIN" " bu 11 karakterden oluşmuş oluyor.Abime bu konuyu danışacağım geri dönüşünde bilgi veririm.
 
Katılım
11 Mayıs 2014
Mesajlar
1
Excel Vers. ve Dili
2010
arkadaşlar internet ortamında başıma gelen bir olaydan dolayı interneti pek kullanmamaya özen gösteriyorum bu nedenle kayıt olduğum şifremi unuttum yeni kayıt oldum.
bzace ilk cevabı vermeden sabah girip baktığımda cevap yoktu ve soruya cevap gelmeyecegını düşündüm ama şimdi baktığımda çok güzel örnekler vermişsiniz. çok çok teşekkürler.
10 karakter kriterim 10 karakterden fazla olan karakterlerde sonuc olmaması ama olsada fark etmez ben ayıklamayı yaparım.

Bu güzel günde benim yerime annelerinizin ellerini benim yerinede öpmeyi unutmayın
 
Katılım
22 Aralık 2006
Mesajlar
125
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28.04.2019
Merhabalar,

Konuyla birebir alakalı değil sorum ama yeni başlık açmak yerine buraya yazıyorum.

A1 hücresinde iki kelimelik bir içerik olsun

A2 ye ilk kelime baş harfi

A3 e ikinci kelime baş harfi yazdırmak mümkün müdür?
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
Merhabalar,
Konuyla birebir alakalı değil sorum ama yeni başlık açmak yerine buraya yazıyorum.
A1 hücresinde iki kelimelik bir içerik olsun
A2 ye ilk kelime baş harfi
A3 e ikinci kelime baş harfi yazdırmak mümkün müdür?
. . .

A1 deki veri her zaman 2 kelimeden mi oluşacak.

Öyle ise A2 için formül:
Kod:
=SOLDAN(A1;1)
A3 için formül:
Kod:
=PARÇAAL(A1;MBUL(" ";A1;1)+1;1)
. . .
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,784
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Hocalarım,
Yazdığınız kodun neresini nasıl değiştirirsem, A sütununa yazılan cümlelerin kelimeleri, aynı satırda farklı hücrelere yazılır?
Yardımcı olursanız çok makbule geçer. (Örnek gerekirse hemen gönderirim)
Saygılarımla
 
Son düzenleme:
Üst