Soru İndis ve Kaçıncı formülü hakkında yardım.

Katılım
3 Kasım 2010
Mesajlar
229
Excel Vers. ve Dili
Excel 2016 - Türkçe
Merhaba Üstadlarım,

Ek'te göndermiş olduğum ve ekran görüntüsünde göndermiş olduğum "Veri Girişi" sayfamda bulunan K2 hücresinde ki formülüm ile ;

1 nolu resim; 1.png - 159 KB

=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$3:$AQ$96; KAÇINCI(F2;'Malzeme Fiyat Listesi'!$D$3:$D$96;0); KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)

Malzeme fiyat listemde tarih koşuluna ve ürün koduna göre fiyatları getirebiliyorum. Dosyayı gönderdiğim de zaten bu formülün veriyi nereden aldığını görebileceksiniz.

Ben bu formüle ek olarak bir koşul daha ekledim. Formülü denemek için R2 hücresine uyguladım ama sonucu sıfır olarak aldım.

Ek olarak ekledim formül ise ;

=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$3:$AQ$96; KAÇINCI(F2;'Malzeme Fiyat Listesi'!$D$3:$D$96;0); KAÇINCI(J2;'Malzeme Fiyat Listesi'!$F$3:$F$96;0); KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)

2 nolu resim; 2.png - 151 KB

Bu formüle ek olarak grup fiyat kodlarını ekledim. Neden sıfır sonuç aldım.

Konuyla ilgili yardımcı olabilirseniz sevinirim.


Çamaşır Yıkatma Çalışma.xlsx - 853 KB
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
798
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Anladığım kadarıyla "Malzeme Fiyat Listesi" sayfanızda, ürün koduna (F2), grup fiyat koduna (J2) ve tarihe (H2) göre uygun fiyatı çekmeye çalışıyorsunuz. Ancak ikinci formülünüzde bazı yapısal hatalar bulunuyor ve bu yüzden sonuç 0 olarak dönüyor. Şimdi neden sıfır döndüğünü açıklayayım:

=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$3:$AQ$96; KAÇINCI(F2;'Malzeme Fiyat Listesi'!$D$3:$D$96;0); KAÇINCI(J2;'Malzeme Fiyat Listesi'!$F$3:$F$96;0); KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)

İNDİS fonksiyonunun standart kullanımı şöyle: İNDİS(dizi; satır_no; sütun_no; ALAN_NO)

Ama siz burada fazladan bir argüman (3. KAÇINCI fonksiyonu) koyuyorsunuz. Bu, İNDİS fonksiyonu içinde geçerli değil.
Yani: İNDİS(dizi; satır_no; sütun_no; ALAN_NO) şeklinde bir kullanımı yalnızca çoklu aralıklar için olur ama sizin kullandığınız aralık ($E$3:$AQ$96) tek bir blok ve alan seçimi burada geçerli değil.

Eğer birden fazla koşula göre veri çekmek istiyorsanız ve bu koşullar aynı satırda yer alıyorsa, DÜŞEYARA ya da İNDİS/KAÇINCI yerine Daha gelişmiş bir dizi formülü veya XLOOKUP / INDEX-MATCH-MATCH gibi iç içe kontroller kullanmak gerekir.

Ancak siz şu anda hem satırda hem sütunda eşleşme yapmaya çalışıyorsunuz ve bir sütun daha (grup fiyat kodu) eklemişsiniz.

"Malzeme Fiyat Listesi" sayfanızda:

Ürün kodları D sütununda
Grup fiyat kodları F sütununda
Tarihler H1:AQ1 aralığında sütun başlığı olarak bulunuyor

Varsayalım ki hem ürün kodu hem de grup fiyat kodu eşleşen aynı satırdaki bir fiyatı bulmak istiyorsunuz.

Bunun için tek bir KAÇINCI ile satırı bulmanız gerekiyor, ama bu satırı iki koşula göre (hem ürün kodu hem grup kodu) bulmanız gerekir.

