Excel INDIRECT(): Formüllerinizde Dinamik Başvurular Nasıl Oluşturulur
Excel’in INDIRECT() işlevinin metni canlı başvurulara nasıl dönüştürdüğünü keşfedin. Dinamik çalışma sayfaları, sabit hücre başvuruları, adlandırılmış aralıklar ve daha fazlası için nasıl kullanıldığını öğrenin.
INDIRECT() işlevi, Excel’in en güçlü ama çoğu zaman yanlış anlaşılan araçlarından biridir. Hesaplamayı doğrudan yapan işlevlerden farklı olarak INDIRECT(), metin dizelerini canlı hücre başvurularına dönüştürür. Bu sayede kullanıcılar, değişken girdilere uyum sağlayan dinamik ve esnek formüller oluşturabilir. İster bir özet gösterge paneli kuruyor olun, ister kullanıcı seçimine göre farklı sayfalara başvuruyor olun ya da hücre başvurularını dinamik olarak değiştiriyor olun, INDIRECT() oyunun kurallarını değiştirebilir.
Bu rehberde, INDIRECT() işlevini hücre başvurusu için nasıl kullanacağınızı gösterecek ve işlevden ne zaman kaçınmanız gerektiği de dahil olmak üzere yaygın sorunların nasıl giderileceğini ele alacağım. Bazı temel kavramlara aşina değilseniz, sağlam bir temel oluşturmak için Introduction to Excel kursumuzu almanızı öneririm.
INDIRECT() İşlevi Ne Yapar
Excel’de INDIRECT() işlevi, metin dizesi olarak sağlanan bir başvuruya göre bir hücrenin veya aralığın değerini getirir. Bir formüle "A1" gibi bir hücre adresini sabitlemek yerine, INDIRECT() bu adresi metinle dinamik olarak tanımlamanıza olanak tanır ve Excel bunu canlı bir başvuru olarak yorumlar.
INDIRECT() işlevinin söz dizimi aşağıda gösterilmiştir:
INDIRECT(ref_text, [a1])
Burada:
ref_text (zorunlu): Geçerli bir hücre veya aralık başvurusunu temsil eden bir metin dizesi. "A1" gibi bir hücreye, adlandırılmış bir aralığa veya "Sheet2!B5" gibi başka bir sayfadaki bir başvuruya işaret edebilir.
[a1]: Bu, ref_text içindeki başvuru türünü belirleyen isteğe bağlı bir bağımsız değişkendir. a1 TRUE ise veya atlanırsa ref_text A1 biçeminde yorumlanır. a1 FALSE ise ref_text R1C1 biçeminde değerlendirilir.
INDIRECT() İşlevi Nasıl Kullanılır
Aşağıdaki örnek, INDIRECT() işlevinin metni nasıl dinamik biçimde hücre başvurusuna dönüştürdüğünü gösterir.
Diyelim ki C2 hücresinde "A2" metni var ve A2 hücresinde 100 değeri bulunuyor. Aşağıdaki işlev de 100 döndürür; çünkü Excel, C2’nin içeriğini okur ve INDIRECT() bunu bir başvuru olarak ele alır.
=INDIRECT(C2)
Excel’de başka bir hücreye göre başvuru yapmak için INDIRECT() kullanma. Görsel: Yazar.
A5 hücresinde 5 sayısı varsa, aşağıdaki formülle dinamik bir başvuru oluşturabilirsiniz:
=INDIRECT("B"&A5)
Bu formül, A5’teki değerle "B" harfini (6) birleştirerek "B6" oluşturur. Ardından INDIRECT(), B6 hücresindeki değeri döndürür; bu da "Product A"’dır.
Excel’de dinamik başvuru için & ile INDIRECT() kullanma. Görsel: Yazar.
Excel’de INDIRECT() İşlevinin Dinamik Kullanımları
INDIRECT() işlevinin gerçek gücü, dinamik başvurular oluşturabilmesidir. Bu da onu gelişmiş modelleme, gösterge panelleri ve kullanıcı odaklı raporlar için ideal kılar. Aşağıda esnekliğini gösteren üç temel kullanım durumu yer alır.
Diğer çalışma sayfalarına başvurun
INDIRECT() ile bir hücrenin girdisine göre farklı sayfalardan dinamik olarak veri çekebilirsiniz. Örneğin, A1 hücresinde "Sales" gibi bir sayfa adı olduğunu varsayalım. O sayfadaki B2 hücresindeki değeri almak istiyorsunuz.
Aşağıdaki formül, 'Sales'!B2 gibi bir başvuru oluşturur ve o hücrenin değerini döndürür.
=INDIRECT("'" & A1 & "'!B2")
Excel’de başka çalışma sayfalarına dolaylı başvurmak için INDIRECT() kullanma. Görsel: Yazar.
Sayfa adları boşluk veya özel karakter içerebileceği için her zaman tek tırnak ' içine alın; örneğin 'Sales 2023'!A1.
Adlandırılmış aralıklara başvurun
INDIRECT() işlevini adlandırılmış aralıklara dinamik olarak başvurmak için de kullanabilirsiniz; bu, açılır listeler veya kullanıcı girişiyle birlikte oldukça güçlüdür.
Diyelim ki Sales_2023 ve Sales_2023 adlı aralıklarınız var ve “A1” hücresinde "Sales_2023" bulunuyor.
Excel’de hücre aralıklarını adlandırma. Görsel: Yazar.
Aşağıdaki formül, doğrudan başvuru yapmasa bile Sales_2023 adlı aralıktaki değerleri toplar. Bu yöntem, kullanıcı odaklı paneller veya çok senaryolu modeller için idealdir.
=SUM(INDIRECT(A1))
Excel’de adlandırılmış aralıklara başvurmak için INDIRECT() kullanma. Görsel: Yazar.
Değişmeyen sabit başvurular
Normalde satır veya sütun ekleyip sildiğinizde, formüllerdeki hücre başvuruları otomatik olarak ayarlanır. Ancak INDIRECT() kaymayan mutlak başvurular oluşturur.
Örneğin, “A1” hücresinde 100 varsa, =A1 ve =INDIRECT("A1") formülleri de 100 döndürür. Ancak, değeri kaydırırsanız
Excel’de doğrudan hücre başvurusu. Görsel: Yazar.
Excel’de hücre başvurusu için INDIRECT() kullanma. Görsel: Yazar.
Bununla birlikte, 1. satırın üzerine yeni bir satır eklerseniz, D3 (önceden B2 idi) artık satırla birlikte değer kaydığı için =A3 gösterir. INDIRECT() işlevi bulunan E3 hücresi ise hâlâ orijinal A2’yi gösterir; bu hücre artık boş olabilir veya farklı bir değer (UID) içerebilir.
Excel’de sabit başvurular için INDIRECT() kullanma. Görsel: Yazar.
Gelişmiş Örnekler ve Kullanım Senaryoları
Temelleri kavradığınızda, INDIRECT() işlevi özellikle VLOOKUP(), ROW() ve dinamik diziler gibi işlevlerle eşleştirildiğinde daha gelişmiş Excel senaryolarında parıldar. Bu kombinasyonlar çok daha dinamik ve esnek modellerin kilidini açar.
INDIRECT() ve VLOOKUP() birlikte kullanımı
INDIRECT() ile VLOOKUP()’u birleştirerek, kullanıcı girdisine göre arama tablosunu dinamik olarak değiştirebilirsiniz.
İki tablonuz olduğunu varsayalım: Prices_2022 ve Prices_2023. Ayrı hücrelerde, G1: Prices_2022 ve G2: Apple`. Aşağıdaki formül, A1’deki değere göre seçilen yılın tablosunda "Apple" ifadesini dinamik olarak arar ve fiyatını döndürür.
=VLOOKUP(G2, INDIRECT(G1), 2, FALSE)
Excel’de INDIRECT() ile VLOOKUP() kullanımı. Görsel: Yazar.
INDIRECT() R1C1 gösterimini de kullanabilir; bu, özellikle makrolarda formülleri dinamik olarak oluştururken veya konumlara programatik olarak başvururken faydalıdır.
Örneğin aşağıdaki formül, 2. satır 3. sütundaki (C2 hücresi) değeri döndürür. İkinci bağımsız değişken (FALSE), Excel’e A1 değil R1C1 biçemini kullandığınızı belirtir.
=INDIRECT("R2C3", FALSE)
Excel’de R1C1 ile INDIRECT() kullanımı. Görsel: Yazar.
Aşağıdaki formül, ROW() ve COLUMN() işlevlerinin dinamik kullanımını içerir. Formülün yazıldığı satırda, her zaman 3. sütundaki değeri döndürür.
=INDIRECT("R" & ROW() & "C3", FALSE)
Excel’de ROW() ve COLUMN() ile INDIRECT() kullanımı. Görsel: Yazar.
INDIRECT() ve dinamik diziler
Excel, dinamik dizileri sunmadan önce, INDIRECT() dizi benzeri davranış oluşturmak için yaygın bir yöntemdi.
Örneğin, aşağıdaki formül bir dizi döndürür: {1; 2; 3; 4; 5}. Bu, satırlara dolaylı başvurarak 1’den 5’e bir diziyi simüle eder.
=ROW(INDIRECT("1:5"))
Excel’de dinamik diziler için ROW() ile INDIRECT() kullanımı. Görsel: Yazar.
Modern alternatif yöntem ise SEQUENCE() işlevini kullanmaktır.
=SEQUENCE(5)
Excel’de dinamik diziler için SEQUENCE() kullanımı. Görsel: Yazar.
Dinamik diziler için INDIRECT() kullanımı hâlâ işe yarar, ancak modern Excel’de (Office 365 ve Excel 2021+) sunulan SEQUENCE(), FILTER() ve diğer dinamik dizi işlevlerine göre daha az verimli ve daha az okunabilirdir.
Uyarılar ve Performansla İlgili Hususlar
INDIRECT() işlevinin özellikle büyük veya karmaşık Excel çalışma kitaplarında bazı önemli sınırlamaları vardır. Bu sorunlar şunları içerir:
Değişken işlev (yeniden hesaplama yükü): INDIRECT() değişken bir işlevidir; yani çalışma kitabının herhangi bir yerinde bir değişiklik olduğunda, değişiklik formülle ilgili olmasa bile yeniden hesaplar. Bu da performansı yavaşlatabilir.
Hata ayıklamak zor olabilir: INDIRECT() başvuruları metinden oluşturduğundan, Excel bunları standart hücre başvuruları kadar kolay izleyemez. Bu da öncülleri/bağımlıları izleme ya da bir şeyler değiştiğinde bozuk başvuruları yakalama gibi denetim işlemlerini güçleştirir.
Modern alternatifleri düşünün: Mümkün olduğunda, daha iyi performans ve açıklık sunan değişken olmayan işlevleri kullanmak genellikle daha iyidir. Bu yöntemler arasında dinamik hücre aramaları için INDEX(), önceden tanımlı aralık veya seçenekler arasından dinamik seçim için CHOOSE() ve dinamik sayısal diziler üretmek için SEQUENCE() yer alır.
INDIRECT() ne zaman kullanılmamalı
INDIRECT() büyük bir esneklik sunsa da her zaman en iyi seçim değildir. Çoğu zaman gereksiz karmaşıklık, performans sorunları veya sürdürülebilirlik problemleri yaratır. Aşağıda kaçınmanız gereken bazı durumlar ve en iyi alternatif yöntemler yer alıyor.
Aynı sayfa içinde dinamik hücre başvuruları: Daha iyi performans ve izlenebilirlik için INDIRECT() yerine INDEX() kullanın.
Dinamik diziler veya sayı dizileri: =ROW(INDIRECT("1:10")) kullanmaktan kaçının. Bunun yerine daha hızlı, daha temiz ve değişken olmayan =SEQUENCE(10) kullanın.
İzlenebilirliğin önemli olduğu durumlar: INDIRECT() kullanılan formüller, “Trace Precedents” veya “Evaluate Formula” ile etkin biçimde izlenemez.
Statik bir hücreye veya aralığa başvuru: INDIRECT("A1") kullanmayın; doğrudan =A1 yazın.
Büyük hesap tablolarında yoğun kullanım: INDIRECT() değişken olduğundan sürekli yeniden hesaplar ve performansı ciddi şekilde yavaşlatabilir.
INDIRECT() alternatifleri
Aşağıdaki tablo, INDIRECT() için en iyi alternatifleri özetler.
Amaç
INDIRECT() Yerine Bunu Tercih Edin
Dinamik hücre başvurusu
INDEX()
Dizi üretme
SEQUENCE()
Koşullu mantık veya daha temiz formüller
LET()
Çok senaryolu arama
CHOOSE() veya XLOOKUP()
Esnek sayfa formülleri
XLOOKUP() ve yapılandırılmış veriler veya Power Query
Önemli Noktalar
INDIRECT(), metin dizelerini canlı başvurulara dönüştürerek dinamik ve esnek hesap tabloları oluşturmak için güçlü bir araç sunar. Farklı sayfalara, adlandırılmış aralıklara veya değişikliklerle kaymaması gereken sabit hücrelere başvurmak için kullanışlıdır. Ancak, sık sık yeniden hesaplanan değişken bir işlevdir ve büyük çalışma kitaplarını yavaşlatabilir. Ayrıca geleneksel işlevlere kıyasla izlemek ve hata ayıklamak daha zordur. INDIRECT()’i seçici olarak kullanın ve daha güvenli, daha verimli alternatifleri değerlendirin.
B2B verilerinde içgörüleri öğrenmek için Data Analysis in Excel kursumuzu ve en yeni Excel sürümlerinde mevcut işlevler hakkında daha fazla bilgi edinmek için Excel Fundamentals yetkinlik yolumuzu öneririm. Gelişmiş başvuru ve arama yöntemlerini keşfediyorsanız, Advanced Excel Functions kursumuz da mükemmeldir.
Author
Allan Ouko
Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.
Excel SSS
INDIRECT() ne yapar?
INDIRECT(), bir metin dizesini hücre veya aralık başvurusuna dönüştürür.
INDIRECT() otomatik olarak güncellenir mi?
Evet, INDIRECT() başvurulan hücreler değiştiğinde, başvuru geçersiz değilse yeniden hesaplar.
INDIRECT() performansı nasıl etkiler?
INDIRECT(), çalışma kitabındaki herhangi bir hücre her değiştiğinde yeniden hesaplar; bu da sık yeniden hesaplamalar nedeniyle büyük veya karmaşık çalışma kitaplarını yavaşlatabilir.
INDIRECT() için alternatifler nelerdir?
Daha güvenli ve hızlı performans için INDEX(), CHOOSE(), SEQUENCE() veya LET() kullanın.
INDIRECT() neden #REF! döndürür?
Erişmeye çalıştığı başvuru mevcut değildir veya yanlış yazılmıştır.
Veri hazırlamaktan formül yazmaya ve görselleştirmeler oluşturmaya kadar Excel'i kullanmak için ihtiyacınız olan temel becerileri kazanın. Önceden deneyim gerekmez.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!