#YOK
İngilizce Excel'de: #N/A
#YOK (#N/A) Hatası Nedir, Nasıl Düzeltilir?
Yayın: · Son güncelleme:
Kısaca
#YOK hatası, arama formülünün aradığı değeri bulamadığını gösterir. Değerin listede olup olmadığını, sayı/metin biçimini ve fazladan boşlukları kontrol edin; beklenen eksikleri EĞERYOKSA ile yakalayın.
#YOK hatasının nedenleri
- 1
Aranan değer listede yok
Değer tablonun arama sütununda hiç bulunmuyor. Bu durumda hata doğru bilgi verir ve EĞERYOKSA ile anlamlı bir değere çevrilebilir.
- 2
Sayı ve metin biçimi farklı
Aranan değer sayı, tablodaki değer metin olarak saklanmış (ya da tersi). Ekranda aynı görünseler de Excel bunları eşit saymaz.
- 3
Fazladan boşluk veya görünmez karakter
Başka bir sistemden kopyalanan verilerde metnin başında ya da sonunda boşluk kalabilir. "Elma " ile "Elma" eşleşmez.
- 4
Aranan değer ilk sütunda değil
DÜŞEYARA yalnız tablo_dizisinin ilk sütununda arar. Değer başka bir sütundaysa bulunamaz.
- 5
Yaklaşık eşleşmede küçük değer
Yaklaşık eşleşmede aranan değer listedeki en küçük değerden küçükse sonuç #YOK olur.
- 6
Kopyalama sırasında kayan aralık
Göreli başvurulu bir arama formülü aşağı kopyalandığında tablo aralığı da kayar ve bazı satırlar aralığın dışında kalır.
Nasıl düzeltilir?
1Boşlukları KIRP ile temizleyin
Aranan değeri KIRP içine alarak baştaki ve sondaki boşlukları silin.
=DÜŞEYARA(KIRP(D2);$A$2:$B$4;2;YANLIŞ)=VLOOKUP(TRIM(D2),$A$2:$B$4,2,FALSE)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
2Metin olarak saklanan sayıyı çevirin
Aranan değer metin hâlinde bir sayıysa SAYIYAÇEVİR ile sayıya dönüştürün.
=DÜŞEYARA(SAYIYAÇEVİR(D2);$A$2:$B$4;2;YANLIŞ)=VLOOKUP(VALUE(D2),$A$2:$B$4,2,FALSE)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
3Tablo aralığını sabitleyin
Formülü kopyalamadan önce aralığı mutlak başvuruya çevirin ve tam eşleşme kullanın.
=DÜŞEYARA(D2;$A$2:$B$4;2;YANLIŞ)=VLOOKUP(D2,$A$2:$B$4,2,FALSE)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
4Beklenen eksikleri EĞERYOKSA ile yakalayın
Listede olmaması normal olan değerler için hatayı 0 ya da açıklayıcı bir metne çevirin.
=EĞERYOKSA(DÜŞEYARA(D2;$A$2:$B$4;2;YANLIŞ);0)=IFNA(VLOOKUP(D2,$A$2:$B$4,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.
İçindekiler
#YOK hatası ne anlama gelir?
#YOK, Excel'in aradığı değeri bulamadığını bildirme biçimidir ve çoğunlukla DÜŞEYARA, YATAYARA, KAÇINCI ve ÇAPRAZARA gibi arama fonksiyonlarında görülür. İngilizce Excel'de aynı hata #N/A olarak yazılır. Formülün yazımı genellikle doğrudur; sorun aranan değer ile tablo arasındadır.
Örneğin Elma, Armut ve Kiraz satırları olan bir stok listesinde "Muz" aratırsanız formül #YOK döndürür. Bu durumda hata bilgiyi doğru aktarır, çünkü Muz listede gerçekten yoktur.
Neden ortaya çıkar?
En yaygın neden, aranan değerin tabloda hiç bulunmamasıdır. Değer var gibi görünüp yine de #YOK alıyorsanız büyük ihtimalle biçim ya da boşluk farkı vardır: 1001 sayısı ile metin olarak girilmiş 1001 eşleşmez, "Elma " ile "Elma" da farklı değerlerdir.
Diğer nedenler formülün kurgusuyla ilgilidir. Aranan değer tablo dizisinin ilk sütununda değilse, yaklaşık eşleşmede aranan değer listedeki en küçük değerden küçükse ya da aralık formül kopyalanırken kaymışsa aynı hatayı görürsünüz.
Adım adım düzeltme
İlk iş, aranan değeri tablodan kopyalayıp formüle yapıştırmaktır; sonuç gelirse sorun yazımdadır. Sonra hizalamaya bakın. Excel varsayılan olarak sayıları sağa, metinleri sola yaslar ve bu fark çoğu zaman sorunu ele verir.
Boşluk şüphesi varsa aranan değeri KIRP içine alın, örneğin =DÜŞEYARA(KIRP(D2);A2:B4;2;YANLIŞ). Tablo aralığını $A$2:$B$4 gibi mutlak başvuruyla sabitlemek de kopyalama kaynaklı #YOK'ları önler.
Hatayı gizlemek ne zaman doğru olur?
Eksik değer beklenen bir durumsa hatayı EĞERYOKSA ile anlamlı bir değere çevirmek doğrudur. Sipariş listesindeki her ürün stok tablosunda olmayabilir; =EĞERYOKSA(DÜŞEYARA("Muz";A2:B4;2;YANLIŞ);0) bu durumda stok yok anlamında 0 döndürür.
EĞERHATA da benzer işi yapar ama bütün hata türlerini yakalar. Yanlış sütun numarası yüzünden oluşan #BAŞV! hatası da sessizce 0'a döner ve formüldeki gerçek sorunu fark etmezsiniz. Yalnız #YOK beklediğiniz yerde EĞERYOKSA'yı tercih edin.
Dosyanızdaki bütün hatalı hücreleri bulmak için Giriş sekmesindeki Bul ve Seç menüsünden Özel Git'i açın ve Formüller altında yalnız Hatalar seçeneğini işaretleyin. Ardından her #YOK hücresini yukarıdaki sırayla kontrol edin.
Örnekler
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ürün | Stok | ||
| 2 | Elma | 120 | #N/A | |
| 3 | Armut | 80 | ||
| 4 | Kiraz | 45 |
=DÜŞEYARA("Muz";A2:B4;2;YANLIŞ)=VLOOKUP("Muz",A2:B4,2,FALSE)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: #N/A
Muz, A sütununda yok. Tam eşleşme istendiği için formül #YOK (#N/A) döndürür.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ürün | Stok | ||
| 2 | Elma | 120 | 0 | |
| 3 | Armut | 80 | ||
| 4 | Kiraz | 45 |
=EĞERYOKSA(DÜŞEYARA("Muz";A2:B4;2;YANLIŞ);0)=IFNA(VLOOKUP("Muz",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: 0
DÜŞEYARA yine #YOK üretir, ama EĞERYOKSA bu hatayı yakalar ve stok yok anlamında 0 yazar.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ürün | Stok | ||
| 2 | Elma | 120 | Listede yok | |
| 3 | Armut | 80 | ||
| 4 | Kiraz | 45 |
=EĞERHATA(DÜŞEYARA("Muz";A2:B4;2;YANLIŞ);"Listede yok")=IFERROR(VLOOKUP("Muz",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
Hata yerine okura ne olduğunu anlatan bir metin gösterilir.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ürün | Stok | ||
| 2 | Elma | 120 | 120 | |
| 3 | Armut | 80 | ||
| 4 | Kiraz | 45 |
=DÜŞEYARA(KIRP("Elma ");A2:B4;2;YANLIŞ)=VLOOKUP(TRIM("Elma "),A2:B4,2,FALSE)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: 120
Sonunda boşluk olan "Elma " doğrudan aranırsa eşleşmez. KIRP boşluğu siler, Elma bulunur ve stok değeri 120 gelir.
#YOK hatası veren fonksiyonlar
Sıkça Sorulan Sorular
#YOK ile #N/A aynı hata mı?
Evet. Türkçe Excel'de #YOK, İngilizce Excel'de #N/A olarak görünür. Dosyayı farklı dildeki bir Excel'de açtığınızda hata kodu o dile göre gösterilir.
#YOK hatası toplamı neden bozuyor?
TOPLA, aralıkta tek bir hata olsa bile sonucu hata olarak döndürür. Kaynak formülleri EĞERYOKSA ile 0'a çevirebilir ya da hataları yok sayabilen TOPLAMA fonksiyonunu kullanabilirsiniz.
EĞERHATA mı EĞERYOKSA mı kullanmalıyım?
Yalnız bulunamayan değerleri yakalamak istiyorsanız EĞERYOKSA daha güvenlidir. EĞERHATA #BAŞV! ve #DEĞER! gibi başka hataları da gizler ve formüldeki gerçek sorunu fark etmenizi zorlaştırır.