Eğer Varsa Sil

Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Merhabalar Bende iki sütunlu bir excel dosyası var sol sütunda bulunan değerler şöyle;

Ahmet
Mehmet
Hüseyin
Ayşe

gibi 2700 satır bulunuyor. (isimler örnektir) sağ sütunda ise;

Ahmet: bu kişi deli dolu biridir.
Mehmet: bu kişi akıllıdır.
Hüseyin: Bu kişi erkektir.
Ayşe: Bu kişi Dişidir.

gibi aynı karşılıktadır. (içerikte ":" gerçekten var)

Benim istediğim ama yapamadığım şey sağ sütundaki Ahmet: eğer solda Ahmet olarak var ise silinsin. Bu bölümde sadece "bu kişi deli dolu biridir" olarak kalsın.

Eğer formülü ile birkaç deneme yaptım Metni sütunlara dönüştür ü de denedim ":" yı eçtiğimde cümle içerisindeki tüm ":" noktaları ayırıyor.
 

Ekli dosyalar

Son düzenleme:
Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
excelde Ctrl+h tuşuna basın ve arana değere "*: " yazın tırnak işaretleri hariç : noktadan sonra boşluk mevcut..

yeni değer kısmını boş bırakın ve tümünü değiştir tuşuna basın. kayıtları otomatik silecektir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
A1'de belirttiğiniz ifade varsa B1'e sadece ismi almak için aşağıdaki formülü kullanabilirsiniz:

Kod:
=SOLDAN(A1;BUL((": ");A1)-1)
C1'e ": "tan sonraki kısmı almak için aşağıdaki formülü kullanabilirsiniz:

Kod:
=SAĞDAN(A1;UZUNLUK(A1)-BUL((": ");A1)-1)
Daha sonra B ve C sütunlarını kopyalayıp özel yapıştırdan değerleri seçebilir ve A sütununu silebilirsiniz.
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Her kese verdikleri cevaplardan ötürü çok teşekkür ederim.

*: ile bul ve değiştir yaptıramadım bu özellik olsa iyi olurdu :)

Metni sütunlara dönüştür ile cümle içerisindeki tüm : ları dönüştürüyor

Yusuf kardeşin verdiği formül işimi çözüme ulaştırmamda bana yardımcı oluyor.

Tekrar teşekkür ederim.
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Bir konuda daha fikrinizi ve çözüm önerilerinizi almak istedim (farklı konu açmaya gerek yok bence) bir sütundaki yaklaşık ilk 1000 hücre içerisindeki her hücrede ilk 100 karekter büyük harf ile başlamış ise temizlesin gibi bir makro yazılabilir mi?
 

Korhan Ayhan

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

Aşağıdaki kod "A" sütununa göre istediğiniz kontrolü yapar ve hücre içeriklerini siler.

Kod:
Sub KARAKTER_KONTROL_ET_SİL()
    Dim X As Integer, Veri_1 As String, Veri_2 As String
    
    For X = 1 To Cells(Rows.Count, 1).End(3).Row
        Veri_1 = UCase(Replace(Replace(Left(Cells(X, 1), 100), "i", "İ"), "ı", "I"))
        Veri_2 = Left(Cells(X, 1), 100)
        If Veri_1 = Veri_2 Then
            Cells(X, 1).ClearContents
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Teşekkür ederim. Bu işimi gördü.
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Bir kaç şey daha danışabilirmiyim? :)

1- Excel'de hücre içerisinde 32.767 karekter sınırlaması bulunuyor. Bu sınırı arttırmanın bir yolu var mı?
2 - Hücrede bulunan metnin içindeki her 5'inci cümleden (yani 5'inci noktadan ".") hemen sonra örneğin
Kod:
</p><p>
kodlarını ekleyebileceğim bir makro yada fonksiyon var mı? Ben nokta işaretini baz alıp sütunlara dönüştürmek ve işimi bitirince birleştir yapmayı istedim lakin metin çok uzun, sağlıklısonuç vermiyor. Fonksiyonlara da baktım aramaya devam ediyorum.

