• DİKKAT

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

parçaal, uzunluk,sağdan,soldan...

Katılım
6 Mayıs 2014
Mesajlar
264
Excel Vers. ve Dili
office 365
Merhaba. Parçaal, uzunluk,sağdan,soldan formülleri ile denedim ama istediğimi yapamadım. Yardımlarınıza ihtiyacım var. bir hücrede /1/5/10/ gibi bir değer var.hücredeki değer daha uzun da olabilir. ( /1/5/10/8/12/6/ gibi) "/" işaretlerinin arasında sayısal değerler var ve bu sayısal değerler en fazla 2 haneli olabilir. Sayılar değişebilir. Ben "/" işaretlerinin arasındaki değerleri alıp başka hücrelere yazdırmak istiyorum. mesela A1 hücresinde /1/5/10/ değeri varsa, 5 ve 10 sayılarını A1 hücresinden ayrı ayrı alan iki formül nasıl olmalıdır? Burada sayılar değişken olduğundan önemli olan aralıklar. Yani bu örnekte ikinci ve üçüncü aralıktaki sayıları ayrı bir hücreye ayrı ayrı yazdırmak için nasıl bir formül yazmalıyım?
 
B1 Hücresine kopyalayınız.Boş hücre çıkınçaya kadar sağa doğru çoğaltınız.
Kod:
=EĞERHATA(KIRP(PARÇAAL(YERİNEKOY($A1;"/";YİNELE(" ";100));100*SÜTUN(A1);100))*1;"")
 
Bu da alternatif olsun.
B1 hücresine uygulayıp, boş sonuç alıncaya kadar sağa doğru kopyalayın.
Rich (BB code):
=EĞER(UZUNLUK($A1)-UZUNLUK(YERİNEKOY($A1;"/";""))-1>=SÜTUN(A$1);1*PARÇAAL($A1;BUL("|";YERİNEKOY($A1;"/";"|";SÜTUN(A1)))+1;BUL("@";YERİNEKOY($A1;"/";"@";SÜTUN(B1)))-BUL("|";YERİNEKOY($A1;"/";"|";SÜTUN(A1)))-1);"")
 
KTF
Aşağıdaki kodu standart bir modüle yazın.
hücreyede aşağıdaki fomülü girin.:cool:

=verial59(A1;2)

Kod:
Function verial59(ByVal hcr As Range, ByVal sira As Integer)
verial59 = Split(hcr.Value, "/")(sira)
End Function
 
Ben de örnek dosya eklemek üzereydim ki siz cevabı vermişsiniz. Formülü denedim, güzel oldu. Elinize sağlık..
 

Ekli dosyalar

Merhaba Sayın GİZLEN.
Sanırım KTF'yi ilk hücreye =verial59($A1;SÜTUN(A$1)) şeklinde yazıp sağa doğru kopyalamak gerekiyor.
Formül, hücredeki / karakteri sayısından fazla sütuna çoğaltıldığında HATA vermesini engellemek lazım sanki.
 
Ömer Baran ve Orion1, sizlere de teşekkür ederim
 
Kusura bakmayın. Bir şey daha sormak istiyorum. Formüller kendinden önceki sola doğru (soldaki hücre veya hücrelere) bağımlı olarak çalışıyor. bu bağımlılık olmadan sonuca ulaşmak mümkün mü? "yeni" sayfasındaki örneği ele alırsak; D3 hücresine yazılacak formül, B3, C3 gibi kendinden önceki hücrelere bağımlı olmadan sadece A3 hücresini esas alarak çalışabilir mi? Eğer mümkünse bunu sağlayacak bir formül daha güzel olur.
(Ömer Bey sadece bir not olarak belirtmek istiyorum. "örnek 2" sayfasında sizin formülün çalıştığını da gördüm. Ancak formül kendi hücre değerine başvuruyor. Ayrıca B4 hücresindeki değeri esas alırsak, formülün içindeki ( >=SÜTUN(A$4); ) kısmında 4 kısmı sabit mi olmalı. Bu iki husus sorun olur mu, bunu bildirmek istedim)
 

Ekli dosyalar

Bilgisayar başında değilim.
SÜTUN veya SATIR işlevi hücrenin kendisine değil
(kendisine olsa DÖNGÜSEL BAŞVURU hatası alırsınız)
sütun veya satırın numarasına atıf yapar.
Belirttiğiniz SÜTUN(A$4) yerine SÜTUN(A$1) de yazsanız sonuç değişmez.
 
Tekrar merhaba.
örnek2 sayfası B4 hücresindeki formülü aşağıdaki şekilde değiştirip, sağa ve aşağı doğru kopyalayarak da aynı sonuçları alırsınız
(böylece formül sadece kendi bulunduğu sütunun sütun numarasına atıf yapmış olur) .
Rich (BB code):
=EĞER(UZUNLUK($A4)-UZUNLUK(YERİNEKOY($A4;"/";""))>=SÜTUN();1*PARÇAAL($A4;BUL("|";YERİNEKOY($A4;"/";"|";SÜTUN()-1))+1;BUL("@";YERİNEKOY($A4;"/";"@";SÜTUN()))-BUL("|";YERİNEKOY($A4;"/";"|";SÜTUN()-1))-1);"")
 
Alternatif

Kod:
=KIRP(PARÇAAL(YERİNEKOY("/"&PARÇAAL($A4;2;UZUNLUK($A4));"/";YİNELE(" ";255));SÜTUNSAY($A$4:A4)*255;255))
 
Tekrar merhaba.
örnek2 sayfası B4 hücresindeki formülü aşağıdaki şekilde değiştirip, sağa ve aşağı doğru kopyalayarak da aynı sonuçları alırsınız
(böylece formül sadece kendi bulunduğu sütunun sütun numarasına atıf yapmış olur) .
Rich (BB code):
=EĞER(UZUNLUK($A4)-UZUNLUK(YERİNEKOY($A4;"/";""))>=SÜTUN();1*PARÇAAL($A4;BUL("|";YERİNEKOY($A4;"/";"|";SÜTUN()-1))+1;BUL("@";YERİNEKOY($A4;"/";"@";SÜTUN()))-BUL("|";YERİNEKOY($A4;"/";"|";SÜTUN()-1))-1);"")

Ömer üstadım,
Algoritma mantığını açıklayabilir misiniz?
bir iki cümle yeterli olacaktır :)
teşekkür ederim.
 
Geri
Üst