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

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:

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
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]
 
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 -
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ı.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
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.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
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)))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,205
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif olarak yardımcı sütun kullanarak hazırladığım örnek dosyayı inceleyiniz.

ÖRNEK.xlsx - 46 KB
 

Ekli dosyalar

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 -
İlginiz için teşekkürler.
Bu gibi durumlarda onlarca KTF'nin boşuna yazılmadığını daha iyi anlamış oldum.:)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,205
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

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

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Sayın bzace,

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

.
 

Korhan Ayhan

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

Uyguladığınız formül gerçekten harika... Elinize sağlık...
 
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 -
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,
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Korhan Bey ve Sn. yurttas, çözümleriniz için ben de teşekkür etmek isterim.
Zihninize sağlık.

Selamlar, saygılar.
 
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 -
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]
 
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 -
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.
 
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 -
Bu sitenin varlığından yenii haberim oluyor.
Teşekkürler.
 
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 -
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]
 
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 -
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]
 
Üst