İçindekiler
Bu eğitimde, Excel'de INDEX'in en verimli kullanımlarını gösteren bir dizi formül örneği bulacaksınız.
Gücü genellikle hafife alınan ve yeterince kullanılmayan tüm Excel işlevleri arasında INDEX kesinlikle ilk 10'da yer alır. Bu arada, bu işlev akıllı, esnek ve çok yönlüdür.
Peki, Excel'deki INDEX işlevi nedir? Esasen, INDEX formülü belirli bir dizi veya aralık içindeki bir hücre başvurusunu döndürür. Başka bir deyişle, bir aralıktaki bir öğenin konumunu bildiğinizde (veya hesaplayabildiğinizde) ve bu öğenin gerçek değerini almak istediğinizde INDEX'i kullanırsınız.
Bu kulağa biraz önemsiz gelebilir, ancak INDEX işlevinin gerçek potansiyelini fark ettiğinizde, çalışma sayfalarınızdaki verileri hesaplama, analiz etme ve sunma şeklinizde önemli değişiklikler yapabilir.
Excel INDEX işlevi - sözdizimi ve temel kullanımlar
Excel'de INDEX işlevinin iki sürümü vardır - dizi formu ve başvuru formu. Her iki form da Microsoft Excel 365 - 2003'ün tüm sürümlerinde kullanılabilir.
INDEX dizi formu
INDEX dizi formu, belirttiğiniz satır ve sütun numaralarına göre bir aralık veya dizideki belirli bir öğenin değerini döndürür.
INDEX(array, row_num, [column_num])- dizi - bir hücre aralığı, adlandırılmış aralık veya tablodur.
- row_num - değer döndürülecek dizideki satır numarasıdır. row_num atlanırsa, column_num gereklidir.
- column_num - değer döndürülecek sütun numarasıdır. sütun_sayısı atlanırsa, satır_sayısı gereklidir.
Örneğin, formül =INDEX(A1:D6, 4, 3)
A1:D6 aralığındaki 4. satır ve 3. sütunun kesişimindeki değeri döndürür; bu, C4 hücresindeki değerdir.
INDEX formülünün gerçek veriler üzerinde nasıl çalıştığına dair bir fikir edinmek için lütfen aşağıdaki örneğe bir göz atın:
Formüle satır ve sütun numaralarını girmek yerine, daha evrensel bir formül elde etmek için hücre referanslarını sağlayabilirsiniz: =INDEX($B$2:$D$6, G2, G1)
Dolayısıyla, bu INDEX formülü tam olarak G2'de (satır_sayısı) belirtilen ürün numarası ile G1 hücresine (sütun_sayısı) girilen hafta numarasının kesiştiği noktadaki öğelerin sayısını döndürür.
İpucu: Dizi bağımsız değişkeninde göreli referanslar (B2:D6) yerine mutlak referansların ($B$2:$D$6) kullanılması, formülün diğer hücrelere kopyalanmasını kolaylaştırır. Alternatif olarak, bir aralığı tabloya dönüştürebilir ( Ctrl + T ) ve tablo adıyla başvurabilirsiniz.
INDEX dizi formu - hatırlanması gerekenler
- Dizi bağımsız değişkeni yalnızca bir satır veya sütundan oluşuyorsa, ilgili satır_sayısı veya sütun_sayısı bağımsız değişkenini belirtebilir veya belirtmeyebilirsiniz.
- Dizi bağımsız değişkeni birden fazla satır içeriyorsa ve satır_sayısı atlanmış veya 0 olarak ayarlanmışsa, INDEX işlevi tüm sütunun bir dizisini döndürür. Benzer şekilde, dizi birden fazla sütun içeriyorsa ve sütun_sayısı bağımsız değişkeni atlanmış veya 0 olarak ayarlanmışsa, INDEX formülü tüm satırı döndürür. İşte bu davranışı gösteren bir formül örneği.
- row_num ve column_num bağımsız değişkenleri dizi içindeki bir hücreye başvurmalıdır; aksi takdirde, INDEX formülü #REF! hatası döndürür.
INDEX referans formu
Excel INDEX işlevinin başvuru biçimi, belirtilen satır ve sütunun kesişimindeki hücre başvurusunu döndürür.
- referans - bir veya birkaç aralıktır.
Birden fazla aralık giriyorsanız, aralıkları virgülle ayırın ve referans bağımsız değişkenini parantez içine alın, örneğin (A1:B5, D1:F5).
Başvurudaki her aralık yalnızca bir satır veya sütun içeriyorsa, ilgili row_num veya column_num bağımsız değişkeni isteğe bağlıdır.
- row_num - bir hücre başvurusunun döndürüleceği aralıktaki satır numarası, dizi formuna benzer.
- column_num - bir hücre başvurusunun döndürüleceği sütun numarası da dizi formuna benzer şekilde çalışır.
- area_num - başvuru bağımsız değişkeninden hangi aralığın kullanılacağını belirten isteğe bağlı bir parametre. Atlanırsa, INDEX formülü başvuruda listelenen ilk aralık için sonucu döndürür.
Örneğin, formül =INDEX((A2:D3, A5:D7), 3, 4, 2)
ikinci alanda (A5:D7) 3. satır ve 4. sütunun kesişiminde bulunan D7 hücresinin değerini döndürür.
INDEX referans formu - hatırlanması gerekenler
- row_num veya column_num bağımsız değişkeni sıfır (0) olarak ayarlanırsa, INDEX formülü sırasıyla tüm sütun veya satır için başvuruyu döndürür.
- Hem row_num hem de column_num atlanırsa, INDEX işlevi area_num bağımsız değişkeninde belirtilen alanı döndürür.
- _num bağımsız değişkenlerinin tümü (satır_sayısı, sütun_sayısı ve alan_sayısı) başvuru içindeki bir hücreye başvurmalıdır; aksi takdirde, INDEX formülü #REF! hatası döndürür.
Şimdiye kadar tartıştığımız INDEX formüllerinin her ikisi de çok basittir ve yalnızca kavramı göstermektedir. Gerçek formülleriniz muhtemelen bundan çok daha karmaşık olacaktır, bu nedenle Excel'de INDEX'in en verimli birkaç kullanımını inceleyelim.
Excel'de INDEX işlevi nasıl kullanılır - formül örnekleri
Belki Excel INDEX'in tek başına çok fazla pratik kullanımı yoktur, ancak MATCH veya COUNTA gibi diğer işlevlerle birlikte çok güçlü formüller oluşturabilir.
Kaynak verileri
INDEX formüllerimizin tümünde (sonuncusu hariç), aşağıdaki verileri kullanacağız. Kolaylık sağlamak amacıyla, bu veriler aşağıdaki gibi bir tabloda düzenlenmiştir KaynakVeri .
Tabloların veya adlandırılmış aralıkların kullanılması formülleri biraz daha uzun hale getirebilir, ancak aynı zamanda onları önemli ölçüde daha esnek ve daha iyi okunabilir hale getirir. Çalışma sayfalarınız için herhangi bir INDEX formülünü ayarlamak için yalnızca tek bir adı değiştirmeniz gerekir ve bu, daha uzun bir formül uzunluğunu tamamen telafi eder.
Elbette, isterseniz normal aralıkları kullanmanızı engelleyen hiçbir şey yoktur. Bu durumda, tablo adını değiştirmeniz yeterlidir KaynakVeri uygun aralık referansı ile.
1. Listeden N'inci öğenin alınması
Bu, INDEX işlevinin temel kullanımıdır ve yapılması gereken en basit formüldür. Listeden belirli bir öğeyi almak için sadece şunu yazarsınız =INDEX(aralık, n)
nerede aralık bir hücre aralığı veya adlandırılmış bir aralık ve n almak istediğiniz öğenin konumudur.
Excel tablolarıyla çalışırken, fareyi kullanarak sütunu seçebilirsiniz ve Excel formülde tablonun adıyla birlikte sütunun adını da çekecektir:
Belirli bir satır ve sütunun kesişimindeki hücrenin değerini almak için aynı yaklaşımı kullanırsınız, tek fark her ikisini de belirtmenizdir - satır numarası ve sütun numarası. Aslında, INDEX dizi formunu tartıştığımızda böyle bir formülü zaten iş başında gördünüz.
Ve işte bir örnek daha. Örnek tablomuzda, Güneş sistemindeki en büyük 2. gezegeni bulmak için, tabloyu Çap sütununa gidin ve aşağıdaki INDEX formülünü kullanın:
=INDEX(SourceData, 2, 3)
Dizi
tablo adı veya bir aralık referansıdır, KaynakVeri bu örnekte.Satır_sayısı
2'dir çünkü listedeki ikinci öğeyi arıyorsunuz, bu da 2.Column_num
3'tür çünkü Çap tablodaki 3. sütundur.
Gezegenin çapı yerine adını döndürmek istiyorsanız, sütun_sayısını 1 olarak değiştirin. Ve doğal olarak, aşağıdaki ekran görüntüsünde gösterildiği gibi, formülünüzü daha çok yönlü hale getirmek için satır_sayısı ve/veya sütun_sayısı bağımsız değişkenlerinde bir hücre başvurusu kullanabilirsiniz:
2. Bir satır veya sütundaki tüm değerleri alma
INDEX işlevi tek bir hücreyi almanın yanı sıra, INDEX işlevinden bir dizi değer döndürebilir. tüm satır veya sütun Belirli bir sütundaki tüm değerleri almak için row_num bağımsız değişkenini atlamanız veya 0 olarak ayarlamanız gerekir. Benzer şekilde, tüm satırı almak için column_num'da boş değer veya 0 geçersiniz.
Bu tür INDEX formülleri tek başlarına pek kullanılamaz, çünkü Excel formül tarafından döndürülen değerler dizisini tek bir hücreye sığdıramaz ve bunun yerine #VALUE! hatası alırsınız. Ancak, INDEX'i SUM veya AVERAGE gibi diğer işlevlerle birlikte kullanırsanız, harika sonuçlar elde edersiniz.
Örneğin, Güneş sistemindeki ortalama gezegen sıcaklığını hesaplamak için aşağıdaki formülü kullanabilirsiniz:
=AVERAGE(INDEX(SourceData, , 4))
Yukarıdaki formülde, column_num bağımsız değişkeni 4'tür çünkü Sıcaklık tablomuzdaki 4. sütunda. row_num parametresi atlanmıştır.
Benzer şekilde, minimum ve maksimum sıcaklıkları da bulabilirsiniz:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
Ve toplam gezegen kütlesini hesaplayın (Kütle tablodaki 2. sütundur):
=TOPLA(INDEX(SourceData, , 2))
Pratik açıdan bakıldığında, yukarıdaki formüldeki INDEX işlevi gereksizdir. Basitçe şöyle yazabilirsiniz =AVERAGE(aralık)
veya =TOPLA(aralık)
ve aynı sonuçları alırsınız.
Gerçek verilerle çalışırken, bu özellik veri analizi için kullandığınız daha karmaşık formüllerin bir parçası olarak yararlı olabilir.
3. INDEX'i diğer fonksiyonlarla birlikte kullanma (SUM, AVERAGE, MAX, MIN)
Önceki örneklerden, bir INDEX formülünün değerler döndürdüğü izlenimine kapılmış olabilirsiniz, ancak gerçekte bir referans Ve bu örnek Excel INDEX işlevinin gerçek doğasını göstermektedir.
INDEX formülünün sonucu bir başvuru olduğundan, bunu diğer işlevler içinde kullanarak bir dinamik aralık Kafa karıştırıcı mı geliyor? Aşağıdaki formül her şeyi açıklığa kavuşturacaktır.
Bir formülünüz olduğunu varsayalım =ORTALAMA(A1:A10)
A1:A10 hücrelerindeki değerlerin ortalamasını döndürür. Aralığı doğrudan formülde yazmak yerine, A1 veya A10'u ya da her ikisini de aşağıdaki gibi INDEX işlevleriyle değiştirebilirsiniz:
=ORTALAMA(A1 : INDEX(A1:A20,10))
Yukarıdaki formüllerin her ikisi de aynı sonucu verir çünkü INDEX işlevi de A10 hücresine bir başvuru döndürür (row_num 10 olarak ayarlanır, col_num atlanır). Aradaki fark, AVERAGE / INDEX formülündeki aralığın dinamik olmasıdır ve INDEX'teki row_num bağımsız değişkenini değiştirdiğinizde, AVERAGE işlevi tarafından işlenen aralık değişecek ve formül farklı bir sonuç döndürecektir.
Görünüşe göre, INDEX formülünün rotası aşırı karmaşık görünmektedir, ancak aşağıdaki örneklerde gösterildiği gibi pratik uygulamaları vardır.
Örnek 1. Listedeki en üstteki N öğenin ortalamasını hesaplayın
Diyelim ki sistemimizdeki en büyük N gezegenin ortalama çapını bilmek istiyorsunuz. Çap sütununu en büyükten en küçüğe doğru sıralayın ve aşağıdaki Ortalama / Endeks formülünü kullanın:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Örnek 2. Belirtilen iki öğe arasındaki öğeleri topla
Formülünüzde üst sınır ve alt sınır öğelerini tanımlamak istemeniz durumunda, istediğiniz ilk ve son öğeyi döndürmek için iki INDEX işlevi kullanmanız yeterlidir.
Örneğin, aşağıdaki formül aşağıdakilerdeki değerlerin toplamını döndürür Çap B1 ve B2 hücrelerinde belirtilen iki öğe arasındaki sütun:
=TOPLA(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. Dinamik aralıklar ve açılır listeler oluşturmak için INDEX formülü
Çoğu zaman olduğu gibi, bir çalışma sayfasında verileri düzenlemeye başladığınızda, sonunda kaç girişe sahip olacağınızı bilemeyebilirsiniz. Tamamlanmış gibi görünen gezegenler tablomuzda durum böyle değil, ama kim bilir...
Her neyse, belirli bir sütunda değişen sayıda öğeniz varsa, örneğin A1'den A'ya n veri içeren tüm hücreleri içeren dinamik bir adlandırılmış aralık oluşturmak isteyebilirsiniz. Bu durumda, yeni öğeler ekledikçe veya mevcut öğelerden bazılarını sildikçe aralığın otomatik olarak ayarlanmasını istersiniz. Örneğin, şu anda 10 öğeniz varsa, adlandırılmış aralığınız A1:A10 olur. Yeni bir girdi eklerseniz, adlandırılmış aralık otomatik olarak A1:A11 olarak genişler ve fikrinizi değiştirip yeni eklenen verileri silerseniz,aralığı otomatik olarak A1:A10'a döner.
Bu yaklaşımın temel avantajı, doğru aralıklara başvurduklarından emin olmak için çalışma kitabınızdaki tüm formülleri sürekli olarak güncellemeniz gerekmemesidir.
Dinamik aralık tanımlamanın bir yolu Excel OFFSET fonksiyonunu kullanmaktır:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Bir başka olası çözüm de Excel INDEX'i COUNTA ile birlikte kullanmaktır:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
Her iki formülde de A1, listenin ilk öğesini içeren hücredir ve her iki formül tarafından üretilen dinamik aralık aynı olacaktır.
OFFSET işlevi başlangıç noktasından belirli sayıda satır ve/veya sütun ilerlerken, INDEX belirli bir satır ve sütunun kesişimindeki bir hücreyi bulur. Her iki formülde de kullanılan COUNTA işlevi, ilgilenilen sütundaki boş olmayan hücrelerin sayısını alır.
Bu örnekte, A sütununda boş olmayan 9 hücre vardır, bu nedenle COUNTA 9 döndürür. Sonuç olarak, INDEX, A sütunundaki son kullanılan hücre olan $A$9 döndürür (genellikle INDEX bir değer döndürür, ancak bu formülde başvuru işleci (:) onu bir başvuru döndürmeye zorlar). Ve $A$1 başlangıç noktamız olduğu için, formülün nihai sonucu $A$1:$A$9 aralığıdır.
Aşağıdaki ekran görüntüsü, dinamik bir açılır liste oluşturmak için böyle bir Dizin formülünü nasıl kullanabileceğinizi göstermektedir.
İpucu: Dinamik olarak güncellenen bir açılır liste oluşturmanın en kolay yolu, bir tabloya dayalı olarak adlandırılmış bir liste oluşturmaktır. Bu durumda, Excel tabloları kendi başlarına dinamik aralıklar olduğundan karmaşık formüllere ihtiyacınız olmayacaktır.
Bağımlı açılır listeler oluşturmak için INDEX işlevini de kullanabilirsiniz ve aşağıdaki öğretici adımları açıklamaktadır: Excel'de basamaklı bir açılır liste oluşturma.
5. INDEX / MATCH ile Güçlü Vlookup'lar
Dikey aramalar gerçekleştirme - INDEX işlevinin gerçekten parladığı yer burasıdır. Excel DÜŞEYARA işlevini kullanmayı denediyseniz, arama sütununun solundaki sütunlardan değer çekememe veya bir arama değeri için 255 karakter sınırı gibi çok sayıda sınırlamasının farkındasınızdır.
INDEX / MATCH bağlantısı birçok açıdan VLOOKUP'tan daha üstündür:
- Sol vlookup'larda sorun yok.
- Arama değeri boyutu için sınır yoktur.
- Sıralama gerekmez (yaklaşık eşleşmeli DÜŞEYARA, arama sütununun artan sırada sıralanmasını gerektirir).
- İlişkili her formülü güncelleştirmeden bir tabloya sütun ekleyip çıkarmakta özgürsünüz.
- Ve son olarak, INDEX / MATCH Excel'inizi birden fazla Vlookup'ın yaptığı gibi yavaşlatmaz.
INDEX / MATCH'ı aşağıdaki şekilde kullanırsınız:
=INDEX ( sütunundan bir değer döndürmek için , (MATCH ( arama değeri , karşı aranacak sütun , 0))Örneğin, kaynak tablomuzu şu şekilde çevirirsek Gezegen Adı en sağdaki sütun haline gelirse, INDEX / MATCH formülü yine de sol sütundan eşleşen bir değeri sorunsuz bir şekilde getirir.
Daha fazla ipucu ve formül örneği için lütfen Excel INDEX / MATCH öğreticisine bakın.
6. Bir aralık listesinden 1 aralık almak için Excel INDEX formülü
Excel'de INDEX işlevinin bir başka akıllı ve güçlü kullanımı, bir aralık listesinden bir aralık alma yeteneğidir.
Her birinde farklı sayıda öğe bulunan birkaç listeniz olduğunu varsayalım. İster inanın ister inanmayın, seçilen herhangi bir aralıktaki değerlerin ortalamasını veya toplamını tek bir formülle hesaplayabilirsiniz.
İlk olarak, her liste için adlandırılmış bir aralık oluşturursunuz; bu aralık GezegenlerD ve MoonsD bu örnekte:
Umarım yukarıdaki resim aralıkların isimlerinin arkasındaki mantığı açıklar : ) BTW, the Aylar Tablo tamamlanmış olmaktan çok uzak, Güneş Sistemimizde bilinen 176 doğal uydu var, sadece Jüpiter'in şu anda 63 uydusu var ve bu sayı artıyor. Bu örnek için rastgele 11 tane seçtim, şey... belki de tam olarak rastgele değil - en güzel isimlere sahip uydular : )
Lütfen konuyu saptırdığım için özür dilerim, INDEX formülümüze geri dönelim. GezegenlerD sizin aralık 1'iniz ve MoonsD aralık 2 ise ve B1 hücresi aralık numarasını koyduğunuz yer ise, seçilen adlandırılmış aralıktaki değerlerin ortalamasını hesaplamak için aşağıdaki Dizin formülünü kullanabilirsiniz:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Lütfen şu anda INDEX işlevinin Referans formunu kullandığımıza ve son bağımsız değişkendeki sayının (area_num) formüle hangi aralığın seçileceğini söylediğine dikkat edin.
Aşağıdaki ekran görüntüsünde, area_num (B1 hücresi) 2 olarak ayarlanmıştır, bu nedenle formül ortalama çapı hesaplar Aylar çünkü aralık MoonsD referans argümanında 2. sırada gelir.
Birden fazla listeyle çalışıyorsanız ve ilişkili numaraları hatırlamakla uğraşmak istemiyorsanız, bunu sizin yerinize yapması için iç içe geçmiş bir EĞER işlevi kullanabilirsiniz:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
EĞER işlevinde, kullanıcılarınızın B1 hücresine sayılar yerine yazmasını istediğiniz bazı basit ve hatırlaması kolay liste adları kullanırsınız. Formülün doğru çalışması için B1'deki metnin EĞER parametrelerindekiyle tamamen aynı (büyük/küçük harfe duyarlı olmayan) olması gerektiğini lütfen unutmayın; aksi takdirde Dizin formülünüz #DEĞER hatası verir.
Formülü daha da kullanıcı dostu hale getirmek için, yazım hatalarını ve yanlış basımları önlemek amacıyla önceden tanımlanmış adlara sahip bir açılır liste oluşturmak üzere Veri Doğrulama özelliğini kullanabilirsiniz:
Son olarak, INDEX formülünüzü kesinlikle mükemmel hale getirmek için, henüz seçim yapılmamışsa kullanıcıdan açılır listeden bir öğe seçmesini isteyecek olan IFERROR işlevine dahil edebilirsiniz:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Lütfen listeyi seçin!")
Excel'de INDEX formüllerini bu şekilde kullanabilirsiniz. Umarım bu örnekler size çalışma sayfalarınızda INDEX işlevinin potansiyelinden yararlanmanın bir yolunu göstermiştir. Okuduğunuz için teşekkürler!