İleri Excel » İp Uçları & Çözümler

 

Dinamik DropDown List

Excel dropdown oluşturmak için bir çok seçenek sunar. Aşağıdaki örnek dropdown list uygulaması herhangi bir VBA kodu içermediği için her seviye kullanıcı tarafından güncellenmesi ve anlaşılması kolaydır.

Çoğu zaman Excel'i farklı iş bölümlerden bilgi toplamak için kullanırız. Bu durum kullanıcılardan doğru verileri alabilmek için uygulamanın onları yönlendirmesi veya kısıtlaması ihtiyacını doğrurur. Çünkü alınan verinin kalitesi veya içeriği düzgün değilse sonucumuzda doğru olmayacaktır. İşte bu nedenle bu uygulamanın iyi bir örnek olduğunu düşünüyorum.

 

 

 

Peki bu DropDown list nasıl çalışır ?

Genel olarak bütün işi aşağıda bulunan excel fonksiyon kombinasyonu yapıyor.

=IF(ISBLANK(Sheet1!C8);
IF(DataEntry[#Headers] Sheet1!B:B = DataEntry[[#Headers];[Main Category]];
OFFSET(ValidationLists[[#All];[Main Categories]];1;;COUNTA(ValidationLists[Main Categories])); OFFSET(ValidationLists;0;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;COUNTA(OFFSET(ValidationLists;;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;;1));1)))

 

Bu fonksiyon ValidationLists ve DataEntry adında iki tabloyu referans alır ve ValName alan adı olarak tanımlanır. Aşağıdaki fonksiyon kombinasyonunu adım adım incelemeden önce kullanılan fonksiyonların detaylı ve örnekli anlatımlarına göz atabilirsiniz.

 

=IF(ISBLANK(Sheet1!C8);
IF(DataEntry[#Headers] Sheet1!B:B = DataEntry[[#Headers];[Main Category]];
OFFSET(ValidationLists[[#All];[Main Categories]];1;;COUNTA(ValidationLists[Main Categories])); OFFSET(ValidationLists;0;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;COUNTA(OFFSET(ValidationLists;;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;;1));1)))

Yukarıdaki fonksiyon kombinasyonundaki bold olan ilk gurup sağındaki hücreyi kontrol eder. Eğer hücre boş değilse bu kullanıcının alt seviyede bir seçim yaptığı anlamına gelir. Kullanıcının alt seviyede yaptığı seçimi temizlemeden üst seviyede değişiklik yapmasını istemeyiz. Böylece hatalı giriş yapılmasını engellemiş oluruz.

 

=IF(ISBLANK(Sheet1!C8);
IF(DataEntry[#Headers] Sheet1!B:B = DataEntry[[#Headers];[Main Category]];
OFFSET(ValidationLists[[#All];[Main Categories]];1;;COUNTA(ValidationLists[Main Categories])); OFFSET(ValidationLists;0;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;COUNTA(OFFSET(ValidationLists;;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;;1));1)))

İkinci gurup fonksiyon bloğu ise DropDown list seçiminin Main Category seviyesinde olup olmadığını kontrol eder.

 

=IF(ISBLANK(Sheet1!C8);
IF(DataEntry[#Headers] Sheet1!B:B = DataEntry[[#Headers];[Main Category]];
OFFSET(ValidationLists[[#All];[Main Categories]];1;;COUNTA(ValidationLists[Main Categories])); OFFSET(ValidationLists;0;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;COUNTA(OFFSET(ValidationLists;;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;;1));1)))

DropDown list seçiminin Main Category seviyesinde olması durumunda yukarıda bold olarak işaretlenen fonksiyon bloğu Main Category öğelerini listeler. (Fruit , Vegetables , Other Stuff)

 

=IF(ISBLANK(Sheet1!C8);
IF(DataEntry[#Headers] Sheet1!B:B = DataEntry[[#Headers];[Main Category]];
OFFSET(ValidationLists[[#All];[Main Categories]];1;;COUNTA(ValidationLists[Main Categories])); OFFSET(ValidationLists;0;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;COUNTA(OFFSET(ValidationLists;;MATCH(Sheet1!A8; ValidationLists[#Headers];0)-1;;1));1)))

Son fonksiyon bloğu ise Sub Grup seviyesi için liste içeriğini görüntüler.

 

Örnek uygulamanın excel versiyonunu buradan indirebilirsiniz...

 

 

 

comments powered by Disqus

  • Lookup Formülleri

    Excel'de sıklıkla kullanılan Lookup formülleri ile ilgili örnekli anlatımlara ulaşmak için tıklayınız.

    Devamı »

  • Excel İpuçları

    Zaman kazandıracak faydalı ipuçları ve daha fazlası için mutlaka göz atın.              

    Devamı »

  • VBA Programlama

    VBA makroları oluşturarak Excel'in sınırlarını zorlayın. Örnek kodları inceleyin veya kendi makronuzu kaydedin.

    Devamı »