• DİKKAT

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

Hücredeki rakamı ayırmak..

Katılım
25 Haziran 2010
Mesajlar
14
Excel Vers. ve Dili
2003 ve 2007 Türkçe ve İngilizce her ikisinide kullanmaktayım.
Merhaba arkadaşlar. Aranıza yeni katıldım. Sorunum başlıkta yazıyor açıklayacağım ama lütfen forumda arayın demeyin çünkü sorunum başlıktakinden biraz farklı ..

Ben örneğin :
a1 hücresine > 124x SonsuzEmpati yazdım.
a2 hücresinde > x SonsuzEmpati görünsün istiyorum.
a3 hücresinde > 124 görülmesini istiyorum..

http://www.excel.web.tr/showthread.php?t=37706

Bu konudaki ali arkadaşımız (Mesaj 5 de) açıklamış çok guzel çalışıyor ellerine aklına sağlık .. Ama sorunum şu SonsuzEmpati x124 yazarsam doğru çalışıyor.

124x SonsuzEmpati yazarsam çalışmıyor. (Sayılar ve isimler değişik tabiki ben sadece örnek vermek için bu ikisini kullanıyorum..)

Yardımcı olursanız çok sevinirim şimdiden teşekkürler .. Konuyu takip edeceğim.
 
Beni şaşırtan şuydu ..

SonsuzEmpati x50 yazdığımda çalışıyor

ama

50x SonsuzEmpati yazdığımda Çalışmıyor ..

İsterseniz video çekeyim ..
 
Sn.SonsuzEmpati

Ekte gönderdiğim dosyanın işinize yarayacağını düşünüyorum. Daha önce forumda paylaşılmıştı. Umarım faydalı olur...
 

Ekli dosyalar

Bakıyorum .. Teşekkür ederim baktıktan sonra bildireceğim.