Yardımlarınız için şimdiden teşekkür ederim.
 
Son düzenleme:

Korhan Ayhan

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

Bu kadar uzun karakterli ne verileri ile uğraşıyorsunuz merak ettim doğrusu!

Size önerim verileri tek hücre yerine bir kaç hücreye parçalayarak saklayabilirsiniz. Bu şekilde belki istediğiniz sonuca ulaşabilirsiniz.
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Web sitemin içeriğidir onlar :) MYSQL veri tabanındaki karekter hatalarını (latin5) düzelttim (utf8) eskiden phpnuke kullanıyordum veri tabanını joomla 2.5 sürümüne göç ettiriyorum. Lakin eski phpnuke veritabanı içeriğinde ki tüm html taglarını silim seo için gereken tagları eklemem gerekiyor <div> <ul> <li> <em> <l> ...vb.

Navicat pro ile veri tabanını excel üzerinden kolaylıkla çalıştırabiliyorum düzeltmeler bul değiştirler yani tüm işleri yapıp çok kolay bir şekilde excelden navicat e copy paste yapabiliyorum işimi çok kolaylaştırıyor. :)

içerik metninden meta keyword ve meta description çıkarmam gerekiyor ayrıca joomlada intro_text ve orjinal_text tabloları var metni ikiye bölüyor bir nevi özet ve devamı gibi bunları kolay yoldan otomatik yaptırabilmem gerekiyor. çünkü 50.000'in üzerinde konu var
 

Korhan Ayhan

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

Bahsettiğiniz konular hakkında bir bilgim yok maalesef. Bilgisi olan bir arkadaşımız mutlaka yardımcı olacaktır.
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
İnanıyor ve ümid ediyorum.cevaplarınız ve ilginiz için ayrıcateşekkür ederim.

Son yazdıım konuda "Eğer" ve "Birleştir" fonksiyonu ile bir şeyler yapılabilir mi? Hücredeki örneğin; 5 yada 10'uncu cümlenin sonuna yani 5 yada 10'uncu ". " işaretinden sonra </p><p> ekleyebilirmiyiz.
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

A sütunundaki veriyi B sütununa düzelterek aktarır.

Kod:
Option Explicit
 
Sub BEŞİNCİ_VE_ONUNCU_NOKTADAN_SONRA_SEMBOL_EKLE()
    Dim X As Long, Y As Integer, Veri_1, Veri_2
 
    For X = 1 To Cells(Rows.Count, 1).End(3).Row
        Veri_1 = Split(Cells(X, 1), ".")
        If UBound(Veri_1) > 3 Then
            For Y = 0 To UBound(Veri_1)
                If Veri_1(Y) <> "" Then
                    If Y = 4 Or Y = 9 Then
                        If Veri_2 = "" Then
                            Veri_2 = Veri_1(Y) & ".</p><p>"
                        Else
                            Veri_2 = Veri_2 & Veri_1(Y) & ".</p><p>"
                        End If
                    Else
                        If Veri_2 = "" Then
                            Veri_2 = Veri_1(Y) & "."
                        Else
                            Veri_2 = Veri_2 & Veri_1(Y) & "."
                        End If
                    End If
                End If
            Next
            Cells(X, 2) = Veri_2
            Veri_2 = ""
        End If
    Next
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Ekli dosyalar

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,175
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Sn. korhan hocam 7. mesajdaki kodun işlevini dosya üzerinde bir türlü göremedim, Rica etsem uygulanmış örnek dosyayı ekleyebilirmisiniz
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Sayın Korhan Ayhan;

Verdiğiniz kod çalışıyor ancak;

1- Eğer birden fazla satır var ise yalnızca toplam satır kadar sadece a1 hücresindeki değeri b1,b2,b3,b4...diye yazdırıyor. a2,a3,a4.... de yazana dikkat etmiyor.

