|

Excel Veri Doğrulama İçinde Veri Doğrulama

Daha önce veri doğrulama ve çoketopla ile ilgili olarak bir video hazırlamıştım. İzlemediyseniz tıklayın.

İl seçince, o ile ait ilçeler çıksın istiyorsanız ya da Bölge müdürlüğü seçince o bölgeye bağlı şubeler listelensin diyorsanız aşağıdaki video işinizi çözecektir. Formülasyon olarak alternatifleri vardır ancak aşağıdaki videodan çok farklı değildir. Bunun yanısıra userform ve VBA aracılığı ile de yapabilirsiniz. Fakat, bu yöntem oldukça kullanışlıdır.

Faydalı olması dileğiyle…

Video’da yer alan excel dosyasını indirmek için tıklayınız.

Similar Posts

42 Comments

  1. İlginç ve işe yarar olmuş hocam. Peki offset kullanarak yapılamaz mıydı bu?

    1. Merhaba. Tabiki yapılabilir. Yakın zamanda offset(kaydır) fonksiyonu ile dinamik alan tanımlanmasına ilişkin bir video hazırlayacağım. Takipte kalın. 😉

  2. Merhaba Hocam,

    Elinize sağlık güzel bir çalışma olmuş. Fakat merak ettiğim bir konu var. Çalışmanızdaki veri doğrulama hücresini alt alta diğer hücrelere de üstteki hücreler kalmak şartıyla uygulayabilir miyiz? Yani ilk hücrede il ve ilçe seçimi yapıldıktan sonra altındaki hücrelerde de aynı şekilde seçim yapabilir miyiz? Sonuçta “range” olarak adlandırdığınız hücre yalnızca 1 veri doğrulama hücresi için aralık belirlemekte. Bunu aynı şekilde çoğaltabilir miyiz? Yardımcı olursanız sevinirim. Saygılar…

    1. Merhaba,
      Eğer her bir il ve ilçe seçimi birbirinden bağımsız olacaksa, hepsi için ayrı yeni bir range tanımlamanız gerekir. Aksi takdirde hep ilk il seçimine bağımlı olarak çalışır.

      1. Anladım hocam fakat tanımlayacağımız yeni bir range de önceki range’i çalıştıran kod-1 ve kod-2 ye bağımlı olacaktır. Bu sefer de her range için yeni kodlar yazmak gerekecek. Bu da her hücre için çok fazla işlem yapmayı gerektirir değil mi? Bunun daha kısa bir yolu yok mudur?

        1. Makrolarla ve alan tanımlamayla yapılabilecek çeşitli yollar var tabiki.
          Siz hayalinizdeki tabloyu söyleyin ona göre fikir vereyim ben size 🙂

        2. Merhaba,
          Sorunun üzerinden oldukça uzun zaman geçmiş ancak, google aramalarında üst sıralarda çıktığı için ve pek çok kişi benzer sorun ile karşılaştığı için bu konuya benim getirdiğim pratik çözümü paylaşmak istedim.
          Örnek dosyada görüldüğü gibi; formül tek satırlık veriyi işleyebiliyor ve belirtilen ilin karşısına ilçelerinin getiriyor. Bunun sebebi “Range” olarak tanımlanan hücrenin tek bir hücreye bağlı olarak değişmesi.
          Çok satırlı listeler oluştururken yapılması gereken, “Range” tanımı yerine o satırdaki verilere göre değişkenlik gösterecek bir formül hazırlamak.
          Benim örneğimde, “İller” isimli bir sayfa açtım ve güncel il/ilçe tablolarını buraya ekledim.
          B sütunu “İl Adlarını”, C Sütunu ise “İlçe Adlarını” içeriyor. A sütunu ise benzersiz il adlarını (İl adı doğrulaması için kullanılan) içeriyor.
          Veri doğrulama hücrelerimiz G2=İl Adı F2=İlçe Adı

          G2 hücresinin Veri Doğrulama Bölümüne aşağıdaki formülü eklememiz gerekiyor:

          =DOLAYLI(“iller!C”&KAÇINCI(G2;iller!$B$2:$B$971;0)+1&”:C”&KAÇINCI(G2;iller!$B$2:$B$971;0)+EĞERSAY(iller!$B$2:$B$971;G2))

          Aslında burada yaptığımız şey çok basit, hocamın “Range” olarak tanımladığı etiketi uzun hali ile yazmak.
          1 – Örn. Ankara’nın kaçıncı sırada olduğunu bulmak ve bunu başlangıç sırası olarak tanımlamak
          2 – İlk Ankara sırası + Ankara sayısını toplayarak aralığın bitiş sayısı olarak tanımlamak.

          Saygılar

  3. Şöyle ki; aynı il ve bağlı ilçeleri gibi benim 2 tane listem var 2. liste 1. listenin alt elemanları. 1.listeden seçtiğim parametreye göre 2.listede sadece buna bağlı olanlar gelsin ve burdan seçebileyim istiyorum. Yalnız bu seçimler alt alta her satırda olacak ve hücreler birbirinden bağımsız çalışacak.
    Biraz daha farklı düşünecek olursak diyelim ki veri doğrulamayı sadece 1 satır için yaptık. Acaba bu satırda seçtiklerimi başka bir excel sayfasında kaydedebilir miyim? Ama ben kaydettikçe bir alt satıra inecek ve önceki kaydımı etkilemeyecek. Bu olabilir mi? Aslında bunları belki de farklı programlama dillerinde yapmak daha kolay olur. Yalnız ben k-excelle uğraşmak ve neler yapabilirm görmek istiyorum. Saygılar…

    1. Bu sayfadan indirdiğiniz örnek dosyaya bir buton ekleyin ve aşağıdaki kodu yapıştırın.
      Her yeni seçimden sonra butona tıklarsanız, Sayfa2’ye alt alta kaydeder.

      il = Cells(3, 7)
      ilce = Cells(3, 8)
      sayac = WorksheetFunction.CountIf(Sheets(“sayfa2”).Range(“A:A”), “<>“) + 1
      Sheets(“Sayfa2”).Cells(sayac, 1) = il
      Sheets(“Sayfa2”).Cells(sayac, 2) = ilce

  4. Merhaba,

    Öncelikle teşekkür ederim. Benim iki sorum olacak.

    Birinci sorum : Örnekte iki liste verilmiş, bu listeleri çoğaltabilir miyiz.
    Şöyle ki: İL > İLÇE > MAHALLE > Sokak > Kapı No. vs. gibi alt seçenekleri çoğaltabilir miyiz ?

    İkinci Sorum: Bu tekniği farklı bir yöntemle gerçekleştirebilir miyiz ?

    Teşekkür ederim.

    1. Merhaba. Faydalanmanıza sevindim. Listede herhangi bir sınır yok, istediğiniz kadar genişletebilirsiniz.Veri tablosunu ona göre yan yana düzenlerseniz sonuç alırsınız. Bu işlem; makro ile ya da Offset fonksiyonu ile de gerçekleştirilebilir.

      1. Teşekkür Ederim ilginizden ötürü. Söylediğiniz şekilde deneyeceğim. Selametle.

  5. Anlatımınız için çok teşekkür ederim. Bir sorum olacaktı. Dediğiniz gibi il içe olayını yaptım. 1. satırda gayet güzel çalışıyor ancak ikinci satıra geçtiğimde ilk seçime bağlı ikinci satırda ilçeler düzgün gelmiyor. Yani İlk satırda İstanbul seçtiysem ilk satırda ilçelerde İstanbul’un ilçeleri geliyor. Ancak İkinci satırda Ankara seçtiğimde ilçeler kısmında İstanbul’un ilçeleri geliyor. Bu sorunu nasıl çözebilirim. Yani yapmış olduğum listeyi nasıl tüm satırlara uygularım.
    Teşekkürler

    1. İl veri doğrulaması için tanımlanan ad tüm veri doğrulamalarda sorunsuz çalışır.
      Ancak ilçeler için aynı şey söz konusu değil. Çünkü ilçe veri doğrulamasının formülü, ilk il veri doğrulamasına bağlı çalışır.
      Bu nedenle her yeni ekleme için, yeni bir ilçe veri doğrulaması yapmalısınız. Bunu da yeni il doğrulamasına bağlamalısınız.
      Saygılar.

  6. merhaba, kullandıgım veriler ile ikinci veri dogrulamayı yaptıgım çalışma sayfaları farklı ise hata alıyorum. nasıl düzeltilebilir?

    1. Merhaba.
      Formüllere sayfa ismi eklemelisiniz. Sayfa1!A2:A10 gibi.
      Eğer hata alırsanız, dosyanızı admin@bymmb.com adresine gönderin, bakarım.

      1. teşekkür ederim hocam. size soruyu sorduktan 5 dk sonra yapmıştım 🙂

  7. Yukardaki veri doğrulama işlemi yaptım. Ama Ben bu veri doğrulamayı başka bir sayfada yapmak istiyorum. ama yapamadım

  8. Hocam emeğinize ve elinize sağlık çok faydalı bir çalışma olmuş bu çalışmayla ilgili ben bir sorun yaşadım, İl seçimi ile ilgili veri doğrulamayı farklı bir sayfada tamamladım, ilçe seçimiyle ilgili dediğiniz gibi =dolayılı(range) ifadesini de kullandım ancak farklı bir sayfada olmasından dolayımı anlayamadığım bir nedenden ilçeler çıkmıyor bu konuda yardım edebilirmisiniz lüften

  9. merhaba
    hocam

    ürün kodunu yazınca ürün adı atıyor ,ürün adı yazıncada ürün kodu atmasını istiyorum ve bunlarda veri doğrulama olacak ve diyelim a harfını yazınca veri doğrulama da süzme olacak olabilirmi ?

  10. Teşekkürler. Başarılı. Ayrıca çıkan hatların hepsini nokta atışıyla çözmenizde çok iyi. başarılar.

  11. Hocam elinize sağlık bu videodan faydalanarak kendim için bir veri doğrulaması yaptım yalnız proplemim su tek satırda çalışıyor alt satıra indigimizde çalışmıyor isteğim su c sütunundaki verilerin tamamını bu şarta sokmak istiyorum ama her satır için kod 1 ve kod 2 işlemini yapmak zor çünkü açılan veri digralamsinda seçenek cok

  12. Hocam merhaba öncelikle elinize sağlık.
    Benim şu şekilde problemim oldu. Ben sadece tek bir satıra yapmak istemiyorum bunu. Öğrencilerim var hepsini alt alta nufusa bağlı oldukları il ilçe diye kaydedeceğim. Yani videodaki tabloya örnek verecek olursak G2 de 1.ğrenicnin ili ilçesi G3de de 2.öğrencinin ili ilçesi G4 de 3. öğrencinin … şeklinde gidecek bunu nasıl yapabilirim, yardımcı olursanız çok müteşekkir kalırım.

    1. Merhaba.
      Bu şekilde cevap verebilmek çok zor. Örnek bir dosyayı admin@bymmb.com adresine mail atabilirseniz, yardımcı olurum.
      Saygılarımla.

  13. Hocam userform da combobox1 de ili seçtiğimizde ilçelerinde combobox2 de görünmesini nasıl sağlayabiliriz?

  14. Çok teşekkür ederim Tam 3 saattir sizin sayfada misafirdim. Çok faydalandım. Sağolun.

  15. Merhabalar,

    Anlatımınız için çok teşekkür ediyorum çok faydalı bilgiler öğrendim. Ancak benim biraz daha farklı bir ihtiyacım var ve tam olarak nasıl çözeceğimi bulamadım. Elimde bir liste var ve düşeyara ile isimden bulup yazdırıyorum, buraya kadar her şey güzel hoş ancak bazı isimleri seçince yazdıracağım diğer verilerden de seçme yapmak istiyorum. yani şöyle bir örnek vermek gerekirse bir inşaat firması olduğumuzu düşünün a firmasını box içinden seçtik bu firmaya ait adres, telefon, şantiye gibi bilgiler geldi ama b firmasını seçince birden fazla şantiyesi yada adresi varsa onlarıda diğer hücrede seçmemiz gerekiyor eğer tek ise böyle bir şeye gerek olmasın direk otomatik atsın. Bunu eğer ile mi yaparız yada farklı şekilde mi yaparız bilemedim umarım derdimi tam anlatabilmişimdir 🙂

  16. Merhaba;
    Bire bir aynısını yazıyorum ama birtürlü listeletemedim, tanımsız degişken hatası veriyor. bir değişken tanımladığımda string veya integer tür hatası diyor. sayfa1 dışında herhangibi yere kod yazıyormusunuz.
    (not: yazılımcı değilim amatör olarak uğraşıyorum)

    1. Merhaba.
      Birebir aynısını yapıyorsanız, sonuç da aynı olmalı. Bir yerlerde atladığınız bir şey olabilir.

  17. Hocam merhaba,
    buton eklemeye çalıştım fakat olmadı. Eklenmiş halini paylaşırmısınız lütfen. Birde 6 sütun olsa onları 2.sayfaya alt alta kaydetsek)
    1.sütun İl
    2.sütun ilçe (veri doğrulama içinde veri doğrulama)
    3.sütun firma
    4.sütun tarih
    5.sütun yorum

    gibi…

    Teşekkürler.

  18. hocam,
    benim ilçe listem aynı excel in sayfa1deki sayfasında sayfa2 de bir hücreye =dolaylı(sayfa2!range) diye yazdım fakat verileri getirmiyor.

    yardımcı olursanız sevinirim.

  19. Merhaba Hoca
    Eline saglik
    Bir sorum olacak;

    A sutunundaki tarihlerden X2 deki tarihe uyan
    B sutunundaki kelimrleeden Y2 deki kelimeye uyan ve
    C sutunundaki saatlerden Z2 deki saatten buyuk ise istenilen (veya formul yazilan) hucreye 1 yazdirabilir miyiz degil ise 0 yazdirabilir miyiz.

  20. Merhaba Hocam
    Çok yararlı bir video olmuş. Benim takıldığım bir konu var bir türlü çözemedim belki siz yardımcı olabilirsiniz. Bu range olarak isimlendirdiğiniz hücre var, o hücrenin içindeki B58:B82 değerini alarak veri doğrulamada kullanılabiliyor. sizin formülünüz şu şekilde olmuş =DOLAYLI(range). Benim yapmak istediğim ise şu =DOLAYLI(A2) burada ise şunu yapmak istiyorum, A2’ye range yazarsam veri doğrulamada kaynak olarak =DOLAYLI(range) çalışsın eğer A2’ye örneğin renkler yazdığımda =DOLAYLI(renkler) olarak çalışsın ve renkler olarak isimlendirdiğim hücreye de C1:C10 yazdığım için, C1 ve C10 aralığına da renkleri yazıp bu renkleri veri doğrulamada listeletmek istiyorum. Ama bir türlü yapamadım. Teorik olarak hücreye =C1:C10 yazdırmayı başarıyorum ama bu hücrenin ismine renkler dediğimde ve veri doğrulamanın kaynağına =DOLAYLI(A2) yazdığıma açılır liste açılmıyor. Yardımcı olabilirseniz çok sevinirim.
    saygılarımla
    Tolga

    1. Hücreye yazdirma islemini soyle yapin;
      Sayfa1!C1:C10
      Bunu dolayli icinde gosterirseniz sorun çözülür.

      1. Cevabınız için teşekkürler. hücreye dediğiniz gibi Sayfa1!C1:C10 yazdım. Bu hücreye isim olarak renkler verdim. Sonra A2 hücresine renkler yazdım. Ve b2 hücresine veri doğrulama kaynak kısmına =DOLAYLI(A2) yazdım. B2 deki açılır listeyi tıkladığımda Sayfa1!C1:C10 çıkıyor.

        Bir yerde bir hata mı yaptım?
        saygılar
        tolga

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.