=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$3:$AQ$96;KAÇINCI(1;('Malzeme Fiyat Listesi'!$D$3:$D$96=F2)*('Malzeme Fiyat Listesi'!$F$3:$F$96=J2);0);KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)

Bu dizi formülüdür.Ctrl + Shift + Enter ile girilmelidir. Sonuç çıktısı böyledir

257342
 
Katılım
3 Kasım 2010
Mesajlar
229
Excel Vers. ve Dili
Excel 2016 - Türkçe
Anladığım kadarıyla "Malzeme Fiyat Listesi" sayfanızda, ürün koduna (F2), grup fiyat koduna (J2) ve tarihe (H2) göre uygun fiyatı çekmeye çalışıyorsunuz. Ancak ikinci formülünüzde bazı yapısal hatalar bulunuyor ve bu yüzden sonuç 0 olarak dönüyor. Şimdi neden sıfır döndüğünü açıklayayım:

=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$3:$AQ$96; KAÇINCI(F2;'Malzeme Fiyat Listesi'!$D$3:$D$96;0); KAÇINCI(J2;'Malzeme Fiyat Listesi'!$F$3:$F$96;0); KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)

İNDİS fonksiyonunun standart kullanımı şöyle: İNDİS(dizi; satır_no; sütun_no; ALAN_NO)

Ama siz burada fazladan bir argüman (3. KAÇINCI fonksiyonu) koyuyorsunuz. Bu, İNDİS fonksiyonu içinde geçerli değil.
Yani: İNDİS(dizi; satır_no; sütun_no; ALAN_NO) şeklinde bir kullanımı yalnızca çoklu aralıklar için olur ama sizin kullandığınız aralık ($E$3:$AQ$96) tek bir blok ve alan seçimi burada geçerli değil.

Eğer birden fazla koşula göre veri çekmek istiyorsanız ve bu koşullar aynı satırda yer alıyorsa, DÜŞEYARA ya da İNDİS/KAÇINCI yerine Daha gelişmiş bir dizi formülü veya XLOOKUP / INDEX-MATCH-MATCH gibi iç içe kontroller kullanmak gerekir.

Ancak siz şu anda hem satırda hem sütunda eşleşme yapmaya çalışıyorsunuz ve bir sütun daha (grup fiyat kodu) eklemişsiniz.

"Malzeme Fiyat Listesi" sayfanızda:

Ürün kodları D sütununda
Grup fiyat kodları F sütununda
Tarihler H1:AQ1 aralığında sütun başlığı olarak bulunuyor

Varsayalım ki hem ürün kodu hem de grup fiyat kodu eşleşen aynı satırdaki bir fiyatı bulmak istiyorsunuz.

Bunun için tek bir KAÇINCI ile satırı bulmanız gerekiyor, ama bu satırı iki koşula göre (hem ürün kodu hem grup kodu) bulmanız gerekir.

=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$3:$AQ$96;KAÇINCI(1;('Malzeme Fiyat Listesi'!$D$3:$D$96=F2)*('Malzeme Fiyat Listesi'!$F$3:$F$96=J2);0);KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)

Bu dizi formülüdür.Ctrl + Shift + Enter ile girilmelidir. Sonuç çıktısı böyledir

Ekli dosyayı görüntüle 257342

Sayın @muhasebeciyiz ,

Öncelikle detaylı cevabın için çok teşekkür ederim gerçekten çok faydalı oldu.

Şu anda sıkıntı yok istediğim sonuca ulaşıyorum.
 

Korhan Ayhan

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

Normal formül;

C++:
=EĞERHATA(İNDİS('Malzeme Fiyat Listesi'!$E$1:$AQ$96;TOPLAMA(15;6;SATIR('Malzeme Fiyat Listesi'!$D$3:$D$96)/(('Malzeme Fiyat Listesi'!$D$3:$D$96=F2)*('Malzeme Fiyat Listesi'!$F$3:$F$96=J2));1);KAÇINCI(H2;'Malzeme Fiyat Listesi'!$H$1:$AQ$1;0)+4);0)
 
Üst