• DİKKAT

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

Formül çözümlemesi hk.

Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
Hayırlı geceler.
Sayın turist, en son yaptığı çalışmada bir dizi formülü kullanmış. Benzersizleri sıralıyor. Tabi bir kaç formülden oluşuyor. Bu formüllerin mantığını öğrenmeye çalışıyorum. Tek tek gitmeye çalışsamda beceremedim. Bir de yetmiyormuş gibi bu dizi formülü oluyor. İşler hepten karışıyor.
Uzun lafın kısası Aşağıdaki kodun çalışma mantığını açıklayabilirmisiniz diye bir ricada bulunmak istiyorum.
Teşekkürler

Kod:
=EĞER(EHATALIYSA(İNDİS(DOLAYLI("$A$2:$A$"&BAĞ_DEĞ_DOLU_SAY(A:A)); KAÇINCI(0;EĞERSAY($I$2:I3;DOLAYLI("$A$2:$A$"&BAĞ_DEĞ_DOLU_SAY(A:A)));0)));"";İNDİS(DOLAYLI("$A$2:$A$"&BAĞ_DEĞ_DOLU_SAY(A:A)); KAÇINCI(0;EĞERSAY($I$2:I3;DOLAYLI("$A$2:$A$"&BAĞ_DEĞ_DOLU_SAY(A:A)));0)))
 
Sıralama yapılan dosyayı ekleyebilir misiniz?
 
Merhaba,

Benzersizleri listelemek için alternatif olabilecek bir çalışmayı ekliyorum.

Kod:
=İNDİS($A$1:$A$10;KÜÇÜK(EĞER(EĞERSAY(KAYDIR($A$1;;;SATIR($1:$10));$A$1:$A$9)=1;SATIR($1:$10));SATIR(A1)))

Formülleri içten dışa doğru okumak gerekir.

EĞERSAY(KAYDIR($A$1;;;SATIR($1:$10));$A$1:$A$9) ilk kısım burası, burada eğersay ile {1\1\1\1\2\3\2\2\1\0} dizini elde ettik.Eğersay'ın aralık kısmına kaydır formülü ile A1 hücresinden itibaren 1 satır ekleyerek aralılığı değiştridik. A1:A1 diye başladı A1:A2, A1:A3.... diyerek devam etti. Ölçüt'te ise bütün hücre aralığı seçtik, burada ölçüt A1,A2,A3 olarak kendini devam ettirdi.Burada önemli olan kaydır'la verinin ilk defa 1 geçtiği dizini elde etmek. Kaydır'da satırlar kısmına değil, yükseklik kısmına satır formülü girerek A1:A1,A1:A2,A1:A3 ..... aralıklarını elde edebiliriz.

Daha sonra EĞERSAY(KAYDIR($A$1;;;SATIR($1:$10));$A$1:$A$9)=1 ile {DOĞRU\DOĞRU\DOĞRU\DOĞRU\YANLIŞ\YANLIŞ\YANLIŞ\YANLIŞ\DOĞRU\YANLIŞ} verinin ilk defa geçtiği alanlarla çalışmak için bu kontrolü ekliyoruz.

EĞER(EĞERSAY(KAYDIR($A$1;;;SATIR($1:$10));$A$1:$A$9)=1;SATIR($1:$10)) ile {1\2\3\4\YANLIŞ\YANLIŞ\YANLIŞ\YANLIŞ\9\YANLIŞ} dizesini elde etmiş oluyoruz. Verinin ilk defa geçmiş olduğu dizine benzersiz bir sıra numarası vermek için satır formülünü kullanıyoruz.

Küçük formülü ile KÜÇÜK(EĞER(EĞERSAY(KAYDIR($A$1;;;SATIR($1:$10));$A$1:$A$9)=1;SATIR($1:$10));SATIR(A1)), daha önce elde etmiş olduğumuz {1\2\3\4\YANLIŞ\YANLIŞ\YANLIŞ\YANLIŞ\9\YANLIŞ} dizesinin en küçük sayısını getirtiyoruz.

İNDİS($A$1:$A$10;KÜÇÜK(EĞER(EĞERSAY(KAYDIR($A$1;;;SATIR($1:$10));$A$1:$A$9)=1;SATIR($1:$10));SATIR(A1))) formülü ile de elde etmiş olduğumuz sıra numarasının indis formülündeki dizide belirlediğimiz verideki karşılığını getirmiş oluyoruz.

Umarım anlatabilmişimdir.
 

Ekli dosyalar

Son düzenleme:
Sayın kuvari,
Sanırım yanlış anlattım derdimi..
Ben bu iç içe formüllerin formül dizisindeki görevlerini öğrenip kendim bir iç içe formül oluşturmak istiyorum. Yani sizin verdiğiniz örnekte indis, onun içinde küçük, kaydır, satır vs vs formüller kullanılmış.
Bunları kullanmaktaki amaçları öğrenmeye çalışıyorum.
 
Alternatif,

Kod:
=İNDİS($A$1:$A$9;KÜÇÜK(EĞERHATA(KAÇINCI(SATIR($1:$9);KAÇINCI($A$1:$A$9;$A$1:$A$9;0);0);"");SATIR(A1)))
 
Sayın kuvari Allah razı olsun. Böyle açıklama arıyorum kaç zamandır...
Tabi ilk defa da anlaşılması benim açımdan zor. Bir soru takıldı aklıma; örneğin bu formülü dizi formülü girişi yapmadan hücreye girdiğimizde boş yada hatalı sonuç veriyor. Bu Formülü yazarken tek hücreye göre mi hesaplayacağız yoksa hangi alanlara kadar dizi formülü gireceksek o kadar aralığı mı düşüneceğiz. Çünkü tek hücreye bu formülü girince boş yada hata alıyorum.
 
Geri
Üst