Bildirim:
Hayır demek istediğim bu değil. Demek istediğim şu ..
Kod:
A1-A2-A3 Hücrelerine
24x Alp
50x SonsuzEmpati
gibi birşey yazıcam .. (Rakamlar ve sayıların uzunluğu farklı oolucak bu yüzden belirli bir sayıdan başlamayacak yani .. A1;1;5 gibi bir şey değil a1 içindekini 1. harften başla 5 e kadar al gibi birşey olmayacak.

Neyse a1 ve a2 ye bunları yazdm diyelm

Kod:
B1 ve b2 hücresinde
Benim a1 ve a2 de yazdığım sayıllar görünecek.

Kod:
c1 ve c2 'de ise yazdığım kelime görülecek 
mesela
c1 de = x Alp
c2 de = x SonsuzEmpati

gibi eğer isterseniz video olarak çekip gösterebilirim ne demek istediğimi ..
 
Son düzenleme:
merhaba
istediğinizi Syn : Ali Uzman'ın yazdığı bir Kullanıcı Tanımlı Fonksiyon ( KTF ) ile çözmeye çalıştım

bu harfleri almak için
Kod:
Function HarfAl(Hücre)
Dim Karakter, i As Integer
Dim Sonuc
For i = 1 To Len(Hücre)
Karakter = Mid(Hücre, i, 1)
If IsNumeric(Karakter) = False Then
Sonuc = Sonuc & Karakter
End If
Next i
HarfAl = Sonuc
End Function

bunu harf için Hücreye yazın
Kod:
=HarfAl(A1)

buda Rakamları Ayırmak için
Kod:
Function NumaraAl(hucre)
Dim i As Integer
For i = 1 To Len(hucre)
sayi = Mid(hucre, i, 1)
If IsNumeric(sayi) = True Then
NumaraAl = NumaraAl & sayi
End If
Next i
End Function

bunu rakamlar için hücreye yazın
Kod:
=NumaraAl(A1)

Önemli Not : Function ile Başlayan Kodları boş Bir Module Kopyalayınız
örnek dosya ekte inceleyiniz
 

Ekli dosyalar

İlginiz için teşekkür ederim.. Denemeye çalışacağım.. Bilgi veririm.


Çalışmadı kardeşim :(

2003 ve 2007 de denedim .. Değerleri değiştirdiğimde #AD? hatası alıyorum her hücrede ..
 
Son düzenleme:
İlginiz için teşekkür ederim.. Denemeye çalışacağım.. Bilgi veririm.


Çalışmadı kardeşim :(

2003 ve 2007 de denedim .. Değerleri değiştirdiğimde #AD? hatası alıyorum her hücrede ..

ben dosya da ekledim eğer o da çalışmadı ise
örnek dosya eklermisiniz dosyayı indirdiniz mi
#AD hatası aldınız doğru ise güvenlik ayarlarını düşürmelisiniz
2003 için bu link
2007 için bu link
 
Son düzenleme:
Selamlar,

Alternatif olarak aşağıdaki formülleride kullanabilirsiniz.

Veriniz A1 hücresinde ise;

B1 hücresine; (Sayısal bölüm için)
Kod:
=EĞER(DEĞİL(EHATALIYSA(PARÇAAL(A1;BUL("x";A1)-1;1)+0>=0));PARÇAAL(A1;1;BUL("x";A1)-1);EĞER(DEĞİL(EHATALIYSA(PARÇAAL(A1;BUL("x";A1)+1;1)+0>=0));PARÇAAL(A1;BUL("x";A1)+1;255);""))

C1 hücresine; (Metinsel bölüm için)
Kod:
=EĞER(DEĞİL(EHATALIYSA(PARÇAAL(A1;BUL("x";A1)-1;1)+0>=0));PARÇAAL(A1;BUL("x";A1);255);EĞER(DEĞİL(EHATALIYSA(PARÇAAL(A1;BUL("x";A1)+1;1)+0>=0));PARÇAAL(A1;1;BUL("x";A1));""))

Eğer değerleriniz için büyük karakterle yazılmış X lerde varsa doğru sonuç almak için formülde geçen BUL yerine MBUL formülünü kullanın.
 
Sn. Korhan Ayhan,
Çok teşekkür ederim çok güzel çalışıyor eğer müsait iseniz bu formulun ne anlama geldiğini ve açıklayabilirmisiniz? Amaç sadece bişeyi yapmak değildir. Yaparken öğrenelimde aynı zamanda değilmi :)
 
Selamlar,

Birinci formülün ilk bölümünün çalışma mantığı;

1 - Veri içinde "x" karakteri aranıyor.
Kod:
BUL("x";A1)

2 - Bulunan "x" değerinden bir önceki karakterin değerinin sıfırdan büyük olup olmadığı sorgulanıyor.
Kod:
PARÇAAL(A1;BUL("x";A1)-1;1)+0>=0

3 - Bu sorguda eğer "x" değerinden önceki veri sayı değilde metin olursa formül hata değeri üretecektir. Bize sayısal verinin bulunduğu yer lazım olduğu için sorgumuzun hata değeri üretmemesi gerekiyor. Bu durumuda aşağıdaki yöntemle kontrol edebiliyoruz.
Kod:
DEĞİL(EHATALIYSA(PARÇAAL(A1;BUL("x";A1)-1;1)+0>=0))

4 - Eğer sorgumuz hata üretmiyorsa ve sorguladığımız karakter sıfırdan büyük yada eşitse aradığımız değere ulaştık (sayısal veri) demektir. Bu değeride aşağıdaki bölümle elde ediyoruz.
Kod:
PARÇAAL(A1;1;BUL("x";A1)-1)

Birinci formülün ikinci bölümüde "x" değerinden sonraki karakterinin sayı olup olmadığını sorgulamaktadır.

Formül neden iki bölümden oluşuyor diye sorabilirsiniz. Çünkü siz mesajlarınızda farklı yazım şekillerinden bahsetmişsiniz.

SonsuzEmpati x124
124x SonsuzEmpati

Gördüğünüz gibi kırmızı değerler "x" değerinin sağında ve solunda yer almaktadır. İşte bu değerler sorgulanarak sonuca gidiliyor.

İkinci formülde aynı mantıkla metinsel değerleri veri içinden almaktadır.
 
Geri
Üst