EĞERYOKSA Formülü (IFNA): Yalnız #YOK Hatasını Yakalama
EĞERYOKSA
İngilizce adı: IFNA
Yayın: · Son güncelleme:
EĞERYOKSA kısaca
EĞERYOKSA, formül #YOK hatası verirse belirlediğiniz değeri, aksi hâlde formülün sonucunu döndürür. Diğer hataları gizlemediği için arama formüllerinde EĞERHATA'dan daha seçicidir; Excel 2013 ile gelmiştir.
Söz dizimi
EĞERYOKSA(değer; eğer_yoksa_değer)IFNA(value, value_if_na)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
Argümanlar
| Argüman | Durum | Açıklama |
|---|---|---|
değervalue | Zorunlu | #YOK hatası için denetlenen formül ya da değer. |
eğer_yoksa_değervalue_if_na | Zorunlu | değer #YOK hatası üretirse döndürülecek sonuç. |
İçindekiler
EĞERYOKSA'nın farkı
Excel EĞERYOKSA formülü yalnız #YOK hatasını yakalar ve yerine sizin yazdığınız değeri koyar. #YOK, arama formüllerinin "aradığım değeri bulamadım" deme biçimidir. Diğer hatalar olduğu gibi görünmeye devam eder.
Ürün koduyla fiyat getiren bir listede kod bulunmazsa =EĞERYOKSA(DÜŞEYARA("P-104";A2:B4;2;YANLIŞ);"Listede yok") formülü "Listede yok" yazar. Kod listedeyse gerçek fiyat gelir.
Söz dizimi
İki argüman vardır ve ikisi de zorunludur. değer denetlenen formüldür, eğer_yoksa_değer ise #YOK durumunda dönecek sonuçtur. Bu sonuç metin, sayı ya da boş metin ("") olabilir.
Formül Excel 2013 ile gelmiştir ve Microsoft 365, Excel 2021, 2019, 2016 sürümlerinde de bulunur. Excel 2010'da açılan bir dosyada #AD? hatası görürsünüz.
EĞERYOKSA, içindeki hesaplamayı yalnız bir kez yapar. Eski dosyalarda sık görülen EĞER(EYOKSA(DÜŞEYARA(...));"Yok";DÜŞEYARA(...)) kalıbı aramayı iki kez çalıştırır. EĞERYOKSA ile aynı sonuç daha kısa ve daha hızlı bir formülle alınır.
Neden EĞERHATA yerine EĞERYOKSA?
Arama formüllerinde #YOK beklenen bir durumdur, ama #BAŞV! ya da #DEĞER! formülün bozulduğunu gösterir. EĞERHATA bunların hepsini aynı mesajla örter. EĞERYOKSA ise yalnız beklenen durumu yakalar ve gerçek hatayı size gösterir.
Bunu basit bir deneyle görebilirsiniz. Satışı 0 adet olan bir satırda =EĞERYOKSA(B2/C2;"Yok") yazdığınızda sonuç "Yok" olmaz, #SAYI/0! görünür. Bölme hatası #YOK türünde olmadığı için formül ona dokunmaz.
Fiyat listesinden varsayılan değerle arama
Sipariş formlarında listede olmayan kodlar için 0 döndürmek toplamların bozulmasını önler. =EĞERYOKSA(DÜŞEYARA("P-102";A2:B4;2;YANLIŞ);0) formülü P-102 kodunun 18.500 TL fiyatını getirir. Kod listeden silinirse sonuç 0 olur ve sipariş toplamı hata vermez.
Bu sonuç sizi yanıltabilir, çünkü 0 fiyatlı bir satır gözden kaçabilir. Fatura gibi hassas tablolarda 0 yerine "Kod hatalı" gibi bir metin yazmak eksik kalemi daha görünür kılar.
KAÇINCI ile listede olup olmadığını göstermek
EĞERYOKSA yalnız fiyat getirmek için değil, bir değerin listede olup olmadığını göstermek için de kullanılır. KAÇINCI bulduğu değerin sırasını, bulamadığında #YOK döndürür. =EĞERYOKSA(KAÇINCI(A2;Kara_liste!A:A;0);"Temiz") formülü kara listede olmayan müşteri için "Temiz" yazar, listede olan için sıra numarasını gösterir.
Sonucu daha okunur yapmak isterseniz formülü EĞER ile birleştirebilirsiniz. Toplu kontrol gereken durumlarda bu kalıp, iki listeyi gözle karşılaştırmaktan çok daha hızlıdır. Binlerce satırlık bir müşteri listesinde birkaç saniyede sonuç alırsınız.
Sık yapılan hatalar
Sık görülen yanılgı, EĞERYOKSA'nın tüm hataları yakaladığını sanmaktır. Sütun numarasını tablo genişliğinden büyük yazdığınızda DÜŞEYARA #BAŞV! verir ve EĞERYOKSA bunu yakalamaz. Bu bir eksiklik değil, formülün amacıdır.
Bir diğer sorun, değerin gerçekten listede olduğu hâlde #YOK almaktır. Sayı olarak saklanan kod ile metin olarak saklanan kod eşleşmez, sondaki boşluk da eşleşmeyi bozar. Bu durumda EĞERYOKSA sorunu çözmez, yalnız gizler; önce veriyi KIRP ile temizleyin.
Hangi formülle birlikte?
EĞERYOKSA çoğunlukla DÜŞEYARA, YATAYARA, KAÇINCI ve İNDİS ile birlikte kullanılır. ÇAPRAZARA kullanıyorsanız formülün kendi "bulunamazsa" argümanı aynı işi görür. Tüm hata türlerini yakalamanız gerekiyorsa EĞERHATA'ya geçin.
Elinizdeki DÜŞEYARA formüllerinden EĞERHATA ile sarılmış olanları bulun ve EĞERYOKSA ile değiştirin. Ardından sütun numarasını bilerek büyütüp #BAŞV! hatasının artık göründüğünü kontrol edin.
Örnekler
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Kod | Fiyat | ||
| 2 | P-101 | 12.400 | Listede yok | |
| 3 | P-102 | 18.500 | ||
| 4 | P-103 | 9.900 |
=EĞERYOKSA(DÜŞEYARA("P-104";A2:B4;2;YANLIŞ);"Listede yok")=IFNA(VLOOKUP("P-104",A2:B4,2,FALSE),"Listede yok")Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
D2 hücresinin sonucu: Listede yok
P-104 listede olmadığı için DÜŞEYARA #YOK üretir. EĞERYOKSA bu hatayı Listede yok metniyle değiştirir.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Kod | Fiyat | ||
| 2 | P-101 | 12.400 | 18.500 | |
| 3 | P-102 | 18.500 | ||
| 4 | P-103 | 9.900 |
=EĞERYOKSA(DÜŞEYARA("P-102";A2:B4;2;YANLIŞ);0)=IFNA(VLOOKUP("P-102",A2:B4,2,FALSE),0)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
D2 hücresinin sonucu: 18.500
P-102 listede bulunur ve fiyatı 18.500 olarak gelir. Hata olmadığı için ikinci argüman kullanılmaz.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Ürün | Tutar | Adet | ||
| 2 | Termos | 1.500 | 0 | #DIV/0! |
=EĞERYOKSA(B2/C2;"Yok")=IFNA(B2/C2,"Yok")Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
E2 hücresinin sonucu: #DIV/0!
Bölme #SAYI/0! hatası verir. Bu hata #YOK olmadığı için EĞERYOKSA ona dokunmaz ve hata görünür kalır.
Yaygın hatalar ve çözümleri
- #YOK
Neden: Aranan değer listede yok; EĞERYOKSA kullanılmadığında hücrede #YOK görünür.
Çözüm: Arama formülünü EĞERYOKSA içine alın ve okunur bir varsayılan değer verin.
#YOK hatasının ayrıntılı çözümü → - #BAŞV!
Neden: Arama formülündeki sütun numarası tablo genişliğinden büyük; EĞERYOKSA bu hatayı yakalamaz.
Çözüm: Sütun numarasını düzeltin. Bu hata formülün bozuk olduğunu gösterdiği için gizlenmemelidir.
#BAŞV! hatasının ayrıntılı çözümü → - #AD?
Neden: Dosya EĞERYOKSA'nın bulunmadığı Excel 2010 ya da daha eski bir sürümde açıldı.
Çözüm: Eski sürümlerde formülü EĞERHATA ile yazın.
#AD? hatasının ayrıntılı çözümü →
İlgili fonksiyonlar
EĞERYOKSA kullanan rehberler ve alıştırmalar
Sıkça Sorulan Sorular
Excel EĞERYOKSA formülü nasıl kullanılır?
Arama formülünü ilk argümana, bulunamazsa görünecek değeri ikinci argümana yazarsınız: =EĞERYOKSA(DÜŞEYARA(...);"Listede yok").
EĞERYOKSA neden #SAYI/0! hatasını yakalamıyor?
Formül yalnız #YOK hatası için tasarlanmıştır. Sıfıra bölme gibi diğer hataları da yakalamak istiyorsanız EĞERHATA kullanın.
EĞERYOKSA hangi sürümde var?
Excel 2013 ve sonraki sürümlerde, Microsoft 365'te ve Excel'in web sürümünde bulunur.