• DİKKAT

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

Metinsel,Sayısal Değer İçeren Veriden Sayıları Ayırma

  • Konbuyu başlatan Konbuyu başlatan bzace
  • Başlangıç tarihi Başlangıç tarihi
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 -
Merhabalar,
Arkadaşlar, hücre içerisinde metinsel ve sayısal değer bulunan veriden sayıları ayırmak istiyorum.
Bu işlemin çeşitli KOD'lar ile yapıldığını biliyorum.Amacım FORMÜL kullanarak yapmak.
Farklı farklı hücrelerde veriler olsun.

Örneğin;
1xxx1555
123456yyyyyy14
9876543210z123456
şeklindeki verilerden sayıları ayırmak istiyorum.

Bu işlemi aşşağıdaki şekilde yapıyorum.

  • İlk sayısal değerin kaçıncı karakter olduğunu bulup
  • İlk metinsel değerin kaçıncı karakter olduğunu bulup
  • Son metinsel değerin kaçıncı karakter olduğunu bulup
  • Çıkan sonuçlara göre ilgili hücreden parçaları alıyorum.
Farklı yollar ile denemelerim olmuş ama sonuç alamadım. Fikir vermesi açısından nasıl bir yol izlemeliyim ?
Saygılarımla,
 
Son düzenleme:
Bu dizi formülünü deneyiniz;
Kod:
[FONT="Trebuchet MS"]=Parçaal(A1;Kaçıncı(0;(EHatalıysa(Parçaal(A1;Satır(Dolaylı("1:"&Uzunluk(A1)));1)*1)*1);0);Uzunluk(A1)-Topla((EHatalıysa(Parçaal(A1;Satır(Dolaylı("1:"&Uzunluk(A1)));1)*1)*1)))[/FONT]
 
Murat bey, teşekkür ederim.
Önerdiğiniz formülü geçen gün başka bir konu da paylaşmıştınız.Formül gerekli işlemi tam anlamıyla yapmıyor.

Örneğin;
111aaa222 şeklindeki veriyi 111aaa şeklinde alıyor.
Formül şu şekildeki verilerde daha iyi çalışıyor.111aaa
Benim istediğim 111aaa222 veriyi 111222 olarak alması.
 
Evet Emre Bey, haklısınız.

Verdiğim formülde, iki sayı arasında harf yada tersi olduğunda doğru sonucu vermiyor.
Bu konuda neler yapılabilir bakacağım.
 
Rakam ile başlanıldığında bu tarz (111aaa222) veriler için kullanılabilir;
=ARA(1E+99;--SOLDAN(A1;SATIR($1:$10)))&ARA(1E+99;--SAĞDAN(A1;SATIR($1:$10)))
 
Alternatif olarak yardımcı sütun kullanarak hazırladığım örnek dosyayı inceleyiniz.

ÖRNEK.xlsx - 46 KB
 

Ekli dosyalar

İlginiz için teşekkürler.
Bu gibi durumlarda onlarca KTF'nin boşuna yazılmadığını daha iyi anlamış oldum.:)
 
Yerleşik formüllerle malum her işlem yapılamıyor.

Excel bizi formül anlamında serbest bırakmış. Bendeki formüller işlemleriniz için yetersiz geliyorsa kendi fonksiyonunuzu yazın demiş. (KTF)

Fakat bazı üyelerimizin makro takıntısı olduğundan bu tarz çözümleri ısrarla formülle çözümlemek istiyorlar. Tabi bu gibi durumlarda yardımcı hücreler kullanmak gerekebiliyor.
 
.

Bunu deneyin.

Dizi formülüdür.

Kod:
=SUM(MID(A1;LARGE(ISNUMBER(
--MID(A1;ROW($1:$25);1))*ROW($1:$25);ROW($A$1:INDEX($A:$A;COUNT(
--MID(A1;ROW($1:$25);1)))));1)*10^(ROW(INDEX($1:$25;COUNT(
--MID(A1;ROW(INDEX($1:$25;1;1):INDEX($1:$25;LEN(A1);1));1));1):INDEX($1:$25;1;1))-1))

Örnek dosya ekte.


.
 

Ekli dosyalar

.

Sayın bzace,

Yukarıda verdiğim formül işinize yaramadı mı?

.
 
Merhaba,

