İçindekiler
Bu eğitimde Excel ISERROR fonksiyonunun pratik kullanımları ele alınmakta ve farklı formüllerin hatalara karşı nasıl test edileceği gösterilmektedir.
Excel'in anlamadığı veya hesaplayamadığı bir formül yazdığınızda, bir hata iletisi göstererek soruna dikkatinizi çeker. ISERROR işlevi hataları yakalamanıza yardımcı olabilir ve bir hata bulunduğunda bir alternatif sağlayabilir.
Excel'de ISERROR işlevi
Excel ISERROR işlevi #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! ve #SPILL! dahil olmak üzere her türlü hatayı yakalar. Sonuç bir Boole değeridir: bir hata tespit edilirse TRUE, aksi takdirde FALSE.
İşlev, Excel 2000'den 2021'e kadar tüm Excel sürümlerinde ve Excel 365'te kullanılabilir.
ISERROR fonksiyonunun söz dizimi bu kadar basittir:
ISERROR(değer)Nerede değer hatalar için kontrol edilecek hücre değeri veya formüldür.
Excel ISERROR formülü
En basit haliyle bir ISERROR formülü oluşturmak için, hataları test etmek istediğiniz hücreye bir başvuru sağlayın. Örneğin:
=ISERROR(A2)
Herhangi bir hata bulunması durumunda TRUE, test edilen hücrede hata yoksa FALSE değerini alırsınız:
Excel'de IF ISERROR formülü
Bir hata oluştuğunda özel bir mesaj döndürmek veya farklı bir hesaplama yapmak için ISERROR öğesini IF işleviyle birlikte kullanın. Genel formül aşağıdaki gibi görünür:
IF(ISERROR( formül (...), text_or_calculation_if_error , formül ())İnsan diline çevrildiğinde şu anlama gelir: ana formül bir hatayla sonuçlanırsa, belirtilen metni görüntüleyin veya başka bir hesaplama çalıştırın, aksi takdirde formülün normal sonucunu döndürün.
Aşağıdaki resimde, toplamı miktara bölmek, aşağıdaki tabloda birkaç hata oluşturur Fiyat sütun:
Tüm farklı hata kodlarını özel bir metinle değiştirmek için aşağıdaki IF ISERROR formülünü kullanabilirsiniz:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
Excel 2007 ve sonraki sürümlerde, dahili IFERROR işlevi yardımıyla aynı sonuç elde edilebilir:
=IFERROR(A2/B2, "Bilinmiyor")
IFERROR formülünün biraz daha hızlı çalıştığına dikkat edilmelidir çünkü A2/B2 hesaplamasını yalnızca bir kez gerçekleştirir. IF ISERROR ise bunu iki kez hesaplar - önce bir hata oluşturup oluşturmadığını görmek için ve ardından test FALSE ise tekrar hesaplar.
IF ISERROR DÜŞEYARA formülü
DÜŞEYARA ile ISERROR kullanmak aslında yukarıda tartışılan EĞER ISERROR formülünün özel bir durumudur. DÜŞEYARA işlevi arama değerini bulamadığında veya başka bir nedenle başarısız olduğunda, bu sözdizimini kullanarak özel bir metin mesajı görüntülersiniz:
IF(ISERROR(VLOOKUP(...)), " custom_text ", VLOOKUP(...))Bu örnek için, zamanları arama tablosundan (D3:E10) ana tabloya (A3:B15) çekelim. Arama değeri (katılımcının adı) arama tablosunda mevcut değilse, "Nitelikli değil" döndürürüz.
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Nitelikli değil", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
İpucu: Özel bir metni yalnızca aşağıdaki durumlarda görüntülemek istiyorsanız arama değeri bulunamadı (#N/A hatası) diğer hataları yok sayarak, Excel 2013 ve sonraki sürümlerde EĞER DÜŞEYARA formülünü veya eski sürümlerde EĞER ISNA DÜŞEYARA formülünü kullanın.
IF ISERROR INDEX MATCH formülü
INDEX MATCH kombinasyonu (veya Excel 365'te INDEX XMATCH formülü) yardımıyla bir arama gerçekleştirirken, aynı tekniği kullanarak olası hataları yakalayabilir ve işleyebilirsiniz - ISERROR işlevi hataları denetler ve herhangi bir hata oluştuğunda IF belirtilen metni görüntüler.
Arama tablosunun ilk sütununda zamanlar olduğunu varsayalım. DÜŞEYARA soluna bakamadığından, D sütunundan zamanları çekmek için INDEX MATCH formülünü kullanırız:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Ardından, yakalanan hataları istediğiniz herhangi bir metinle değiştirmek için yukarıda belirtilen genel formülün içine yerleştirirsiniz:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Not: EĞER ISERROR DÜŞEYARA formülünde olduğu gibi, yalnızca #N/A hatalarını yakalamak ve formülün kendisiyle ilgili olası sorunları gizlememek daha mantıklıdır. Bunun için, INDEX MATH formülünüzü Excel 2013 ve sonraki sürümlerde IFNA'ya veya önceki sürümlerde IF ISNA'ya sarın.
IF ISERROR Evet/Hayır formülü
Önceki tüm örneklerde, IF ISERROR bir hata değilse ana formülün sonucunu döndürür. Ancak, farklı bir şekilde de çalışabilir - hata varsa bir şey ve hata yoksa başka bir şey döndürür.
IF(ISERROR( formül (...)), " text_if_error ", " text_if_no_error ")Örnek veri setimizde, tam zamanlarla ilgilenmediğinizi, sadece A grubundan hangi katılımcıların nitelikli olduğunu ve hangilerinin olmadığını bilmek istediğinizi varsayalım. Bunu yapmak için, A sütunundaki adı D sütunundaki nitelikli katılımcıların listesiyle karşılaştırmak için MATCH işlevini kullanın ve ardından sonuçları ISERROR'a sunun. Ad D sütununda mevcut değilse (MATCH bir hata döndürür), şunu alınEğer isim D sütununda görünüyorsa (hata yoksa), "Evet" veya "Nitelikli" değerini döndürür.
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Hayır", "Evet" )
Hata sayısı nasıl sayılır
Belirli bir sütundaki hata sayısını almak için tek bir hücreyi değil, bir aralığı kontrol etmeniz gerekir. Bunun için hedef aralığı ISERROR'a "besleyin" ve çift tekli operatörü (--) kullanarak döndürülen Boolean değerlerini 1'lere ve 0'lara zorlayın. SUM veya SUMPRODUCT işlevi sayıları toplayabilir ve nihai sonucu verebilir.
Örneğin:
=SUM(--ISERROR(C2:C10))
Lütfen bunun yalnızca dinamik dizileri destekleyen Excel 365 ve Excel 2021'de normal bir formül olarak çalıştığını unutmayın. Excel 2019 ve önceki sürümlerde, bir dizi formülü oluşturmak için Ctrl + Shift + Enter tuşlarına basmanız gerekir (küme parantezlerini manuel olarak yazmayın, bu işe yaramaz!)
{=SUM(--ISERROR(C2:C10))}
Alternatif olarak, dizileri yerel olarak işleyen SUMPRODUCT işlevini kullanabilirsiniz, böylece formül tüm sürümlerde normal Enter tuşuyla tamamlanabilir:
=SUMPRODUCT(--ISERROR(C2:C10))
Excel'de ISERROR ve IFERROR arasındaki fark
Hem ISERROR hem de IFERROR işlevleri Excel'de hataları yakalamak ve işlemek için kullanılır. Aralarındaki fark aşağıdaki gibidir:
- Saf haliyle, ISERROR sadece değerin bir hata olup olmadığını test eder. Tüm Excel sürümlerinde mevcuttur.
- IFERROR işlevi, hataları bastırmak veya gizlemek için tasarlanmıştır - bir hata bulunduğunda, belirttiğiniz başka bir değeri döndürür. 2007 ve üstü Excel'de kullanılabilir.
İlk bakışta IFERROR, IF ISERROR formülünün kısaltılmış bir alternatifi gibi görünse de daha yakından bakıldığında aradaki farkı fark edebilirsiniz:
- IFERROR yalnızca aşağıdakileri belirtmenize olanak tanır value_if_error Hata yoksa, her zaman test edilen değerin/formülün sonucunu döndürür.
- IF ISERROR daha fazla esneklik sağlar ve her iki durumu da ele almanıza olanak tanır - bir hata durumunda ne olması gerektiği ve hata olmadığında ne olacağı.
Konuyu daha iyi açıklamak için şu formülleri göz önünde bulundurun:
=IFERROR(A1, "Hesaplama hatası")
=IF(ISERROR(A1), "Hesaplama hatası", A1)
Bu iki formül eşdeğerdir - her ikisi de A1'deki formüle dayalı bir değeri kontrol eder ve bir hataysa "Hesaplama hatası" döndürür, aksi takdirde değeri döndürür.
Peki ya A1'deki değer bir hata değilse bir hesaplama yapmak istiyorsanız? IFERROR fonksiyonu bunu yapamaz. IF ISERROR durumunda, sadece son argümana istenen hesaplamayı yazın. Örneğin:
=IF(ISERROR(A1), "Hesaplama hatası", A1*2)
Gördüğünüz gibi, genellikle modası geçmiş olarak kabul edilen IFERROR formülünün bu uzun varyasyonu hala yararlı olabilir :)
Mevcut indirmeler
ISERROR formül örnekleri (.xlsx dosyası)