EĞER, VE, YADA Birleşimleri ile Karmaşık Mantık Kurma
Mantık Excel'in Beynidir
Excel'de hesap yapmak kolaydır; karar verdirmek ustalık ister. Bir hücrenin değerini "evet/hayır", "kabul/red", "yüksek/orta/düşük" gibi sonuçlara dönüştüren her formül arkasında EĞER, VE, YADA üçlüsünün dans ettiğini görürüz. Bu yazıda üç fonksiyonun nasıl birleşeceğini, ne zaman ÇOKEĞER'e geçileceğini ve okunaklı formül yazma alışkanlıklarını ele alıyoruz.
Pek çok kullanıcı sekiz katlı iç içe EĞER yazıp formülün sonunda kaybolur. İyi haber: çoğu zaman VE ve YADA ile bu derinlik yarıya iner, formül anlaşılır kalır.
Temeller — EĞER, VE, YADA
EĞER bir koşulu test eder, doğruysa bir değeri, yanlışsa başka bir değeri döner.
=EĞER(A2>100; "Yüksek"; "Düşük")
VE tüm verilen koşullar doğruysa DOĞRU, biri bile yanlışsa YANLIŞ verir. YADA ise koşullardan en az biri doğruysa DOĞRU sonucunu döner. Üçü birlikte kullanıldığında karmaşık iş kurallarını birkaç satıra indirebilirsiniz.
Senaryo 1: Tek Katmanlı Birleşim
Diyelim ki yaşı 18 ile 65 arasında olan ve geliri 30.000 TL üzerinde olan başvuruları "Uygun" olarak işaretlemek istiyorsunuz.
=EĞER(VE(B2>=18; B2<=65; C2>30000); "Uygun"; "Uygun değil")
VE üç koşulu birden değerlendirir, EĞER sonucu metne çevirir. Üç ayrı EĞER iç içe yazmanıza gerek yok.
Senaryo 2: YADA ile Esnek Şart
Bir destek talebi acil sayılır eğer öncelik "Yüksek" ise veya müşteri VIP ise.
=EĞER(YADA(D2="Yüksek"; E2="VIP"); "Acil"; "Normal")
Burada iki koşuldan herhangi biri doğru olduğunda satır acile yükseltilir. YADA okuma akışını çok temizler.
Senaryo 3: VE ile YADA Karışımı
Daha gerçekçi bir kural şöyle olabilir: bir ürün indirime girer eğer (stok 100'ün üzerinde ve sezon sonuysa) veya (raf ömrü 30 günden azsa).
=EĞER(YADA(VE(F2>100; G2="SezonSonu"); H2<30); "İndirim"; "Normal")
İç içe geçmiş VE/YADA ifadeleri parantez yönetimi gerektirir. Excel formül çubuğunda F9 tuşu ile bir bölümü seçip değerlendirebilirsiniz; bu sayede hatanın hangi parçada olduğunu hızlıca bulursunuz.
Senaryo 4: Üç Seçenekli Karar — ÇOKEĞER
İç içe EĞER yerine üç ve daha fazla seçenek için ÇOKEĞER (IFS) ya da İLKEŞLEŞEN (SWITCH) çok daha okunabilirdir.
=ÇOKEĞER(A2>=90; "A"; A2>=75; "B"; A2>=60; "C"; DOĞRU; "F")
Son DOĞRU bir varsayılan görevi görür: yukarıdaki koşulların hiçbiri tutmazsa F döner.
Karşılaştırma Tablosu — Yapı Seçimi
| İhtiyaç | Önerilen Yapı | Neden |
|---|---|---|
| İki sonuçlu basit karar | EĞER | Temel, hızlı |
| Birden fazla koşul birlikte | EĞER + VE | Hepsi sağlanmalı |
| Birden fazla koşuldan biri | EĞER + YADA | Esneklik |
| Üç ve fazla seçenek | ÇOKEĞER | Okunabilirlik |
| Sabit eşleşme | İLKEŞLEŞEN | "Eğer X ise Y" sözlük gibi |
| Hata güvenliği | EĞERHATA | #YOK, #DEĞER yakalama |
Sık Yapılan Yanlışlar
- Çift karşılaştırma yazmak.
18<=B2<=65Excel'de çalışmaz;VE(B2>=18; B2<=65)yazılmalıdır. - Metin karşılaştırmada tırnak unutmak.
D2=Yüksekhata verir,D2="Yüksek"doğrudur. - Büyük/küçük harf duyarlılığı. EĞER varsayılan olarak duyarsızdır. Duyarlı arama için
ÖZDEŞkullanın:=EĞER(ÖZDEŞ(A2; "VIP"); "Evet"; "Hayır"). - Boş hücre yorumu. Boş hücre Excel'de bazen sıfır gibi davranır.
EĞER(BOŞSA(A2); ""; A2*1,18)ile koruma altına alın.
Performans İpucu
Bir sütunda yüz binlerce satır varsa iç içe EĞER hesap motorunu zorlar. Bu durumda mantığı bir arama tablosuna taşımak çoğu zaman daha hızlıdır. Eşik değerlerini ayrı bir tabloya yazıp DÜŞEYARA ile arayın; hem hız artar hem de kuralı değiştirmek için formül yerine tablo güncellersiniz.
Okunabilir Formül Yazmak
Karmaşık bir EĞER zinciri yazarken Excel'in formül çubuğundaki Alt + Enter kısayolu satır kırma için harikadır. Aşağıdaki gibi yazılan formül, üç ay sonra geri dönüp baktığınızda hâlâ anlaşılır olur:
=EĞER(VE(
B2>=18;
B2<=65;
C2>30000
); "Uygun"; "Uygun değil")
İlgili Fonksiyonlar
EĞER, VE, YADA, ÇOKEĞER, EĞERHATA sayfalarımızda her birinin örnek dosyalarını bulabilirsiniz.
Test Edilebilir Mantık — Doğruluk Tablosu
Karmaşık bir mantık formülü yazdığınızda farklı girdi kombinasyonlarına nasıl tepki verdiğini görmek için bir doğruluk tablosu oluşturun. Aşağıdaki örnekte iki koşullu bir kuralın olası girdileri test ediliyor.
| Yaş | Gelir | EĞER + VE Sonucu | Beklenen |
|---|---|---|---|
| 17 | 40000 | Uygun değil | Uygun değil |
| 30 | 25000 | Uygun değil | Uygun değil |
| 30 | 40000 | Uygun | Uygun |
| 70 | 50000 | Uygun değil | Uygun değil |
| 50 | 30001 | Uygun | Uygun |
Bu basit alışkanlık, formülün her senaryoyu doğru ele aldığından emin olmanızı sağlar. Üretimde olan formülleri en az haftada bir bu şekilde test etmek, sessiz hataların aylarca raporu kirletmesini önler.
Adım Adım Karmaşık Kural Yazımı
Karmaşık bir kuralı doğrudan tek formüle dökmek yerine, kuralı önce sözel olarak yazıp sonra parçalara ayırmak hem daha hızlı çözüm üretir hem hata oranını düşürür. Aşağıdaki süreç sınanmış bir alışkanlıktır.
- Kuralı Türkçe yaz. "Eğer kullanıcı premium üye ve son 30 günde alışveriş yapmışsa, indirim uygulanır." gibi.
- Mantıksal terimleri belirle. "ve", "veya", "ise", "değilse" sözcüklerini formül operatörleriyle eşleştir: "ve"=VE, "veya"=YADA, "ise"=EĞER.
- Her terim için sütun referansı yaz. "premium üye" ->
B2="Premium", "son 30 günde alışveriş" ->BUGÜN()-C2<=30. - Parçaları birleştir.
=EĞER(VE(B2="Premium"; BUGÜN()-C2<=30); "İndirim"; "Standart"). - Test et. Bir-iki örnek satırı el ile kontrol et; formülün ürettiği sonuçla beklediğin sonuç eşleşmeli.
Bu beş adımı kullanarak en karmaşık iş kurallarını bile doğru şekilde yazabilirsiniz. Hata yapma olasılığınız doğrudan formüle dalmaktan çok daha düşük olur. Kuralı önce kelimelerle yazmak, formülü hata ayıklamadan çıkardığınız her dakika için fazlasıyla geri öder.
Yardımcı Sütunlar — Karmaşıklığı Bölme
Tek hücreye yığılan dev formüller okunmaz hâle gelir. Yardımcı sütun stratejisi büyük formülü küçük parçalara böler, her parçanın ayrı bir sütunda hesaplanmasını sağlar. Sonuç, hata ayıklaması çok daha kolay bir yapıdır.
D2: =VE(B2>=18; B2<=65)
E2: =C2>30000
F2: =EĞER(VE(D2; E2); "Uygun"; "Uygun değil")
Üç sütun çalıştığı için herhangi bir sorun olduğunda hangi koşulun düştüğünü tek bakışta görürsünüz. Kullanıcıya sunulan rapora yardımcı sütunları göstermek istemiyorsanız grupla gizleyin; verinin doğruluğunu hâlâ kontrol edebilirsiniz.
İç İçe EĞER ile ÇOKEĞER: Sayısal Karşılaştırma
Aşağıda öğrenci notu için iki farklı yazım gösteriliyor. Her ikisi de aynı sonucu döner; ikincisinin neden tercih edildiği açıkça görülüyor.
| Yöntem | Formül | Karakter Sayısı | Okunabilirlik |
|---|---|---|---|
| İç içe EĞER | =EĞER(A2>=90;"A";EĞER(A2>=75;"B";EĞER(A2>=60;"C";"F"))) | 62 | Orta |
| ÇOKEĞER | =ÇOKEĞER(A2>=90;"A";A2>=75;"B";A2>=60;"C";DOĞRU;"F") | 53 | Yüksek |
| İLKEŞLEŞEN | =İLKEŞLEŞEN(A2;90;"A";75;"B";60;"C";"F") | 43 | Çok yüksek |
Tek seferlik formüllerde fark hissedilmez, ancak yüz farklı dosyaya yayılan bir kural setinde okunabilirlik bakım maliyetinin temel belirleyicisi olur.
Hata Yönetimi: EĞERHATA ve VARYOKSA
Mantık formülleri ne kadar düzgün yazılırsa yazılsın, beklenmeyen veriyle karşılaşınca hata döndürürler. EĞERHATA formülün tamamını sarmalayıp herhangi bir hatada yedek değer döner.
=EĞERHATA(EĞER(VE(B2>0; C2>0); B2/C2; "Sıfır"); "Hatalı veri")
Daha cerrahi yaklaşım EĞERYOKSA kullanmaktır; sadece #YOK hatasını yakalar, diğer hata tiplerinin bilinmesi gerektiğini varsayar. Hata gizleme bir kalkan olabilir, ama hatanın hangi satırda neden çıktığını öğrenmek genellikle daha kıymetlidir.
Gerçek Bir Senaryo: Risk Skoru Hesaplama
Bir bankacılık tablosunda her müşteriye düşük, orta ya da yüksek risk etiketi vermek isteyelim. Kurallar şöyle:
- Gelir 50.000 TL altıysa ve kredi skoru 600 altındaysa: yüksek risk.
- Gelir 50.000-100.000 arasındaysa veya kredi skoru 600-700 arasındaysa: orta risk.
- Diğer durumlar düşük risk.
=ÇOKEĞER(
VE(B2<50000; C2<600); "Yüksek";
YADA(VE(B2>=50000; B2<=100000); VE(C2>=600; C2<=700)); "Orta";
DOĞRU; "Düşük"
)
Tek formül üç katmanlı kuralı modeller. Yeni bir kural eklenmesi gerektiğinde formülün başına bir koşul eklemek yeterlidir; formülün geri kalanı hâlâ çalışır.
Boole Mantığını Sayıya Dönüştürmek
Excel'de DOĞRU sayısal olarak 1, YANLIŞ ise 0 olarak işlenir. Bu özellik bazı durumlarda EĞER yazmadan koşullu hesap yapmanıza olanak tanır.
=TOPLA((A2:A100>100)*(B2:B100))
A sütunu 100'den büyük olan satırlar için B sütunundaki değerleri toplar. Boole sonucu (0 ya da 1) çarpan görevi görür ve EĞER kullanmadan koşullu toplam alınır. Bu teknik TOPLA.ÇARPIM ile birleştiğinde özellikle güçlüdür.
Sonuç
EĞER, VE, YADA üçlüsü Excel'de mantığın temelidir. İç içe yazmaya başlamadan önce VE ya da YADA ile koşulları sıkıştırmanın mümkün olup olmadığını sorun. Üç seçenekten fazla varsa ÇOKEĞER'e geçin. Karmaşık formüllerinizi satır kırarak yazın; geleceğin sizi teşekkür edecektir. En önemli alışkanlık ise her formül için "altı ay sonra ben bunu okuduğumda anlar mıyım" sorusunu sormaktır. Cevap "hayır" ise formülü ya küçük parçalara bölün ya da yardımcı sütunlarla destekleyin. Mantık ne kadar açıksa, hata da o kadar erken yakalanır.