DÜŞEYARA Hataları ve EĞERHATA ile Çözümleri
Bu derste ne yapacağız?
Bu ders, kursun beşinci dersidir. Önceki derslerde DÜŞEYARA ile bir tabloda değer aramayı gördük. Bu derste formülün neden bazen #YOK hatası verdiğini bulacak, sonra bu hatayı EĞERHATA ile okunaklı bir sonuca çevireceksiniz. Bir sonraki derste XLOOKUP ile arama yapacağız. Bu dersteki hata avı becerisi orada da işinize yarayacak.
Hedef: #YOK hatasının üç ana nedenini (fazla boşluk, sayı-metin uyumsuzluğu, mutlak başvuru eksikliği) tanımak, düzeltmek ve sonucu EĞERHATA ile kontrol altına almak.
Ön koşul: DÜŞEYARA formülünü en az bir kez yazmış olmanız gerekir. Bilgisayarınızda Excel'in masaüstü sürümü açık olsun. Menü ve düğme adları sürüme ve dil ayarına göre küçük farklılıklar gösterebilir. Ayrıca Türkçe Excel'de formül argümanları genellikle noktalı virgülle (;) ayrılır. Sizde virgül (,) çıkıyorsa bölgesel ayarlarınız farklıdır. Bu durumda örneklerdeki noktalı virgülleri virgülle değiştirin.
Kavram
DÜŞEYARA'yı bir rehber kitabı gibi düşünün. Bir ismi arar, yanındaki numarayı bulursunuz. Kitapta isim yoksa ‘bulunamadı’ dersiniz. Excel de aynısını yapar, ama #YOK diye bağırarak. Bu hata çoğu zaman ‘kayıt yok’ demek değildir. Sıklıkla ‘aradığın şey kitapta var, ama sen onu başka biçimde yazmışsın’ demektir.
Üç klasik neden vardır:
- Fazla boşluk: ‘Ahmet’ ile ‘Ahmet ’ (sonunda görünmeyen bir boşluk) sizin gözünüze aynı görünür. Excel için ise iki ayrı kelimedir. Rehberde ‘Ahmet’ arayıp kitapta ‘Ahmet ’ yazıyorsa bulamazsınız.
- Sayı-metin uyumsuzluğu: Hücrede 1001 sayısı ile ‘1001’ metni yan yana aynı görünür. Ancak sayı sağa, metin genellikle sola yaslanır. Excel bu ikisini eşleştirmez. Dışarıdan aktarılan veriler (ERP çıktıları, CSV dosyaları) bu sorunun en sık kaynağıdır.
- Mutlak başvuru eksikliği: Formülü aşağı çektiğinizde arama tablosu da kayar. İlk satırda çalışan formül, üçüncü satırda tablonun dışına çıkar ve #YOK verir. Çözüm, tablo başvurusunu $ işaretiyle sabitlemektir (F4 tuşu).
EĞERHATA ise bir güvenlik görevlisi gibidir. Formül hata üretirse hatayı ekrana yansıtmaz. Yerine sizin belirlediğiniz mesajı veya değeri gösterir. Yalnız dikkat: EĞERHATA her hatayı susturur. Nedenini anlamadan kullanırsanız gerçek bir hatayı gizleyebilirsiniz. Bu yüzden önce hatayı bulup düzeltmeyi, sonra EĞERHATA eklemeyi öğreneceğiz.
Adım adım uygulama
Örnek senaryo: A sütununda sipariş listesi (A2 hücresinden başlayarak ürün kodları) var. E2:F20 aralığında da ürün kodu ve fiyat tablosu duruyor. B2 hücresine fiyatı getirmek istiyoruz.
- Adım 1 – Hatayı üretin: B2 hücresine tıklayın ve şunu yazıp Enter'a basın: =DÜŞEYARA(A2;E2:F20;2;0). Son argüman olan 0, tam eşleşme demektir. İlk satır çalışsa bile devam edin.
- Adım 2 – Aşağı çekin: B2 hücresini seçin. Hücrenin sağ alt köşesindeki küçük kareye (dolgu tutamacı) fare ile çift tıklayın. Alttaki satırların bir kısmında #YOK görebilirsiniz. Nedeni mutlak başvuru eksikliğidir.
- Adım 3 – Tabloyu sabitleyin: B2 hücresine çift tıklayın. Formülde E2:F20 kısmına fare ile tıklayıp imleci oraya getirin ve klavyeden F4 tuşuna bir kez basın. Kısım $E$2:$F$20 olur. Formül şu hâle gelir: =DÜŞEYARA(A2;$E$2:$F$20;2;0). Enter'a basın ve formülü yeniden aşağı çekin. Dizüstü bilgisayarlarda F4 için bazen Fn tuşuyla birlikte basmanız gerekir.
- Adım 4 – Boşluk kontrolü yapın: Hâlâ #YOK veren bir satır varsa o satırın A hücresine tıklayın. Üstteki formül çubuğunda metnin sonuna imleçle bakın. Sonda fazladan boşluk olup olmadığını imleç konumundan anlayabilirsiniz. Daha güvenli yol, uzunluk kontrolüdür. Boş bir hücreye =UZUNLUK(A2) yazın. Sonuç gördüğünüz karakter sayısından büyükse gizli boşluk vardır.
- Adım 5 – Boşluğu temizleyin: Formülü şöyle güncelleyin: =DÜŞEYARA(KIRP(A2);$E$2:$F$20;2;0). KIRP işlevi baştaki ve sondaki fazla boşlukları, kelime arasındaki çift boşlukları da tek boşluğa indirir. Kaynağı kalıcı düzeltmek isterseniz başka bir sütunda =KIRP(A2) yazıp sonucu değer olarak yapıştırabilirsiniz.
- Adım 6 – Sayı-metin uyumsuzluğunu tanıyın: Bir ürün kodu hücresini seçin. Hücrenin yanında küçük yeşil bir üçgen veya sarı ünlem simgesi görürseniz, Excel ‘sayı metin olarak saklanmış’ uyarısı veriyor demektir. Ünlem simgesine tıklayın ve açılan menüden Sayıya Dönüştür seçeneğini seçin. Çok sayıda hücre varsa önce hepsini seçin, sonra aynı simgeye tıklayın.
- Adım 7 – Formülle uyumu sağlayın: Arama değeri metinse ama tablodaki kodlar sayıysa, formülde aranan değeri sayıya çevirebilirsiniz: =DÜŞEYARA(DEĞER(A2);$E$2:$F$20;2;0). Bunun tersinde, yani tablo metin, aranan sayı ise: =DÜŞEYARA(METNEÇEVİR(A2;"0");$E$2:$F$20;2;0). Hangi tarafın metin olduğunu bulmak için boş hücreye =ESAYIYSA(A2) yazın. DOĞRU dönerse hücre sayıdır.
- Adım 8 – EĞERHATA'yı ekleyin: Tüm nedenleri düzelttikten sonra formülü sarın: =EĞERHATA(DÜŞEYARA(KIRP(A2);$E$2:$F$20;2;0);"Kayıt yok"). İlk argüman denenecek formüldür. İkinci argüman, hata çıkarsa gösterilecek değerdir. Metin yazacaksanız çift tırnak içinde olmalıdır.
- Adım 9 – Toplamlarla uyumu düşünün: Hata yerine ‘Kayıt yok’ metni yazarsanız bu sütunu toplarken metin yok sayılır ve toplam sessizce eksik çıkabilir. Sonucun sayısal kalması gerekiyorsa ikinci argüman olarak 0 yazabilirsiniz. Ama bu da eksik kaydı gizler. Kararı raporun amacına göre verin.
- Adım 10 – Yalnızca #YOK'u yakalayın (isteğe bağlı): Formülünüzde başka bir hata türü (örneğin #BAŞV! veya #DEĞER!) gerçek bir yazım sorununu gösteriyorsa onu saklamak istemezsiniz. Bu durumda EĞERYOKSA işlevini kullanın: =EĞERYOKSA(DÜŞEYARA(KIRP(A2);$E$2:$F$20;2;0);"Kayıt yok"). Bu işlev sadece #YOK hatasını yakalar, diğerlerini görünür bırakır. Orta düzey kullanıcılar için daha güvenli bir alışkanlıktır.
Sık karşılaşılan sorunlar
| Belirti / Hata | Olası neden | Çözüm |
|---|---|---|
| İlk satır doğru, alt satırlar #YOK | Arama tablosu aşağı çekilince kaymış | Tablo aralığını seçip F4 ile $E$2:$F$20 biçiminde sabitleyin |
| Değer tabloda görünüyor ama #YOK | Baştaki veya sondaki gizli boşluk | KIRP işlevini aranan değere uygulayın |
| Kodlar aynı görünüyor ama eşleşmiyor | Biri sayı, diğeri metin | Sayıya Dönüştür komutu veya DEĞER / METNEÇEVİR işlevi |
| #BAŞV! | Sütun numarası tablodaki sütun sayısından büyük | İkinci sütun numarasını kontrol edin. Tablo iki sütunluysa en fazla 2 yazılabilir |
| Yanlış ama hatasız sonuç geliyor | Son argüman boş bırakılmış veya DOĞRU yazılmış (yaklaşık eşleşme) | Son argümana 0 veya YANLIŞ yazın |
| EĞERHATA her satırda ‘Kayıt yok’ diyor | Asıl hata gizleniyor, formülün kendisi yanlış | EĞERHATA'yı geçici olarak kaldırıp gerçek hata mesajını okuyun |
| Formül yazılınca hata: bu formülde sorun var | Ayraç uyumsuzluğu (; yerine , gerekiyor olabilir) veya tırnak eksik | Kendi Excel'inizin ayraç biçimini deneyin. Metin argümanlarını çift tırnakla yazın |
Mini görev
Kendi başınıza küçük bir çalışma dosyası hazırlayın:
- Yeni bir çalışma kitabı açın. E1:F1 hücrelerine ‘Kod’ ve ‘Fiyat’ başlıklarını yazın. E2:F8 aralığına yedi ürün kodu ve fiyatı girin. Kodların bir kısmı sayı, bir kısmı harf içeren metin olsun.
- A2:A12 aralığına on bir sipariş kodu yazın. Bunlardan iki tanesinin sonuna bilerek bir boşluk koyun. Birini tabloda hiç olmayan bir kodla değiştirin.
- B sütununda önce düz DÜŞEYARA yazın ve #YOK sonuçlarını gözlemleyin.
- Formülü KIRP, mutlak başvuru ve EĞERHATA ile düzeltin.
Kontrol listesi:
- Tablo aralığı $ işaretleriyle sabitlendi mi?
- Sondaki boşluklu kodlar artık eşleşiyor mu?
- Tabloda olmayan kod ‘Kayıt yok’ mesajı veriyor mu?
- Formülün son argümanı 0 mı?
- Ekstra: EĞERYOKSA ile aynı sonucu aldınız mı?
Kendini sına
Soru 1: DÜŞEYARA'da #YOK hatasının üç sık nedenini sayın.
Soru 2: Formülü aşağı çekince arama tablosunun kaymasını hangi tuş ve hangi biçim engeller?
Soru 3: Hücredeki fazla boşlukları temizlemek için hangi işlevi kullanırız?
Soru 4: EĞERHATA'nın iki argümanı nedir?
Soru 5: EĞERHATA yerine EĞERYOKSA'yı tercih etmenin avantajı nedir?
Cevaplar
- Cevap 1: Fazla boşluk, sayı-metin uyumsuzluğu ve mutlak başvuru eksikliği.
- Cevap 2: F4 tuşu. Aralık $E$2:$F$20 gibi mutlak başvuruya dönüşür.
- Cevap 3: KIRP işlevi.
- Cevap 4: Birincisi denenecek formül veya değer, ikincisi hata çıkarsa gösterilecek sonuçtur.
- Cevap 5: EĞERYOKSA yalnızca #YOK hatasını yakalar. Formül yazım hataları gibi başka sorunlar görünür kalır ve fark edilir.
Bu dersin ardından bir sonraki derste XLOOKUP'a geçeceğiz. Orada arama işlemini daha esnek yapacak ve bulunamadı durumunu işlevin kendi argümanıyla yöneteceksiniz. Bugün öğrendiğiniz hata nedenlerini ezberlemeniz gerekmez. Formülünüz bir gün beklenmedik sonuç verdiğinde bu üç noktayı sırayla kontrol etmeniz yeterli.
Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol