Esnek Açılır Listeler için Excel'de Dinamik Aralık Adlarını Kullanın

Excel elektronik tabloları genellikle veri girişini basitleştirmek ve/veya standart hale getirmek için hücre açılır listelerini içerir. Bu açılır menüler, izin verilen girişlerin bir listesini belirtmek için veri doğrulama özelliği kullanılarak oluşturulur.

Basit bir açılır liste oluşturmak için, verilerin girileceği hücreyi seçin, ardından Veri Doğrulama'ya(Data Validation) tıklayın ( Veri(Data) sekmesinde), Veri Doğrulama'yı(Data Validation) seçin, Liste'yi(List) seçin ( İzin ver(Allow) :)'in altında ve ardından liste öğelerini girin (virgülle ayırarak) ) Kaynak(Source) : alanında (bkz. Şekil 1).

Bu tür temel açılır listede, izin verilen girişlerin listesi veri doğrulamanın kendisinde belirtilir; bu nedenle, listede değişiklik yapmak için kullanıcının veri doğrulamasını açması ve düzenlemesi gerekir. Ancak bu, deneyimsiz kullanıcılar için veya seçenekler listesinin uzun olduğu durumlarda zor olabilir.

Başka bir seçenek, listeyi elektronik tablo içinde adlandırılmış bir aralığa yerleştirmek ve ardından veri doğrulamasının (named range within the spreadsheet)Kaynak(Source) : alanında ( Şekil 2'de(Figure 2) gösterildiği gibi ) bu aralık adını (önce eşittir işaretiyle) belirtmektir .

Bu ikinci yöntem, listedeki seçenekleri düzenlemeyi kolaylaştırır, ancak öğelerin eklenmesi veya çıkarılması sorunlu olabilir. Adlandırılmış aralık ( Örneğimizde FruitChoices ) sabit bir hücre aralığına atıfta bulunduğundan (gösterildiği gibi $H$3:$H$10), (FruitChoices)H11 veya altındaki hücrelere daha fazla seçenek eklenirse , bunlar açılır menüde görünmez (çünkü bu hücreler FruitChoices aralığının parçası değildir).

Benzer şekilde, örneğin, Armut(Pears) ve Çilek(Strawberries) girişleri silinirse, artık açılır menüde görünmezler, bunun yerine açılır menü, boş hücreler H9 ve H9 ve H10 .

Bu nedenlerle, bir açılır liste için liste kaynağı olarak normal adlandırılmış bir aralık kullanılırken, listeden girişler eklenir veya silinirse, adlandırılmış aralığın kendisi daha fazla veya daha az hücre içerecek şekilde düzenlenmelidir.

Bu soruna bir çözüm , açılır seçenekler için kaynak olarak bir dinamik aralık adı kullanmaktır. (dynamic)Dinamik aralık adı, girdiler eklendikçe veya kaldırılırken bir veri bloğunun boyutuyla tam olarak eşleşmesi için otomatik olarak genişleyen (veya daralan) bir addır. Bunu yapmak için , adlandırılmış aralığı tanımlamak için sabit bir hücre adresi aralığı yerine bir formül kullanırsınız.(formula)

Excel'de Dinamik Aralık (Dynamic Range)Nasıl(Excel) Kurulur

Normal (statik) bir aralık adı, belirli bir hücre aralığına atıfta bulunur (örneğimizde $H$3:$H$10, aşağıya bakın):

Ancak dinamik aralık bir formül kullanılarak tanımlanır (aşağıya bakın, dinamik aralık adlarını kullanan ayrı bir elektronik tablodan alınmıştır):

Başlamadan önce, Excel örnek dosyamızı indirdiğinizden emin olun  (sıralama makroları devre dışı bırakıldı).

Bu formülü detaylı olarak inceleyelim. Meyveler için seçenekler, bir başlığın hemen altındaki bir hücre bloğundadır ( MEYVELER(FRUITS) ). Bu başlığa ayrıca bir ad atanır: FruitsHeading :

Meyve(Fruits) seçenekleri için dinamik aralığı tanımlamak için kullanılan formülün tamamı şudur:

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(OFFSET(FruitsHeading,1,0,20,1)),0,0),0)-1,20),1)

