Excel'de INDEX Fonksiyonu Nasıl Çalışır ve Neden Gereklidir?
INDEX fonksiyonu (İngilizce INDEX), belirtilen bir aralıktaki satır ve sütun kesişiminde bulunan hücreden bir değer döndürür. Bu, hücre adreslerine sıkı bağlı olmadan veri çekmeyi sağlayan, esnek raporlar ve dinamik formüller oluşturmak için temel bir araçtır. Çoğunlukla MATCH fonksiyonuyla birlikte kullanılır ve sınırlamalarından arınmış güçlü bir VLOOKUP alternatifi yaratır.
Fonksiyonun Söz Dizimi ve Argümanları
Formül şu şekildedir:
=INDEX(dizi; satır_numarası; [sütun_numarası])
Her bir argümanı detaylıca inceleyelim:
- dizi — verilerin alınması gereken hücre aralığı veya tablo (örneğin,
A2:D100). - satır_numarası — seçilen dizi içindeki satırın sıra numarası (1'den başlayarak). Dizi tek bir satırdan oluşuyorsa, bu argüman atlanabilir.
- sütun_numarası — dizi içindeki sütunun sıra numarası. İsteğe bağlı bir argümandır: dizi tek boyutluysa (yalnızca bir sütun), bunu belirtmeye gerek yoktur.
Fonksiyondaki numaralandırma 0 değil, 1'den başlar. Satır veya sütun numarası için 0 belirtirseniz, fonksiyon ilgili tüm sütunu veya satırı bir dizi olarak döndürür.
Temel Kullanım Örnekleri
İlk çeyreğe ait basit bir satış tablosu düşünelim:
| A | B | C | |
|---|---|---|---|
| 1 | Ay | Plan | Gerçekleşen |
| 2 | Ocak | 10000 | 12000 |
| 3 | Şubat | 15000 | 14500 |
| 4 | Mart | 12000 | 13000 |
Görev 1: Belirli bir değeri elde etme
Şubat ayındaki gerçekleşen satışları öğrenmemiz gerekiyor. Tablomuzda bu, veri aralığına göre ikinci satır ve üçüncü sütundur.
Formül: =INDEX(B2:C4; 2; 2)
- Dizi:
B2:C4(yalnızca sayılar). - Satır:
2(Şubat). - Sütun:
2(seçilen aralık içindeki "Gerçekleşen" sütunu). - Sonuç: 14500.
Görev 2: Tek bir sütunla çalışma
B2:B4 aralığından Mart ayı için satış planını almak istiyorsak:
Formül: =INDEX(B2:B4; 3)
Dizi tek boyutlu olduğu için burada sütun numarası argümanına gerek yoktur.
- Sonuç: 12000.
INDEX + MATCH Birleşimi: VLOOKUP Fonksiyonunun Yerine Alması
INDEX fonksiyonunun asıl gücü, MATCH (MATCH) ile kombinasyonunda ortaya çıkar. Bu birleşim, değerleri sadece soldan sağa değil, her yönde aramanıza olanak tanır ve ayrıca tabloya yeni sütunlar eklendiğinde bozulmaz.
Çalışma mantığı basittir:
- MATCH, ihtiyacımız olan değerin (örneğin, "Mart" kelimesi) bulunduğu satır numarasını bulur.
- INDEX, bu numarayı kullanarak aynı satırdaki başka bir sütundan veri çeker.
Örnek: E1 hücresine girilen ay adı için gerçekleşen satışları ("Gerçekleşen") bulun.
Formül:
=INDEX(C2:C4; MATCH(E1; A2:A4; 0))
Nasıl çalışır:
MATCH(E1; A2:A4; 0), E1'deki değeri "Ay" sütununda arar ve konumunu döndürür (örneğin, Mart için 3).INDEX, bu sayıyı (3) alır veC2:C4aralığının 3. hücresindeki değeri döndürür.
VLOOKUP'un aksine, böyle bir formül, "Plan" ve "Gerçekleşen" sütunlarının yerlerini değiştirseniz veya aralarına yeni bir sütun ekleseniz bile doğru şekilde çalışmaya devam edecektir.
Gelişmiş Teknikler: İki Boyutlu Arama
INDEX fonksiyonu, aynı anda iki kritere göre (hem satıra hem de sütuna göre) arama yapmanıza olanak tanır. Bu, hem üstte hem de solda başlıkların bulunduğu matris tablolar için idealdir.
Diyelim ki satırların hizmet türlerini, sütunların ise bölgeleri temsil ettiği bir tarifeler tablosuna sahibiz. "Doğu" bölgesinde "Premium" hizmeti için fiyatı bulmamız gerekiyor.
Formül iki MATCH çağrısı içerecektir:
=INDEX(fiyat_aralığı; MATCH("Premium"; hizmet_sütunu); MATCH("Doğu"; bölge_satırı))
Bu yapı, gerekli satır ve gerekli sütunun kesişimini otomatik olarak bulur ve tek bir doğru değeri döndürür.
Sık Karşılaşılan Hatalar ve Çözüm Yolları
Kullanıcılar fonksiyonla çalışırken genellikle standart Excel hatalarıyla karşılaşır. İşte başlıca nedenler ve çözümler:
| Hata | Oluşma Nedeni | Nasıl Düzeltilir |
|---|---|---|
| #DEĞER! | Satır veya sütun numarası argümanları sayı değildir. | INDEX içine gömülü fonksiyonların metin değil, sayı döndürdüğünden emin olun. |
| #YOK | Aranan değer MATCH fonksiyonu tarafından bulunamadı. | Verilerde fazla boşluk olmadığından emin olun. Formülü HATAAYIKLA(...; "Bulunamadı") içine alın. |
| #BAŞV! | Belirtilen satır numarası, dizideki satır sayısından büyük. | Aralıkları kontrol edin: satır numarası, dizideki satır sayısına ≤ olmalıdır. |
| Yanlış sonuç | Dizi aralığı, arama aralığıyla eşleşmiyor. | INDEX ve MATCH içindeki satır numaralandırmasının aynı konumdan başladığından emin olun. |
Pratik Öneriler
- Adlandırılmış aralıklar kullanın.
A2:C100yerine aralığaSatisTablosugibi bir ad verin. Formül daha okunabilir hale gelir:=INDEX(SatisTablosu[Gerceklesen]; ...). - Yapılandırılmış başvurular uygulayın. Verileri "Akıllı Tablo"ya (Ctrl+T) dönüştürürseniz, formüller dosya yapısındaki değişikliklere karşı daha dayanıklı hale gelir.
- Office 365 kullanıcıları için. Excel'in yeni sürümlerinde, INDEX fonksiyonu genellikle INDEX ve MATCH yeteneklerini tek bir fonksiyonda birleştiren daha modern XLOOKUP (
XLOOKUP) ile değiştirilir. Ancak, eski dosyalarla çalışmak ve uyumluluk sağlamak için klasik birleşimi bilmek gereklidir.
SSS
INDEX ile VLOOKUP arasındaki temel fark nedir? VLOOKUP yalnızca aralığın ilk sütununda arama yapabilir ve ondan sağdaki verileri döndürür. INDEX, aranan değerin konumundan bağımsız olarak tablonun herhangi bir yerinden bir değer döndürebilir. Ayrıca, VLOOKUP çok büyük veri hacimlerinde daha yavaş çalışır.
Tüm bir satırı döndürmek için INDEX kullanılabilir mi? Evet. "sütun_numarası" argümanında 0 belirtirseniz (veya bazı dizi bağlamlarında boş bırakırsanız), fonksiyon tüm satırı bir dizi olarak döndürür. Bu, dizilerle çalışan diğer fonksiyonlara veri aktarmak için kullanışlıdır.
Veriler mevcut olsa da formül neden hata veriyor? Sorun çoğunlukla veri türlerindedir: Excel için 123 sayısı ve "123" metni farklı değerlerdir. Hücre biçimini kontrol edin veya aramadan önce verileri temizlemek için KIRPIM fonksiyonunu kullanın.