2'den Fazla Kriter İçin Index ve Match Kullanımı

Katılım
23 Şubat 2010
Mesajlar
90
Excel Vers. ve Dili
Excel 2007/ İngilizce
Herkese Merhaba,

Öğrendiğim kadarıyla Index fonksiyonu 2 değişken ile beraber kullanılıyor. Ancak benim 2 adet satır ve 1 adet sütun olmak üzere 3 adet seçim kriterim var ve malesef elde etmeye çalıştığım sonuca ulaşamıyorum.

Kısaca ekte yer alan tabloyu izah etmem gerekirse..

"a" başlıklı sütunda, satır karşılığı "Dec" olan 2. değeri almak istiyorum. Uyguladığım Index-Match formulasyonu bana ilk "a"-"Dec" kesişimini veriyor. Ancak dediğim gibi 2. kesişime ulaşmam gerekli.

Bu noktada tablo üzerinde değişiklik yapma şansım yok. Ayrıca değişik formüllerle de çözüm söz konusu olursa memnun olurum.

Şimdiden teşekkürler :)
 

Ekli dosyalar

Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Selamlar,

Aşagıdaki formül işinize yararmı ?

Kod:
=TOPLA.ÇARPIM((C1:I1="a")*(A2:A14="dec")*(B2:B14=2010)*(C2:I14))
Sonuç:1,34
 
Katılım
23 Şubat 2010
Mesajlar
90
Excel Vers. ve Dili
Excel 2007/ İngilizce
Vedat Bey,

Yardımınız için teşekkür ederim. Ancak aşağıdaki formülü (sizin yollamış olduğunuz ile aynı sadece ingilizce karşılığı) kullandım fakat sonuç alamadım.

=SUMPRODUCT((C1:I1="a")*(A2:A14="Dec")*(B2:B14=2010)*(C2:I14))

Sebebi ise sanırım B14'ün boş olması.. B14'e 2010 ifadesini eklediğim anda ben de 1.34 değerine ulaştım ama dediğim gibi dosya üzerinde ufakta olsa bir oynama yapamıyorum...

Farklı bir düşünceniz olabilir mi? Tekrar teşekkürler :)
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Eğer veri düzeniniz bu şekilde ise, kendi formülünüze küçük bir ilave ile bu işi halledebilirsiniz.

Kod:
=İNDİS(C2:I14;KAÇINCI("Dec";A2:A14;0)[COLOR=red][B]+12[/B][/COLOR];KAÇINCI("a";C1:C14;0))
.
 
Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Selamlar,

Altarnatif olarak aşagıdaki formül işinize belki işinize yarar,

Kod:
=TOPLA.ÇARPIM((C1:I1="a")*(A2:A14="dec")*(B2:B14=0)*(C2:I14))
 
Katılım
23 Şubat 2010
Mesajlar
90
Excel Vers. ve Dili
Excel 2007/ İngilizce
Merhaba,

Eğer veri düzeniniz bu şekilde ise, kendi formülünüze küçük bir ilave ile bu işi halledebilirsiniz.

Kod:
=İNDİS(C2:I14;KAÇINCI("Dec";A2:A14;0)[COLOR=red][B]+12[/B][/COLOR];KAÇINCI("a";C1:C14;0))
.
Merhaba Ömer,

Aslında +12 gibi çözümden ziyade 2. "Dec" veya ilerki uygulamalara göre 3.,4. vs. "Dec" değerlerini seçtirmem gerekebilir ve önümüzdeki dönemde bu tablo elime tekrar ulaştığında +12 geçerliliğini yitirebilir..

Sonuça ulaşabiliyorum ama tam manası ile çözüme ulaşabilmiş değilim ama gene de çok teşekkür ederim. :)
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba Ömer,

Aslında +12 gibi çözümden ziyade 2. "Dec" veya ilerki uygulamalara göre 3.,4. vs. "Dec" değerlerini seçtirmem gerekebilir ve önümüzdeki dönemde bu tablo elime tekrar ulaştığında +12 geçerliliğini yitirebilir..

Sonuça ulaşabiliyorum ama tam manası ile çözüme ulaşabilmiş değilim ama gene de çok teşekkür ederim. :)
Bunları ilk mesajınızda açıklasaydınız daha doğru olmazmıydı.

Bu şekilde deneyiniz.

Kod:
=İNDİS(C2:I14;KÜÇÜK(EĞER(ESAYIYSA(MBUL("Dec";A2:A14));SATIR(A2:A14)-1);[COLOR=red][B]2[/B][/COLOR]);
KAÇINCI("a";C1:I1;0))
Dizi formülüdür. Ctrl + shift + enter tuş kombinasyonu ile girişini tamamlayınız.
 