2- Ayrıca ben 13'üncü mesajda her 5 yada 10'uncu ". " işaretiden sonra </p><p> eklesin yazmayı unuttum.

Şu hali ile kod sadece a1 hücresindeki değerin ilk 5'inci ". " nokta işaretinden sonra </p><p>'yi ekliyor. Kodu yukarıda bahsettiğim iki duruma göre güncellemeniz çok işimi görecek.

Şimdiden her şey için çok teşekkür ederim.
 

Korhan Ayhan

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

Üstteki mesajımdaki kodu güncelledim. Ayrıca örnek dosyada ekledim. Denermisiniz.
 
Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Tekrar Merhaba,

Kodu kullandım tüm A sütununa işlem yapıyor ancak, sizin örnek dosyanızda da görebileceğiniz gibi ikinci eklemeden sonra ekleme yapmıyor.

Kod ile Çıkan.
Kod:
sdsd.sdfdf.rtert.erhgfh.fjghjgh[B].</p><p>[/B]uıyuı.hjhjk.hjkhjk.hjkhjkhj.hjuıyuı[B].</p><p>[/B]yuıytry.werrwer.sdfsdfsdf.sfgdfgdfg.ghfghgfh.fghfgjhhj.
Olması Gereken
Kod:
sdsd.sdfdf.rtert.erhgfh.fjghjgh[B].</p><p>[/B]uıyuı.hjhjk.hjkhjk.hjkhjkhj.hjuıyuı[B].</p><p>[/B]yuıytry.werrwer.sdfsdfsdf.sfgdfgdfg[B][U].</p><p>[/U][/B]ghfghgfh.fghfgjhhj.
Üzerinde Çalıştığım dosyanın ilk on satırının bulunduğu örnek birdosya ekledim.
 

Ekli dosyalar

Katılım
5 Mart 2007
Mesajlar
86
Excel Vers. ve Dili
Excel 2003 Türkçe
Excel 2007 Türkçe
Merhabalar,

Sayın Korhan'ın verdiği kodda aşaıdaki gibi bir değişiklik yapınca işimi görüyor ama biraz sanki eksik gibi oldu neyse
Kod:
Sub BEŞİNCİ_VE_ONUNCU_NOKTADAN_SONRA_SEMBOL_EKLE()
    Dim X As Long, Y As Integer, Veri_1, Veri_2
 
    For X = 1 To Cells(Rows.Count, 1).End(3).Row
        Veri_1 = Split(Cells(X, 1), ". ")
        If UBound(Veri_1) > 3 Then
            For Y = 0 To UBound(Veri_1)
                If Veri_1(Y) <> "" Then
                    If Y = 4 Or Y = 12 Or Y = 20 Or Y = 28 Or Y = 36 Or Y = 43 Or Y = 50 Or Y = 57 Or Y = 60 Or Y = 67 Or Y = 75 Or Y = 82 Then
                        If Veri_2 = "" Then
                            Veri_2 = Veri_1(Y) & ".</p><p> "
                        Else
                            Veri_2 = Veri_2 & Veri_1(Y) & ".</p><p> "
                        End If
                    Else
                        If Veri_2 = "" Then
                            Veri_2 = Veri_1(Y) & ". "
                        Else
                            Veri_2 = Veri_2 & Veri_1(Y) & ". "
                        End If
                    End If
                End If
            Next
            Cells(X, 2) = Veri_2
            Veri_2 = ""
        End If
    Next
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Kodda "." olarak belirtilen yeri ". " şeklinde düzeltmeme rağmen mesela metin içinde "..." üç nokta yanyanayı da 3 adet olarak sayıyor. Cümle bitimini ". " (nokta boşluk) şeklinde nasıl belirleyebiliriz.

Şimdiden Teşekkürler...
 
Üst