FruitsHeading , listedeki ilk girişin bir satır yukarısındaki başlığa atıfta bulunur. 20 sayısı (formülde iki kez kullanılır) liste için maksimum boyuttur (satır sayısı) (bu istenildiği gibi ayarlanabilir).

Bu örnekte, listede yalnızca 8 giriş olduğunu, ancak bunların altında ek girişlerin eklenebileceği boş hücreler olduğunu unutmayın. 20 sayısı, gerçek giriş sayısını değil, girişlerin yapılabileceği tüm bloğu ifade eder.

Şimdi, nasıl çalıştığını anlamak için formülü parçalara ayıralım (her parçayı renkle kodlayarak):

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(OFFSET(FruitsHeading,1,0,20,1)),0,0),0)-1,20),1)

"En içteki" parça OFFSET(FruitsHeading,1,0,20,1) . Bu, seçeneklerin girilebileceği 20 hücre bloğuna ( MeyvesHeading hücresinin altında) başvurur. (FruitsHeading)Bu OFFSET işlevi temelde şunu söyler: FruitsHeading hücresinden başlayın, 1 satır aşağı ve 0 sütunun üzerine gidin, ardından 20 satır uzunluğunda ve 1 sütun genişliğinde bir alan seçin. Bu bize Fruits seçeneklerinin girildiği 20 satırlık bloğu verir.

Formülün sonraki parçası ISBLANK işlevidir:

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(the above),0,0),0)-1,20),1)

Burada, OFFSET işlevi (yukarıda açıklanmıştır) "yukarıdakiler" ile değiştirilmiştir (okumayı kolaylaştırmak için). Ancak ISBLANK işlevi, (ISBLANK)OFFSET işlevinin tanımladığı 20 satırlık hücre aralığında çalışıyor.

ISBLANK daha sonra, (ISBLANK)OFFSET işlevi tarafından başvurulan 20 satırlık aralıktaki tek tek hücrelerin her birinin boş (boş) olup olmadığını gösteren bir 20 DOĞRU(TRUE) ve YANLIŞ(FALSE) değer kümesi oluşturur . Bu örnekte, ilk 8 hücre boş olmadığından kümedeki ilk 8 değer YANLIŞ , son 12 değer ise (FALSE)DOĞRU(TRUE) olacaktır .

Formülün sonraki parçası INDEX işlevidir:

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(the above,0,0),0)-1,20),1)

Yine, "yukarıdaki", yukarıda açıklanan ISBLANK(ISBLANK) ve OFFSET işlevlerine atıfta bulunur . INDEX işlevi , ISBLANK işlevi tarafından oluşturulan 20 TRUE / FALSE değerini içeren bir dizi döndürür .

INDEX normalde belirli bir satır ve sütun (bu blok içinde) belirterek bir veri bloğundan belirli bir değeri (veya değer aralığını) seçmek için kullanılır. Ancak satır ve sütun girdilerini sıfıra ayarlamak (burada yapıldığı gibi), INDEX'in(INDEX) tüm veri bloğunu içeren bir dizi döndürmesine neden olur.

Formülün sonraki parçası KAÇINCI(MATCH) işlevidir:

=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,the above,0)-1,20),1)

KAÇINCI işlevi, (MATCH)INDEX işlevi tarafından döndürülen dizi içindeki ilk DOĞRU(TRUE) değerin konumunu döndürür . Listedeki ilk 8 giriş boş olmadığından dizideki ilk 8 değer YANLIŞ(FALSE) , dokuzuncu değer DOĞRU(TRUE) olacaktır ( aralığın 9. satırı boş olduğu için).

Böylece KAÇINCI işlevi (MATCH)9 değerini döndürür . Ancak bu durumda, listede kaç giriş olduğunu gerçekten bilmek istiyoruz, bu nedenle formül KAÇINCI(MATCH) değerinden 1 çıkarır (bu, son girişin konumunu verir). Sonuç olarak, MATCH ( TRUE ,the Above,0)-1, (TRUE)8 değerini döndürür .

Formülün sonraki parçası EĞERHATA(IFERROR) işlevidir:

=OFFSET(FruitsHeading,1,0,IFERROR(the above,20),1)