Katılım
23 Şubat 2010
Mesajlar
90
Excel Vers. ve Dili
Excel 2007/ İngilizce
Haklısın Ömer. :(

Ben de açıkcası dosya üzerinde hala çalıştığım için bazı noktaları üzerine eğildikçe farkediyorum.

Son olarak, formülasyonun (EĞER(ESAYIYSA(MBUL("Dec";A2:A14));SATIR(A2:A14)-1) kısmını kısaca açıklaman mümkün olabilir mi?

Tekrar teşekkürler..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Kısaca açıklamaya çalışayım;

Formülü dizi formülüne çevirdiğimiz için hesaplamalar dizi oluşturur, oluşan bu dizin parçaları;

MBUL("Dec";A2:A14)

A2:A14 arasında "Dec" değerini arar bulduğu hücrelerde ise "Dec" değerinin hücredeki başangıç karakter sayısını üretir, bulamadıklarında ise hata üretir.

Dizi oluşmu; {1\#DEĞER!\#DEĞER!\........\1} olarak sonuçlanır.

oluşan bu diziye esayıysa şartı ile sayı olanlara DOĞRU olmayanlara YANLIŞ mantıksal değerleri verdiririz;

esayıysa({1\#DEĞER!\#DEĞER!\........\1} bu işlemden sonra dizi;

{DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU} biçime gelir. Bu son diziye eğer şartı koyarak;

eğer({DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU}; dizideki doğru olanlar SATIR(A2:A14)-1 dizisideki sonuçlarını verir yanlış olanlar ise yanlış olarak kalır.

SATIR(A2:A14)-1 dizisi ise; 2 ile 14 arası dizi oluşturur.

{2\3\4\5\6\7\8\9\10\11\12\13\14} şeklinde - 1 ile çıkartarak;

{1\2\3\4\5\6\7\8\9\10\11\12\13} dizisini oluştururuz.

eğer({DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU};{1\2\3\4\5\6\7\8\9\10\11\12\13}

son oluşan dizi;

{1\YANLIŞ\YANLIŞ\..........\13} şeklini alır.

Sizde burada küçük fonksiyonu ile dizide 2. en küçük olan sayı yani 13 değerini bulurak indis fonksiyonundaki satır değerini oluşturmuş olursunuz.

Umarım açıklayıcı olmuştur.

Hızlı yazımdan dolayı, yazım hatalarım varsa kusuruma bakmayın.

.
 
Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Kısaca açıklamaya çalışayım;

Formülü dizi formülüne çevirdiğimiz için hesaplamalar dizi oluşturur, oluşan bu dizin parçaları;

MBUL("Dec";A2:A14)

A2:A14 arasında "Dec" değerini arar bulduğu hücrelerde ise "Dec" değerinin hücredeki başangıç karakter sayısını üretir, bulamadıklarında ise hata üretir.

Dizi oluşmu; {1\#DEĞER!\#DEĞER!\........\1} olarak sonuçlanır.

oluşan bu diziye esayıysa şartı ile sayı olanlara DOĞRU olmayanlara YANLIŞ mantıksal değerleri verdiririz;

esayıysa({1\#DEĞER!\#DEĞER!\........\1} bu işlemden sonra dizi;

{DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU} biçime gelir. Bu son diziye eğer şartı koyarak;

eğer({DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU}; dizideki doğru olanlar SATIR(A2:A14)-1 dizisideki sonuçlarını verir yanlış olanlar ise yanlış olarak kalır.

SATIR(A2:A14)-1 dizisi ise; 2 ile 14 arası dizi oluşturur.

{2\3\4\5\6\7\8\9\10\11\12\13\14} şeklinde - 1 ile çıkartarak;

{1\2\3\4\5\6\7\8\9\10\11\12\13} dizisini oluştururuz.

eğer({DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU};{1\2\3\4\5\6\7\8\9\10\11\12\13}

son oluşan dizi;

{1\YANLIŞ\YANLIŞ\..........\13} şeklini alır.

Sizde burada küçük fonksiyonu ile dizide 2. en küçük olan sayı yani 13 değerini bulurak indis fonksiyonundaki satır değerini oluşturmuş olursunuz.

Umarım açıklayıcı olmuştur.

Hızlı yazımdan dolayı, yazım hatalarım varsa kusuruma bakmayın.

.
:bravo::bravo::bravo:
 
Katılım
23 Şubat 2010
Mesajlar
90
Excel Vers. ve Dili
Excel 2007/ İngilizce
Kısaca açıklamaya çalışayım;

Formülü dizi formülüne çevirdiğimiz için hesaplamalar dizi oluşturur, oluşan bu dizin parçaları;

MBUL("Dec";A2:A14)

A2:A14 arasında "Dec" değerini arar bulduğu hücrelerde ise "Dec" değerinin hücredeki başangıç karakter sayısını üretir, bulamadıklarında ise hata üretir.

Dizi oluşmu; {1\#DEĞER!\#DEĞER!\........\1} olarak sonuçlanır.

oluşan bu diziye esayıysa şartı ile sayı olanlara DOĞRU olmayanlara YANLIŞ mantıksal değerleri verdiririz;

esayıysa({1\#DEĞER!\#DEĞER!\........\1} bu işlemden sonra dizi;

{DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU} biçime gelir. Bu son diziye eğer şartı koyarak;

eğer({DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU}; dizideki doğru olanlar SATIR(A2:A14)-1 dizisideki sonuçlarını verir yanlış olanlar ise yanlış olarak kalır.

SATIR(A2:A14)-1 dizisi ise; 2 ile 14 arası dizi oluşturur.

{2\3\4\5\6\7\8\9\10\11\12\13\14} şeklinde - 1 ile çıkartarak;

{1\2\3\4\5\6\7\8\9\10\11\12\13} dizisini oluştururuz.

eğer({DOĞRU\YANLIŞ\YANLIŞ\..........\DOĞRU};{1\2\3\4\5\6\7\8\9\10\11\12\13}

son oluşan dizi;

{1\YANLIŞ\YANLIŞ\..........\13} şeklini alır.

Sizde burada küçük fonksiyonu ile dizide 2. en küçük olan sayı yani 13 değerini bulurak indis fonksiyonundaki satır değerini oluşturmuş olursunuz.

Umarım açıklayıcı olmuştur.

Hızlı yazımdan dolayı, yazım hatalarım varsa kusuruma bakmayın.

.
Verdiğiniz emek için tekrar teşekkür ederim. Son derece açıklayıcı olmuş.

:bravo: :bravo: :bravo:
 
Üst