Eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz..
Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Karakterleri Kaldırma ve Metini Düzenleme
- Konuyu başlatan 52779
- Başlangıç tarihi
Çözüm
@ezelk
Selamlar,
Çok sevindiğimi söylemeliyim.
Bugün, bu soru için, ben de epeyce bir uğraştım. Sonunda,
** aklımın bir tarafındaki, BüyükHarf ve KüçükHarfin ÖZDEŞ olmalarına dayalı olarak, Harf ve Sayıların bulunduğu formülü hatırladım ve onu kullandım.
** sizin karakterleri bir hücreye yazıp, o hücreyi referans gösterdiğiniz yolu da kontrol amaçlı olarak kullandım.
Birazdan çözümü detaylı yazmaya çalışacağım.
BüyükHarf ve KüçükHarfin ÖZDEŞ olmalarına dayalı olarak, Harf ve Sayıların bulunduğu formülü de detaylı yazmaya çalışacağım. Becerebilirsem tabi ki...
Çok ama çok teşekkür ediyorum....
Bir teşekkür de Power Query için.
Teşekkürlerimle...
Selamlar,
Çok teşekkür ediyorum...Merhaba , bir yerden başlamak lazım diyerek bir çözüm sağlamaya çalıştım. Daha makul çözümler elbette gelecektir.
İki farklı LAMBDA işlevi kullanarak çözüm denendi.
Çok sevindiğimi söylemeliyim.
Bugün, bu soru için, ben de epeyce bir uğraştım. Sonunda,
** aklımın bir tarafındaki, BüyükHarf ve KüçükHarfin ÖZDEŞ olmalarına dayalı olarak, Harf ve Sayıların bulunduğu formülü hatırladım ve onu kullandım.
** sizin karakterleri bir hücreye yazıp, o hücreyi referans gösterdiğiniz yolu da kontrol amaçlı olarak kullandım.
Birazdan çözümü detaylı yazmaya çalışacağım.
BüyükHarf ve KüçükHarfin ÖZDEŞ olmalarına dayalı olarak, Harf ve Sayıların bulunduğu formülü de detaylı yazmaya çalışacağım. Becerebilirsem tabi ki...
Çok ama çok teşekkür ediyorum....
Bir teşekkür de Power Query için.
PowerQuery konusunda hiç deneyimim olmadı. Ama ilk fırsatımda bu konuyu öğrenmeye çalışacağım. O zaman bu dokumanı da detaylı incelerim...Bir de PowerQuery ile çözüm ekliyorum. Kaynak veri değişince YENİLE yapılması gerekmekte.
Teşekkürlerimle...
Rica ederim. Dediğim gibi bir yerden başlamak gerek. Muhtemelen yine sizden arşivlik bir çözüm gelecektir.@ezelk
Selamlar,
Çok teşekkür ediyorum...
Çok sevindiğimi söylemeliyim.
Bugün, bu soru için, ben de epeyce bir uğraştım. Sonunda,
** aklımın bir tarafındaki, BüyükHarf ve KüçükHarfin ÖZDEŞ olmalarına dayalı olarak, Harf ve Sayıların bulunduğu formülü hatırladım ve onu kullandım.
** sizin karakterleri bir hücreye yazıp, o hücreyi referans gösterdiğiniz yolu da kontrol amaçlı olarak kullandım.
Birazdan çözümü detaylı yazmaya çalışacağım.
BüyükHarf ve KüçükHarfin ÖZDEŞ olmalarına dayalı olarak, Harf ve Sayıların bulunduğu formülü de detaylı yazmaya çalışacağım. Becerebilirsem tabi ki...
Çok ama çok teşekkür ediyorum....
Bir teşekkür de Power Query için.
PowerQuery konusunda hiç deneyimim olmadı. Ama ilk fırsatımda bu konuyu öğrenmeye çalışacağım. O zaman bu dokumanı da detaylı incelerim...
Teşekkürlerimle...
İyi akşamlar, kolay gelsin.
@okutkan
Selamlar,
Makro fakiri olduğumdan nasıl bir yorum yapabilirim bilmiyorum. Ancak, alternatif bir çözüm olması açısından, denedim, sonuçlarını kontrol ettim ve arşivime ekledim çözümünüzü...
Teşekkürlerimle...
Selamlar,
Çok çok teşekkür ediyorum...Bu da makro çözümü.
Makro fakiri olduğumdan nasıl bir yorum yapabilirim bilmiyorum. Ancak, alternatif bir çözüm olması açısından, denedim, sonuçlarını kontrol ettim ve arşivime ekledim çözümünüzü...
Teşekkürlerimle...
Epey uğraştığım çözümü detaylı anlatmaya çalışırsam.....