EĞERHATA işlevi(IFERROR) , belirtilen ilk değer bir hatayla sonuçlanırsa alternatif bir değer döndürür. Bu işlev dahil edilmiştir, çünkü tüm hücre bloğu (20 satırın tümü) girişlerle doldurulursa, KAÇINCI(MATCH) işlevi bir hata döndürür.

Bunun nedeni, KAÇINCI(MATCH) işlevine ilk DOĞRU değeri ( (TRUE)ISBLANK işlevindeki değerler dizisinde) aramasını söylüyor olmamızdır , ancak hücrelerin HİÇBİRİ boş değilse, tüm dizi (NONE)YANLIŞ(FALSE) değerlerle doldurulacaktır . MATCH , aradığı dizide hedef değeri ( TRUE ) bulamazsa, bir hata döndürür.

Bu nedenle, tüm liste doluysa (ve dolayısıyla KAÇINCI(MATCH) bir hata döndürürse), EĞERHATA(IFERROR) işlevi bunun yerine 20 değerini döndürür (listede 20 giriş olması gerektiğini bilerek).

Son olarak, OFFSET(FruitsHeading,1,0,the Yukarıdaki,1)(OFFSET(FruitsHeading,1,0,the above,1)) aslında aradığımız aralığı döndürür: FruitsHeading hücresinden başlayın, 1 satır aşağı ve 0 sütunun üzerine gidin, ardından ne kadar uzun satır olursa olsun bir alan seçin. listede girişler var (ve 1 sütun genişliğinde). Böylece formülün tamamı birlikte yalnızca gerçek girişleri içeren aralığı döndürür (ilk boş hücreye kadar).

Açılır listenin kaynağı olan aralığı tanımlamak için bu formülü kullanmak, listeyi özgürce düzenleyebileceğiniz anlamına gelir (kalan girişler üst hücrede başladığı ve bitişik olduğu sürece girişleri ekleme veya çıkarma) ve açılır liste her zaman geçerli olanı yansıtır. listesi (bkz . Şekil 6(Figure 6) ).

Burada kullanılan örnek dosya (Dinamik Listeler) dahil edilmiştir ve bu web sitesinden indirilebilir. Bununla birlikte, makrolar çalışmaz, çünkü WordPress , içinde makro bulunan (WordPress)Excel kitaplarını sevmez .

Liste bloğundaki satır sayısını belirlemeye alternatif olarak, liste bloğuna daha sonra değiştirilmiş bir formülde kullanılabilen kendi aralık adı atanabilir. Örnek dosyada, ikinci bir liste ( Names ) bu yöntemi kullanır. Burada, tüm liste bloğuna ("NAMES" başlığının altında, örnek dosyada 40 satır) NameBlock(NameBlock) aralık adı atanır . NamesList'i(NamesList) tanımlamak için alternatif formül şu şekildedir :

=OFFSET(NamesHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(NamesBlock),0,0),0)-1,ROWS(NamesBlock)),1)

burada NamesBlock , OFFSET ( FruitsHeading ,1,0,20,1(FruitsHeading,1,0,20,1) ) yerine geçer ve ROWS(NamesBlock) , önceki formülde 20'nin (satır sayısı) yerini alır.

Bu nedenle, kolayca düzenlenebilen açılır listeler için (deneyimsiz olabilecek diğer kullanıcılar da dahil), dinamik aralık adlarını kullanmayı deneyin! Ayrıca, bu makale açılır listelere odaklanmış olsa da, dinamik aralık adlarının, boyut olarak değişebilen bir aralığa veya listeye başvurmanız gereken her yerde kullanılabileceğini unutmayın. Zevk almak!



About the author

10 yılı aşkın deneyime sahip bir bilgisayar uzmanıyım. Boş zamanlarımda, bir ofis masasında yardım etmeyi ve çocuklara interneti nasıl kullanacaklarını öğretmeyi severim. Becerilerim pek çok şeyi içeriyor ama en önemlisi, insanların sorunları çözmelerine nasıl yardım edeceğimi biliyorum. Acil bir konuda size yardımcı olabilecek birine ihtiyacınız varsa veya sadece bazı temel ipuçları istiyorsanız, lütfen bana ulaşın!



Related posts