Uyguladığınız formül gerçekten harika... Elinize sağlık...
 
Sayın Yurttaş,
İşime yaramaz olurmu kendi adıma her türlü bilgiye açığım.

vbscript.regexp hakkında bilgi edinmek isterken bu işlemi biraz zorlayarak (kendi adıma) formül ile farklı yollardan nasıl yapılabileceğini öğrenmek adına soruyu yöneltmiştim.

Bira geç dönüş olduğu için kusura bakmayınız.

Tekrardan herkese Teşekkürler.

Saygılarımla,
 
Korhan Bey ve Sn. yurttas, çözümleriniz için ben de teşekkür etmek isterim.
Zihninize sağlık.

Selamlar, saygılar.
 
Farklı bir alternatif;
Kod:
=PARÇAAL(TOPLA.ÇARPIM(--PARÇAAL("01"&A1;KÜÇÜK((SATIR($1:$300)-1)*
  ESAYIYSA(-PARÇAAL("01"&A1;SATIR($1:$300);1));SATIR($1:$300))+1;1);
    10^(300-SATIR($1:$300)));2;255)
[COLOR="Blue"]Formül Dizi Formülüdür.CTRL + SHİFT + ENTER ile tamamlanması gerekir.[/COLOR]
 
Sayın Yurttaş,
İlgili dosyada ne gibi örneklerin olduğu hakkında bir bilgim yoktur.
Gün gelir nasıl bilgilerin olduğunu öğrenirim belki.
 
Bu sitenin varlığından yenii haberim oluyor.
Teşekkürler.
 
Farklı bir alternatif.
Uygulama Korhan bey'in örneğinde olduğu gibi uygulanması gerekmektedir.
Kod:
=EĞERHATA(PARÇAAL(" "&$A1&" ";KÜÇÜK(EĞERHATA(EĞER(EĞER((KOD(PARÇAAL(" "&$A1&" ";SATIR($1:$10);1))>57)
  +(KOD(PARÇAAL(" "&$A1&" ";SATIR($1:$10);1))<48);"";1)<>EĞER((KOD(PARÇAAL($A1&" ";SATIR($1:$10);1))>57)
    +(KOD(PARÇAAL($A1&" ";SATIR($1:$10);1))<48);"";1);SATIR($1:$10);"");"");
      SÜTUN(A1)*2-1)+1;KÜÇÜK(EĞERHATA(EĞER(EĞER((KOD(PARÇAAL(" "&$A1&" ";SATIR($1:$10);1))>57)+
        (KOD(PARÇAAL(" "&$A1&" ";SATIR($1:$10);1))<48);"";1)<>EĞER((KOD(PARÇAAL($A1&" ";SATIR($1:$10);1))>57)
          +(KOD(PARÇAAL($A1&" ";SATIR($1:$10);1))<48);"";1);SATIR($1:$10);"");"");SÜTUN(A1)*2)-
            KÜÇÜK(EĞERHATA(EĞER(EĞER((KOD(PARÇAAL(" "&$A1&" ";SATIR($1:$10);1))>57)+
              (KOD(PARÇAAL(" "&$A1&" ";SATIR($1:$10);1))<48);"";1)<>EĞER((KOD(PARÇAAL($A1&" ";SATIR($1:$10);1))>57)
                +(KOD(PARÇAAL($A1&" ";SATIR($1:$10);1))<48);"";1);SATIR($1:$10);"");"");SÜTUN(A1)*2-1));"")
[COLOR="Blue"]Formül Dizi Formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]
 
Farklı bir alternatif;
Formüller / Ad Yönetici / Yeni seçimi formül çubuğuna;(2007 ve üst sürümler için)
Kod:
=SATIR(İNDİS($1:$65536;1;1):İNDİS($1:$65536;255;1))
Tanımlanan Ad'ın ismi ALAN olsun (isteğe göre değişebilir.)

Sonuç almak için;
Kod:
=TOPLA(EĞER(ESAYIYSA(1/(PARÇAAL(A1;alan;1)+1));PARÇAAL(A1;alan;1)
  *10^DÇARP(-(alan<DEVRİK_DÖNÜŞÜM(alan));-ESAYIYSA(1/PARÇAAL(A1;alan;1)+1))))
[COLOR="Blue"]Formül Dizi Formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]
 
Geri
Üst