çözüme ulaştığım formül şöyle...
Sırasıyla yazmaya çalışırsam
** PARÇAAL(KÜÇÜKHARF(alan);SIRALI(;MAK(UZUNLUK(alan)));1)
formülü ile, B4 : B8 aralığındaki tüm metinlerin (Harfler Küçük Harf olarak) bir - bir karakterlerini yazdırıyoruz. (Burada her bir hücrenin karakter uzunluğundan ziyade, maksimum uzunluk kullanıldı.
Sonuçta elde edilen...

*** ÖZDEŞ(KÜÇÜKHARF("x");BÜYÜKHARF("x")) formülü ile
Harf, küçük ve büyük harf değerleri arasında farklı değerlere sahip bir karakter olduğundan, örneğin "x" harfini ele alırsak ve =ÖZDEŞ(KÜÇÜKHARF("x");BÜYÜKHARF("x")) formülünü yazarsak, bu bize sonuç olarak YANLIŞ değeri üretiyor. DOĞRU değeri üretiyorsa eğer, bu bir Harf olmayıp, ya RAKAM ya da diğer karakterlerdir.
Şimdi, Bu işlemi DEĞİL işlevine sararsak DEĞİL(ÖZDEŞ(KÜÇÜKHARF("x");BÜYÜKHARF("x"))) bu bize DOĞRU değerini döndürecek ve Harfleri bulmamızı sağlayacak.
O zaman, Rakamları da ESAYIYSA işlevi ile bulabildiğimiz için, soruda da Rakam ve harfler istendiğinden,
PARÇAAL işleviyle elde edilen diziyi, MAP - LAMBDA ile, (Sayı olacak şekilde), 1 ve 0 elde edecek şekilde yazıyoruz.
--MAP(a;LAMBDA(x;YADA(ESAYIYSA(--x);EĞERHATA(ONDALIK(x;36)<16;0)*DEĞİL(ÖZDEŞ(KÜÇÜKHARF(x);BÜYÜKHARF(x))))))
ESAYIYSA ile Rakam olup olmadığının kontrolü yapılıyor.
DEĞİL(ÖZDEŞ(KÜÇÜKHARF(x);BÜYÜKHARF(x))) ile Harf olup olmadığının kontrolü yapılıyor.
EĞERHATA(ONDALIK(x;36)<16;0) ile Harflerin Base36 olarak 36 tabanında a=10, b=11.... f=15 e karşılık geldiğinden (ya da Hexadecimal sistemde, 16 tabanında, F=15 olmakta) harflerin a, b, c, d, e, f olanlarını alıp, diğerlerini almama koşulunun kontrolü yapılıyor. Ve dizi oluşturuluyor.

Bu elde edilen dizide, 1 ler koşulu sağlayanlar ve 0 lar ise koşula uymayanlar olmakta.
*** BYROW(EĞER(b;a;"");LAMBDA(s;ARALIKBİRLEŞTİR(s)))
Elde edilen dizide, 1 olanlara Metinlerdeki Harf ya da Rakam karşılıkları ve 0 olanlara da "" değeri yazdırılıp, bu değerler ARALIKBİRLEŞTİR işlevi ile birleştiriliyor. Harf ve Rakamlardan oluşan dizi elde ediliyor.

*** REDUCE(z;PARÇAAL("0123456789";SIRALI(10);1);LAMBDA(x;y;YERİNEKOY(x;y;"*")))
formülü ile de, elde edilen dizideki her bir rakamın yerine "*" işareti konuluyor... Ve üst resimdeki sonuç elde ediliyor.

çözüme ulaştığım formül şöyle...
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (1 satır).
Giriş Yap
Sırasıyla yazmaya çalışırsam
** PARÇAAL(KÜÇÜKHARF(alan);SIRALI(;MAK(UZUNLUK(alan)));1)
formülü ile, B4 : B8 aralığındaki tüm metinlerin (Harfler Küçük Harf olarak) bir - bir karakterlerini yazdırıyoruz. (Burada her bir hücrenin karakter uzunluğundan ziyade, maksimum uzunluk kullanıldı.
Sonuçta elde edilen...

*** ÖZDEŞ(KÜÇÜKHARF("x");BÜYÜKHARF("x")) formülü ile
Harf, küçük ve büyük harf değerleri arasında farklı değerlere sahip bir karakter olduğundan, örneğin "x" harfini ele alırsak ve =ÖZDEŞ(KÜÇÜKHARF("x");BÜYÜKHARF("x")) formülünü yazarsak, bu bize sonuç olarak YANLIŞ değeri üretiyor. DOĞRU değeri üretiyorsa eğer, bu bir Harf olmayıp, ya RAKAM ya da diğer karakterlerdir.
Şimdi, Bu işlemi DEĞİL işlevine sararsak DEĞİL(ÖZDEŞ(KÜÇÜKHARF("x");BÜYÜKHARF("x"))) bu bize DOĞRU değerini döndürecek ve Harfleri bulmamızı sağlayacak.
O zaman, Rakamları da ESAYIYSA işlevi ile bulabildiğimiz için, soruda da Rakam ve harfler istendiğinden,
PARÇAAL işleviyle elde edilen diziyi, MAP - LAMBDA ile, (Sayı olacak şekilde), 1 ve 0 elde edecek şekilde yazıyoruz.
--MAP(a;LAMBDA(x;YADA(ESAYIYSA(--x);EĞERHATA(ONDALIK(x;36)<16;0)*DEĞİL(ÖZDEŞ(KÜÇÜKHARF(x);BÜYÜKHARF(x))))))
ESAYIYSA ile Rakam olup olmadığının kontrolü yapılıyor.
DEĞİL(ÖZDEŞ(KÜÇÜKHARF(x);BÜYÜKHARF(x))) ile Harf olup olmadığının kontrolü yapılıyor.
EĞERHATA(ONDALIK(x;36)<16;0) ile Harflerin Base36 olarak 36 tabanında a=10, b=11.... f=15 e karşılık geldiğinden (ya da Hexadecimal sistemde, 16 tabanında, F=15 olmakta) harflerin a, b, c, d, e, f olanlarını alıp, diğerlerini almama koşulunun kontrolü yapılıyor. Ve dizi oluşturuluyor.

Bu elde edilen dizide, 1 ler koşulu sağlayanlar ve 0 lar ise koşula uymayanlar olmakta.
*** BYROW(EĞER(b;a;"");LAMBDA(s;ARALIKBİRLEŞTİR(s)))
Elde edilen dizide, 1 olanlara Metinlerdeki Harf ya da Rakam karşılıkları ve 0 olanlara da "" değeri yazdırılıp, bu değerler ARALIKBİRLEŞTİR işlevi ile birleştiriliyor. Harf ve Rakamlardan oluşan dizi elde ediliyor.

*** REDUCE(z;PARÇAAL("0123456789";SIRALI(10);1);LAMBDA(x;y;YERİNEKOY(x;y;"*")))
formülü ile de, elde edilen dizideki her bir rakamın yerine "*" işareti konuluyor... Ve üst resimdeki sonuç elde ediliyor.
Ekli dosyalar
Hocam o nasıl formül öyle 
@Mehmet
Selamlar,
Çok çok teşekkür ediyorum.
Çok sevindim..
Denedim ve Mükemmel çalışıyor...
Teşekkürlerimle...
Selamlar,
Merhabalar formül uzadıkça dökülmeli kontrolü zor oluyor sürüklemeli oldu ama alternatif olsun.
Çok çok teşekkür ediyorum.
Çok sevindim..
Denedim ve Mükemmel çalışıyor...
Teşekkürlerimle...
Çok çok teşekkür ediyorum.Önce, REGX yöntemiyle daha kısa bir kod oluşturulabileceği kanaatinde olduğumu belirteyim (maalesef pek anlamıyorum).
Aşağıdaki kod da alternatif olsun. Sonuçlar D sütununa yazdırılır.
Ellerinize sağlık...
Önceki kodu arşivden çıkarıp aşağıdaki kodu eklerseniz, kodu daha kolay anlayabilirsiniz@okutkan
Selamlar,
Çok çok teşekkür ediyorum...
Makro fakiri olduğumdan nasıl bir yorum yapabilirim bilmiyorum. Ancak, alternatif bir çözüm olması açısından, denedim, sonuçlarını kontrol ettim ve arşivime ekledim çözümünüzü...
Teşekkürlerimle...
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (18 satır).
Giriş Yap
Ekli dosyalar
@okutkan
Selamlar,
Çok teşekkür ediyorum...
Hemen değiştirip, arşivime alıyorum...
VBA, öğrenmek için tam ilk adımı atmıştım ki, 365 LAMBDA işlevleri çıktı. Öğrenme işi şimdilik askıya alındı bende...
Aklımın bir tarafına yazdım... Öğrenmeye niyetlenince ilk bu dosyaya bakacağım...
Çok ama çok teşekkür ediyorum...
Saygılarımla...
Selamlar,
Çok teşekkür ediyorum...
Hemen değiştirip, arşivime alıyorum...
VBA, öğrenmek için tam ilk adımı atmıştım ki, 365 LAMBDA işlevleri çıktı. Öğrenme işi şimdilik askıya alındı bende...
Aklımın bir tarafına yazdım... Öğrenmeye niyetlenince ilk bu dosyaya bakacağım...
Çok ama çok teşekkür ediyorum...
Saygılarımla...
Selamlar,
Konuya katkıda bulunan herkese çok teşekkür ediyorum.
Ve söylemek isterim ki, çözümlerin tamamı benim için çok değerli. Gönlüm istiyor ki, tamamını en güzel Çözüm olarak işaretlemek. Ancak birini işaretlemek gerektiğinden, ben de soruya verilen ilk cevabı işaretliyorum müsaadelerinizle.
Saygılarımla..
Konuya katkıda bulunan herkese çok teşekkür ediyorum.
Ve söylemek isterim ki, çözümlerin tamamı benim için çok değerli. Gönlüm istiyor ki, tamamını en güzel Çözüm olarak işaretlemek. Ancak birini işaretlemek gerektiğinden, ben de soruya verilen ilk cevabı işaretliyorum müsaadelerinizle.
Saygılarımla..
@Burhan.cesur
Selamlar,
Değerli katkılarınızdan dolayı
Çok ama çok teşekkür ediyorum...
Saygılarımla...
Selamlar,
Değerli katkılarınızdan dolayı
Çok ama çok teşekkür ediyorum...
Saygılarımla...
Benzer konular Benzer kaynaklar Benzer dosyalar
-
-
Türkçe Karakterleri İngilizce Uyumlu Yapma
- Alisahin
- Formül Soruları
- Yanıt: 3
-
Oturma Planlamada Düzenleme Yapma
- ahmetkaraaslan
- Formül Soruları
- Yanıt: 1
-
Hücre seçme, taşıma ve temel düzenleme
- ExcelDepo
- Akademi
- Yanıt: 0
-
Rakamları IBAN Formatı Olarak Düzenleme
- YasarPiskin
- Makro Soruları
- Yanıt: 5
-
-
-
Hücredeki Özel Karakterleri Kaldırma
- ExcelDepo
- VIP
- İndirme: 4
-
Seçili Hücrelerden Boşlukları Kaldırma
- ExcelDepo
- Hazır Makrolar
- İndirme: 0
-
Tarih ve Saatten Saati Kaldırma
- ExcelDepo
- Hazır Makrolar
- İndirme: 0
-
Tarih ve Saatten Tarihi Kaldırma
- ExcelDepo
- Hazır Makrolar
- İndirme: 0
-
Aktif Çalışma Sayfası Korumasını Kaldırma
- ExcelDepo
- Hazır Makrolar
- İndirme: 0
-
-
-
Son Kelimeyi Kaldırma
- ExcelDepo
- VIP
- İndirme: 3
-
Metnin İçinden Sayısal Karakterleri Ayırma
- ExcelDepo
- VIP
- İndirme: 14
-
Türkçe Karakterleri İngilizceye Çevirme
- ExcelDepo
- VIP
- İndirme: 14
-
Belirli Karakterleri İçeren Hücreleri Sayma
- ExcelDepo
- VIP
- İndirme: 12
-
Metin İçinde Geçen E-Posta Adreslerini Ayırma
- ExcelDepo
- VIP
- İndirme: 8
-

